diff --git a/Ghidra/Processors/Sparc/data/languages/SparcV9.sinc b/Ghidra/Processors/Sparc/data/languages/SparcV9.sinc index 2e2cb1f412..3bddef8b88 100644 --- a/Ghidra/Processors/Sparc/data/languages/SparcV9.sinc +++ b/Ghidra/Processors/Sparc/data/languages/SparcV9.sinc @@ -252,7 +252,7 @@ attach variables [ rs1_3 ] [ Y _ CCR _ TICK PC _ # CWP++ macro save() { -if (!DECOMPILE_MODE) goto ; +if (DECOMPILE_MODE) goto ; # Save inputs *[register]:$(SIZE) (&w010 + (CWP:4*$(REGWINSZ)+0)*$(SIZE)) = i0; *[register]:$(SIZE) (&w010 + (CWP:4*$(REGWINSZ)+1)*$(SIZE)) = i1; @@ -312,7 +312,7 @@ macro restore() { sp = fp; o7 = i7; # address of CALLer address -if (!DECOMPILE_MODE) goto ; +if (DECOMPILE_MODE) goto ; # restore original inputs i0 = *[register]:$(SIZE) ((&w010) + ((CWP:4*$(REGWINSZ)+0)*$(SIZE))); i1 = *[register]:$(SIZE) ((&w010) + ((CWP:4*$(REGWINSZ)+1)*$(SIZE))); diff --git a/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_32_O0_EmulatorTest.java b/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_32_O0_EmulatorTest.java index b63beeb408..f8f5e88d75 100644 --- a/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_32_O0_EmulatorTest.java +++ b/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_32_O0_EmulatorTest.java @@ -15,6 +15,8 @@ */ package ghidra.test.processors; +import ghidra.program.model.listing.Program; +import ghidra.test.processors.support.EmulatorTestRunner; import ghidra.test.processors.support.ProcessorEmulatorTestAdapter; import junit.framework.Test; @@ -34,6 +36,10 @@ public class SparcV9_32_O0_EmulatorTest extends ProcessorEmulatorTestAdapter { return "sparcV9_32_GCC_O0"; } + protected void initializeState(EmulatorTestRunner testRunner, Program program) throws Exception { + testRunner.setRegister("DECOMPILE_MODE", 0x0); // turn decompile mode off + } + public static Test suite() { return ProcessorEmulatorTestAdapter.buildEmulatorTestSuite(SparcV9_32_O0_EmulatorTest.class); } diff --git a/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_32_O3_EmulatorTest.java b/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_32_O3_EmulatorTest.java index 7e225ba66a..e959c430e3 100644 --- a/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_32_O3_EmulatorTest.java +++ b/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_32_O3_EmulatorTest.java @@ -15,6 +15,8 @@ */ package ghidra.test.processors; +import ghidra.program.model.listing.Program; +import ghidra.test.processors.support.EmulatorTestRunner; import ghidra.test.processors.support.ProcessorEmulatorTestAdapter; import junit.framework.Test; @@ -34,6 +36,10 @@ public class SparcV9_32_O3_EmulatorTest extends ProcessorEmulatorTestAdapter { return "sparcV9_32_GCC_O3"; } + protected void initializeState(EmulatorTestRunner testRunner, Program program) throws Exception { + testRunner.setRegister("DECOMPILE_MODE", 0x0); // turn decompile mode off + } + public static Test suite() { return ProcessorEmulatorTestAdapter.buildEmulatorTestSuite(SparcV9_32_O3_EmulatorTest.class); } diff --git a/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_64_O0_EmulatorTest.java b/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_64_O0_EmulatorTest.java index ba005c1d31..31bb61b0e5 100644 --- a/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_64_O0_EmulatorTest.java +++ b/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_64_O0_EmulatorTest.java @@ -15,6 +15,8 @@ */ package ghidra.test.processors; +import ghidra.program.model.listing.Program; +import ghidra.test.processors.support.EmulatorTestRunner; import ghidra.test.processors.support.ProcessorEmulatorTestAdapter; import junit.framework.Test; @@ -34,6 +36,10 @@ public class SparcV9_64_O0_EmulatorTest extends ProcessorEmulatorTestAdapter { return "sparcV9_64_GCC_O0"; } + protected void initializeState(EmulatorTestRunner testRunner, Program program) throws Exception { + testRunner.setRegister("DECOMPILE_MODE", 0x0); // turn decompile mode off + } + public static Test suite() { return ProcessorEmulatorTestAdapter.buildEmulatorTestSuite(SparcV9_64_O0_EmulatorTest.class); } diff --git a/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_64_O3_EmulatorTest.java b/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_64_O3_EmulatorTest.java index 82c9417fca..a68eff42b4 100644 --- a/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_64_O3_EmulatorTest.java +++ b/Ghidra/Processors/Sparc/src/test.processors/java/ghidra/test/processors/SparcV9_64_O3_EmulatorTest.java @@ -15,6 +15,8 @@ */ package ghidra.test.processors; +import ghidra.program.model.listing.Program; +import ghidra.test.processors.support.EmulatorTestRunner; import ghidra.test.processors.support.ProcessorEmulatorTestAdapter; import junit.framework.Test; @@ -34,6 +36,10 @@ public class SparcV9_64_O3_EmulatorTest extends ProcessorEmulatorTestAdapter { return "sparcV9_64_GCC_O3"; } + protected void initializeState(EmulatorTestRunner testRunner, Program program) throws Exception { + testRunner.setRegister("DECOMPILE_MODE", 0x0); // turn decompile mode off + } + public static Test suite() { return ProcessorEmulatorTestAdapter.buildEmulatorTestSuite(SparcV9_64_O3_EmulatorTest.class); }