mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-29 01:16:01 +08:00
GT-3106: Implement AVR 8 pcodetests
Updated AVR 8 to implement pcode tests and correct any issues found as a result.
This commit is contained in:
@@ -37,7 +37,7 @@
|
||||
<language processor="AVR8"
|
||||
endian="little"
|
||||
size="16"
|
||||
variant="Atmega256"
|
||||
variant="avr6"
|
||||
version="1.3"
|
||||
slafile="avr8eind.sla"
|
||||
processorspec="atmega256.pspec"
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
<opinions>
|
||||
<constraint loader="Executable and Linking Format (ELF)" compilerSpecID="gcc">
|
||||
<constraint primary="83" processor="AVR8" endian="little" />
|
||||
<constraint loader="Executable and Linking Format (ELF)" compilerSpecID="gcc">
|
||||
<constraint primary="83" processor="AVR8" endian="little" />
|
||||
<!--
|
||||
Elf e_flags are used for the secondary attribute, the following are pulled from binutils include/elf/avr.h
|
||||
#define E_AVR_MACH_AVR1 1
|
||||
#define E_AVR_MACH_AVR2 2
|
||||
#define E_AVR_MACH_AVR25 25
|
||||
#define E_AVR_MACH_AVR3 3
|
||||
#define E_AVR_MACH_AVR31 31
|
||||
#define E_AVR_MACH_AVR35 35
|
||||
#define E_AVR_MACH_AVR4 4
|
||||
#define E_AVR_MACH_AVR5 5
|
||||
#define E_AVR_MACH_AVR51 51
|
||||
#define E_AVR_MACH_AVR6 6
|
||||
#define E_AVR_MACH_AVRTINY 100
|
||||
#define E_AVR_MACH_XMEGA1 101
|
||||
#define E_AVR_MACH_XMEGA2 102
|
||||
#define E_AVR_MACH_XMEGA3 103
|
||||
#define E_AVR_MACH_XMEGA4 104
|
||||
#define E_AVR_MACH_XMEGA5 105
|
||||
#define E_AVR_MACH_XMEGA6 106
|
||||
#define E_AVR_MACH_XMEGA7 107
|
||||
-->
|
||||
<constraint primary="83" secondary= "31" processor="AVR8" size="16" variant="default"/>
|
||||
<constraint primary="83" secondary= "51" processor="AVR8" size="16" variant="extended"/>
|
||||
<constraint primary="83" secondary= "6" processor="AVR8" size="24"" variant="atmega256"/>
|
||||
</constraint>
|
||||
</opinions>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
# AVR8 with 22-bit addressable code space
|
||||
# AVR8 with 16-bit addressable code space and support for
|
||||
|
||||
@define PCBYTESIZE "3"
|
||||
@define HASEIND "0"
|
||||
@define PCBYTESIZE "2"
|
||||
@define HASEIND "1"
|
||||
|
||||
@include "avr8.sinc"
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<long_size value="4" />
|
||||
<long_long_size value="8" />
|
||||
<float_size value="4" />
|
||||
<double_size value="4" />
|
||||
<double_size value="4" /> <!-- non-standard -->
|
||||
<long_double_size value="4" />
|
||||
|
||||
<size_alignment_map>
|
||||
@@ -40,18 +40,24 @@
|
||||
<prototype name="__stdcall" extrapop="3" stackshift="3" strategy="register">
|
||||
<input>
|
||||
<!-- Stack used for vararg parameters only -->
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="W"/>
|
||||
</pentry>
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="R23R22"/>
|
||||
</pentry>
|
||||
<pentry minsize="3" maxsize="4">
|
||||
<addr space="join" piece1="W" piece2="R23R22"/>
|
||||
</pentry>
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="R21R20"/>
|
||||
</pentry>
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="R19R18"/>
|
||||
</pentry>
|
||||
<pentry minsize="3" maxsize="4">
|
||||
<addr space="join" piece1="R21R20" piece2="R19R18"/>
|
||||
</pentry>
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="R17R16"/>
|
||||
</pentry>
|
||||
@@ -72,6 +78,9 @@
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="W"/>
|
||||
</pentry>
|
||||
<pentry minsize="3" maxsize="4">
|
||||
<addr space="join" piece1="W" piece2="R23R22"/>
|
||||
</pentry>
|
||||
</output>
|
||||
<unaffected>
|
||||
<register name="SP"/>
|
||||
@@ -103,32 +112,32 @@
|
||||
<addr offset="1" space="stack"/>
|
||||
</pentry>
|
||||
</input>
|
||||
<output>
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="W"/>
|
||||
</pentry>
|
||||
</output>
|
||||
<unaffected>
|
||||
<register name="SP"/>
|
||||
<register name="R1"/>
|
||||
<register name="R2"/>
|
||||
<register name="R3"/>
|
||||
<register name="R4"/>
|
||||
<register name="R5"/>
|
||||
<register name="R6"/>
|
||||
<register name="R7"/>
|
||||
<register name="R8"/>
|
||||
<register name="R9"/>
|
||||
<register name="R10"/>
|
||||
<register name="R11"/>
|
||||
<register name="R12"/>
|
||||
<register name="R13"/>
|
||||
<register name="R14"/>
|
||||
<register name="R15"/>
|
||||
<register name="R16"/>
|
||||
<register name="R17"/>
|
||||
<register name="Y"/>
|
||||
</unaffected>
|
||||
</prototype>
|
||||
<output>
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="W"/>
|
||||
</pentry>
|
||||
</output>
|
||||
<unaffected>
|
||||
<register name="SP"/>
|
||||
<register name="R1"/>
|
||||
<register name="R2"/>
|
||||
<register name="R3"/>
|
||||
<register name="R4"/>
|
||||
<register name="R5"/>
|
||||
<register name="R6"/>
|
||||
<register name="R7"/>
|
||||
<register name="R8"/>
|
||||
<register name="R9"/>
|
||||
<register name="R10"/>
|
||||
<register name="R11"/>
|
||||
<register name="R12"/>
|
||||
<register name="R13"/>
|
||||
<register name="R14"/>
|
||||
<register name="R15"/>
|
||||
<register name="R16"/>
|
||||
<register name="R17"/>
|
||||
<register name="Y"/>
|
||||
</unaffected>
|
||||
</prototype>
|
||||
|
||||
</compiler_spec>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<long_size value="4" />
|
||||
<long_long_size value="8" />
|
||||
<float_size value="4" />
|
||||
<double_size value="4" />
|
||||
<double_size value="4" /> <!-- non-standard -->
|
||||
<long_double_size value="4" />
|
||||
|
||||
<size_alignment_map>
|
||||
@@ -45,12 +45,18 @@
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="R23R22"/>
|
||||
</pentry>
|
||||
<pentry minsize="3" maxsize="4">
|
||||
<addr space="join" piece1="W" piece2="R23R22"/>
|
||||
</pentry>
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="R21R20"/>
|
||||
</pentry>
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="R19R18"/>
|
||||
</pentry>
|
||||
<pentry minsize="3" maxsize="4">
|
||||
<addr space="join" piece1="R21R20" piece2="R19R18"/>
|
||||
</pentry>
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="R17R16"/>
|
||||
</pentry>
|
||||
@@ -71,6 +77,9 @@
|
||||
<pentry minsize="1" maxsize="2">
|
||||
<register name="W"/>
|
||||
</pentry>
|
||||
<pentry minsize="3" maxsize="4">
|
||||
<addr space="join" piece1="W" piece2="R23R22"/>
|
||||
</pentry>
|
||||
</output>
|
||||
<unaffected>
|
||||
<register name="SP"/>
|
||||
|
||||
Reference in New Issue
Block a user