# Test LDR instructions with offsets misaligned by 1 byte. # mach(): all .macro invalid # This is "undefined" but it's not properly decoded yet. .word 0x07ffffff # This is stc which isn't recognized yet. stc 0,cr0,[r0] .endm .global _start _start: # Run some simple insns to confirm the engine is at least working. nop # Skip over output text. bl do_test pass: .asciz "pass\n" .p2align 2 do_test: mov r4, r14 bl continue word1: .word 0x5555 continue: ldr r6, [r14, #1] ldr r7, word2 cmp r6, r7 # Failed. bne done output_next: # Output a character (in arm mode). mov r0,#3 mov r1,r4 swi #0x123456 # Load next character, see if done. add r4,r4,#1 sub r3,r3,r3 ldrb r5,[r4,r3] teq r5,#0 bne output_next done: mov r0,#0x18 ldr r1,exit_code swi #0x123456 # If that fails, try to die with an invalid insn. invalid exit_code: .word 0x20026 .word 0xFFFFFFFF word2: .word 0x55000055 .word 0xFFFFFFFF