mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-01-09 22:17:55 -05:00
Revised import to always include pspec symbols within pcode-defined memory blocks. Added label name check. Revised language version upgrade to handle certain pspec-defined block and symbol changes. Corrected RISC-V 64-bit-fp cspec.
209 lines
6.1 KiB
XML
209 lines
6.1 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<compiler_spec>
|
|
<data_organization>
|
|
<absolute_max_alignment value="0" />
|
|
<machine_alignment value="8" />
|
|
<default_alignment value="1" />
|
|
<default_pointer_alignment value="8" />
|
|
<pointer_size value="8" />
|
|
<short_size value="2" />
|
|
<integer_size value="4" />
|
|
<long_size value="8" />
|
|
<long_long_size value="8" />
|
|
<float_size value="4" />
|
|
<double_size value="8" />
|
|
<size_alignment_map>
|
|
<entry size="1" alignment="1" />
|
|
<entry size="2" alignment="2" />
|
|
<entry size="4" alignment="4" />
|
|
<entry size="8" alignment="8" />
|
|
</size_alignment_map>
|
|
</data_organization>
|
|
<global>
|
|
<range space="ram"/>
|
|
<range space="csreg"/>
|
|
<register name="gp"/>
|
|
<register name="tp"/>
|
|
</global>
|
|
<returnaddress>
|
|
<register name="ra"/>
|
|
</returnaddress>
|
|
<stackpointer register="sp" space="ram"/>
|
|
<default_proto>
|
|
<prototype name="__stdcall" extrapop="0" stackshift="0">
|
|
<input>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa0"/>
|
|
</pentry>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa1"/>
|
|
</pentry>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa2"/>
|
|
</pentry>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa3"/>
|
|
</pentry>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa4"/>
|
|
</pentry>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa5"/>
|
|
</pentry>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa6"/>
|
|
</pentry>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa7"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a0"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a1"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a2"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a3"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a4"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a5"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a6"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a7"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="500" align="8">
|
|
<addr offset="0" space="stack"/>
|
|
</pentry>
|
|
<rule>
|
|
<datatype name="any"/>
|
|
<varargs first="0"/>
|
|
<join align="true"/>
|
|
</rule>
|
|
<rule>
|
|
<datatype name="homogeneous-float-aggregate" maxprimitives="2"/>
|
|
<join_per_primitive storage="float"/>
|
|
</rule>
|
|
<rule>
|
|
<datatype name="float"/>
|
|
<consume storage="float"/>
|
|
</rule>
|
|
<rule>
|
|
<datatype name="struct" minsize="17"/>
|
|
<convert_to_ptr/>
|
|
</rule>
|
|
<rule>
|
|
<datatype name="union" minsize="17"/>
|
|
<convert_to_ptr/>
|
|
</rule>
|
|
<rule>
|
|
<datatype name="any"/>
|
|
<join/>
|
|
</rule>
|
|
</input>
|
|
<output>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa0"/>
|
|
</pentry>
|
|
<pentry minsize="4" maxsize="8" storage="float">
|
|
<register name="fa1"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a0"/>
|
|
</pentry>
|
|
<pentry minsize="1" maxsize="8" extension="zero">
|
|
<register name="a1"/>
|
|
</pentry>
|
|
<rule>
|
|
<datatype name="float"/>
|
|
<consume storage="float"/>
|
|
</rule>
|
|
<rule>
|
|
<datatype name="homogeneous-float-aggregate" maxprimitives="2"/>
|
|
<join_per_primitive storage="float"/>
|
|
</rule>
|
|
<rule>
|
|
<datatype name="any"/>
|
|
<join/>
|
|
</rule>
|
|
</output>
|
|
<unaffected>
|
|
<register name="sp"/>
|
|
<register name="gp"/>
|
|
<register name="tp"/>
|
|
<register name="s0"/>
|
|
<register name="s1"/>
|
|
<register name="s2"/>
|
|
<register name="s3"/>
|
|
<register name="s4"/>
|
|
<register name="s5"/>
|
|
<register name="s6"/>
|
|
<register name="s7"/>
|
|
<register name="s8"/>
|
|
<register name="s9"/>
|
|
<register name="s10"/>
|
|
<register name="s11"/>
|
|
<register name="fs0"/>
|
|
<register name="fs1"/>
|
|
<register name="fs2"/>
|
|
<register name="fs3"/>
|
|
<register name="fs4"/>
|
|
<register name="fs5"/>
|
|
<register name="fs6"/>
|
|
<register name="fs7"/>
|
|
<register name="fs8"/>
|
|
<register name="fs9"/>
|
|
<register name="fs10"/>
|
|
<register name="fs11"/>
|
|
</unaffected>
|
|
<killedbycall>
|
|
<register name="ra"/>
|
|
<register name="t0"/>
|
|
<register name="t1"/>
|
|
<register name="t2"/>
|
|
<register name="t3"/>
|
|
<register name="t4"/>
|
|
<register name="t5"/>
|
|
<register name="t6"/>
|
|
<register name="a0"/>
|
|
<register name="a1"/>
|
|
<register name="a2"/>
|
|
<register name="a3"/>
|
|
<register name="a4"/>
|
|
<register name="a5"/>
|
|
<register name="a6"/>
|
|
<register name="a7"/>
|
|
<register name="fa0"/>
|
|
<register name="fa1"/>
|
|
<register name="fa2"/>
|
|
<register name="fa3"/>
|
|
<register name="fa4"/>
|
|
<register name="fa5"/>
|
|
<register name="fa6"/>
|
|
<register name="fa7"/>
|
|
<register name="ft0"/>
|
|
<register name="ft1"/>
|
|
<register name="ft2"/>
|
|
<register name="ft3"/>
|
|
<register name="ft4"/>
|
|
<register name="ft5"/>
|
|
<register name="ft6"/>
|
|
<register name="ft7"/>
|
|
<register name="ft8"/>
|
|
<register name="ft9"/>
|
|
<register name="ft10"/>
|
|
<register name="ft11"/>
|
|
</killedbycall>
|
|
</prototype>
|
|
</default_proto>
|
|
</compiler_spec>
|