Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AArch32: addrmode3 incorrectly had load in address pointer export #6607

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Sleigh-InSPECtor
Copy link
Contributor

@Sleigh-InSPECtor Sleigh-InSPECtor commented May 30, 2024

As part of a research project testing the accuracy of the SLEIGH specifications compared to real hardware, we observed unexpected behaviours in a few instructions that used addrmode3 constructor for AArch32 (ARM:LE:32:v8).

According to the manual, the instruction in the example stores two words from two registers to memory. However, we noticed the output was incorrect.


e.g, for AArch32 with,

Instruction: 0xf000cfb1 or 0xf0004fb1, strdlt r0,r1,[0x10000008]
initial_registers: { "r0": 0xaabc1448, "r1": 0x1923c5ef, "NG": 0x1 }
initial_memory: { "0x10000008": [ 0xfd, 0xd6, 0xf0, 0x8f ] }

We get:

Hardware: { 0x10000008: 0x48, 0x10000009: 0x14, 0x1000000A: 0xbc, 0x1000000B: 0xaa, 0x1000000C: 0xef, 0x1000000D: 0xc5, 0x1000000E: 0x23, 0x1000000F: 0x19 }

Patched Spec: { 0x10000008: 0x48, 0x10000009: 0x14, 0x1000000A: 0xbc, 0x1000000B: 0xaa, 0x1000000C: 0xef, 0x1000000D: 0xc5, 0x1000000E: 0x23, 0x1000000F: 0x19 }

Existing Spec: { 0x8FF0D6FD: 0x48, 0x8FF0D6FE: 0x14, 0x8FF0D6FF: 0xbc, 0x8FF0D700: 0xaa, 0x8FF0D701: 0xef, 0x8FF0D702: 0xc5, 0x8FF0D703: 0x23, 0x8FF0D704: 0x19 }


Note: The patched spec does not introduce any disassembly changes to the best of our knowledge.

@jobermayr
Copy link
Contributor

With this patch applied I get a lot of build errors at least for Ghidra Staging:

> Task :ARM:sleighCompile
Compiling ./data/languages/ARM4_be.slaspec:
79 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced

Compiling ./data/languages/ARM4_le.slaspec:
79 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict

Compiling ./data/languages/ARM4t_be.slaspec:
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced
155 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0

No output produced
Compiling ./data/languages/ARM4t_le.slaspec:
155 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced

Compiling ./data/languages/ARM5_be.slaspec:
79 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict

Compiling ./data/languages/ARM5_le.slaspec:
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced

79 NOP constructors found
Compiling ./data/languages/ARM5t_be.slaspec:
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced
155 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0

No output produced
Compiling ./data/languages/ARM5t_le.slaspec:
155 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0

Compiling ./data/languages/ARM6_be.slaspec:
No output produced
275 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced

Compiling ./data/languages/ARM6_le.slaspec:
275 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced

Compiling ./data/languages/ARM7_be.slaspec:
502 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced

Compiling ./data/languages/ARM7_le.slaspec:
502 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0

No output produced
Compiling ./data/languages/ARM8_be.slaspec:
539 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced

Compiling ./data/languages/ARM8_le.slaspec:
539 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced

Compiling ./data/languages/ARM8m_be.slaspec:
537 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0
No output produced

Compiling ./data/languages/ARM8m_le.slaspec:
537 NOP constructors found
Use -n switch to list each individually
ARMinstructions.sinc:1796: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1796 is first conflict
ARMinstructions.sinc:1802: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1802 is first conflict
ARMinstructions.sinc:1808: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1808 is first conflict
ARMinstructions.sinc:1813: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1813 is first conflict
ARMinstructions.sinc:1818: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1818 is first conflict
ARMinstructions.sinc:1824: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1824 is first conflict
ARMinstructions.sinc:1830: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1830 is first conflict
ARMinstructions.sinc:1835: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1835 is first conflict
ARMinstructions.sinc:1840: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1840 is first conflict
ARMinstructions.sinc:1846: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1846 is first conflict
ARMinstructions.sinc:1852: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1852 is first conflict
ARMinstructions.sinc:1857: Table 'addrmode3' has inconsistent export size; Constructor at ARMinstructions.sinc:1857 is first conflict
ARMinstructions.sinc:1784: Table 'addrmode3' exports size 0

No output produced
0 languages successfully compiled
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM4_be.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM4_le.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM4t_be.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM4t_le.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM5_be.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM5_le.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM5t_be.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM5t_le.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM6_be.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM6_le.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM7_be.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM7_le.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM8_be.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM8_le.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM8m_be.slaspec failed to compile
/tmp/ghidra/Ghidra/Processors/ARM/./data/languages/ARM8m_le.slaspec failed to compile
16 languages failed to compile

> Task :ARM:sleighCompile FAILED

@GhidorahRex
Copy link
Collaborator

You're right @jobermayr, you have to give it a size. Since everything else is exporting a varnode based on rn it should be size 4. This should fix it:
local tmp:4 = reloff; export tmp;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature: Processor/ARM Status: Triage Information is being gathered
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants