mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 10:49:34 +02:00
Merge remote-tracking branch 'origin/GT-3202_ghidorahrex_sparcv9_floating_point' into patch
This commit is contained in:
commit
ec079f7844
8 changed files with 1145 additions and 915 deletions
|
@ -9,6 +9,7 @@
|
||||||
<context_data>
|
<context_data>
|
||||||
<tracked_set space="ram">
|
<tracked_set space="ram">
|
||||||
<set name="didrestore" val="0"/>
|
<set name="didrestore" val="0"/>
|
||||||
|
<set name="DECOMPILE_MODE" val="1"/>
|
||||||
</tracked_set>
|
</tracked_set>
|
||||||
</context_data>
|
</context_data>
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,28 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<compiler_spec>
|
<compiler_spec>
|
||||||
|
<data_organization>
|
||||||
|
<absolute_max_alignment value="0" />
|
||||||
|
<machine_alignment value="2" />
|
||||||
|
<default_alignment value="1" />
|
||||||
|
<default_pointer_alignment value="4" />
|
||||||
|
<pointer_size value="4" />
|
||||||
|
<wchar_size value="4" />
|
||||||
|
<short_size value="2" />
|
||||||
|
<integer_size value="4" />
|
||||||
|
<long_size value="4" />
|
||||||
|
<long_long_size value="8" />
|
||||||
|
<float_size value="4" />
|
||||||
|
<double_size value="8" />
|
||||||
|
<long_double_size value="16" />
|
||||||
|
<size_alignment_map>
|
||||||
|
<entry size="1" alignment="1" />
|
||||||
|
<entry size="2" alignment="2" />
|
||||||
|
<entry size="4" alignment="4" />
|
||||||
|
<entry size="8" alignment="4" />
|
||||||
|
<entry size="16" alignment="4" />
|
||||||
|
</size_alignment_map>
|
||||||
|
</data_organization>
|
||||||
<global>
|
<global>
|
||||||
<range space="ram"/>
|
<range space="ram"/>
|
||||||
</global>
|
</global>
|
||||||
|
@ -31,6 +53,15 @@
|
||||||
</pentry>
|
</pentry>
|
||||||
</input>
|
</input>
|
||||||
<output>
|
<output>
|
||||||
|
<pentry minsize="16" maxsize="16" metatype="float">
|
||||||
|
<register name="fq0"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="8" maxsize="8" metatype="float">
|
||||||
|
<register name="fd0"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="4" maxsize="4" metatype="float">
|
||||||
|
<register name="fs0"/>
|
||||||
|
</pentry>
|
||||||
<pentry minsize="1" maxsize="4">
|
<pentry minsize="1" maxsize="4">
|
||||||
<register name="o0"/>
|
<register name="o0"/>
|
||||||
</pentry>
|
</pentry>
|
||||||
|
|
|
@ -1,6 +1,28 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<compiler_spec>
|
<compiler_spec>
|
||||||
|
<data_organization>
|
||||||
|
<absolute_max_alignment value="0" />
|
||||||
|
<machine_alignment value="2" />
|
||||||
|
<default_alignment value="1" />
|
||||||
|
<default_pointer_alignment value="4" />
|
||||||
|
<pointer_size value="8" />
|
||||||
|
<wchar_size value="4" />
|
||||||
|
<short_size value="2" />
|
||||||
|
<integer_size value="4" />
|
||||||
|
<long_size value="4" />
|
||||||
|
<long_long_size value="8" />
|
||||||
|
<float_size value="4" />
|
||||||
|
<double_size value="8" />
|
||||||
|
<long_double_size value="12" />
|
||||||
|
<size_alignment_map>
|
||||||
|
<entry size="1" alignment="1" />
|
||||||
|
<entry size="2" alignment="2" />
|
||||||
|
<entry size="4" alignment="4" />
|
||||||
|
<entry size="8" alignment="4" />
|
||||||
|
<entry size="16" alignment="4" />
|
||||||
|
</size_alignment_map>
|
||||||
|
</data_organization>
|
||||||
<global>
|
<global>
|
||||||
<range space="ram"/>
|
<range space="ram"/>
|
||||||
</global>
|
</global>
|
||||||
|
@ -8,6 +30,30 @@
|
||||||
<default_proto>
|
<default_proto>
|
||||||
<prototype name="__stdcall" extrapop="0" stackshift="0">
|
<prototype name="__stdcall" extrapop="0" stackshift="0">
|
||||||
<input>
|
<input>
|
||||||
|
<pentry minsize="16" maxsize="16" metatype="float">
|
||||||
|
<register name="fq0"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="16" maxsize="16" metatype="float">
|
||||||
|
<register name="fq4"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="16" maxsize="16" metatype="float">
|
||||||
|
<register name="fq8"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="16" maxsize="16" metatype="float">
|
||||||
|
<register name="fq12"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="4" maxsize="8" metatype="float">
|
||||||
|
<register name="fd0"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="4" maxsize="8" metatype="float">
|
||||||
|
<register name="fd2"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="4" maxsize="8" metatype="float">
|
||||||
|
<register name="fd4"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="4" maxsize="8" metatype="float">
|
||||||
|
<register name="fd6"/>
|
||||||
|
</pentry>
|
||||||
<pentry minsize="1" maxsize="8">
|
<pentry minsize="1" maxsize="8">
|
||||||
<register name="o0"/>
|
<register name="o0"/>
|
||||||
</pentry>
|
</pentry>
|
||||||
|
@ -31,6 +77,15 @@
|
||||||
</pentry>
|
</pentry>
|
||||||
</input>
|
</input>
|
||||||
<output>
|
<output>
|
||||||
|
<pentry minsize="16" maxsize="16" metatype="float">
|
||||||
|
<register name="fq0"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="8" maxsize="8" metatype="float">
|
||||||
|
<register name="fd0"/>
|
||||||
|
</pentry>
|
||||||
|
<pentry minsize="4" maxsize="4" metatype="float">
|
||||||
|
<register name="fs0"/>
|
||||||
|
</pentry>
|
||||||
<pentry minsize="1" maxsize="8">
|
<pentry minsize="1" maxsize="8">
|
||||||
<register name="o0"/>
|
<register name="o0"/>
|
||||||
</pentry>
|
</pentry>
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
/* ###
|
||||||
|
* IP: GHIDRA
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
|
||||||
|
public class SparcV9_32_O0_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
||||||
|
|
||||||
|
private static final String LANGUAGE_ID = "sparc:BE:32:default";
|
||||||
|
private static final String COMPILER_SPEC_ID = "default";
|
||||||
|
|
||||||
|
private static final String[] REG_DUMP_SET = new String[] {};
|
||||||
|
|
||||||
|
public SparcV9_32_O0_EmulatorTest(String name) throws Exception {
|
||||||
|
super(name, LANGUAGE_ID, COMPILER_SPEC_ID, REG_DUMP_SET);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getProcessorDesignator() {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
/* ###
|
||||||
|
* IP: GHIDRA
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
|
||||||
|
public class SparcV9_32_O3_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
||||||
|
|
||||||
|
private static final String LANGUAGE_ID = "sparc:BE:32:default";
|
||||||
|
private static final String COMPILER_SPEC_ID = "default";
|
||||||
|
|
||||||
|
private static final String[] REG_DUMP_SET = new String[] {};
|
||||||
|
|
||||||
|
public SparcV9_32_O3_EmulatorTest(String name) throws Exception {
|
||||||
|
super(name, LANGUAGE_ID, COMPILER_SPEC_ID, REG_DUMP_SET);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getProcessorDesignator() {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
/* ###
|
||||||
|
* IP: GHIDRA
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
|
||||||
|
public class SparcV9_64_O0_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
||||||
|
|
||||||
|
private static final String LANGUAGE_ID = "sparc:BE:64:default";
|
||||||
|
private static final String COMPILER_SPEC_ID = "default";
|
||||||
|
|
||||||
|
private static final String[] REG_DUMP_SET = new String[] {};
|
||||||
|
|
||||||
|
public SparcV9_64_O0_EmulatorTest(String name) throws Exception {
|
||||||
|
super(name, LANGUAGE_ID, COMPILER_SPEC_ID, REG_DUMP_SET);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getProcessorDesignator() {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
/* ###
|
||||||
|
* IP: GHIDRA
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
|
||||||
|
public class SparcV9_64_O3_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
||||||
|
|
||||||
|
private static final String LANGUAGE_ID = "sparc:BE:64:default";
|
||||||
|
private static final String COMPILER_SPEC_ID = "default";
|
||||||
|
|
||||||
|
private static final String[] REG_DUMP_SET = new String[] {};
|
||||||
|
|
||||||
|
public SparcV9_64_O3_EmulatorTest(String name) throws Exception {
|
||||||
|
super(name, LANGUAGE_ID, COMPILER_SPEC_ID, REG_DUMP_SET);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getProcessorDesignator() {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue