Projet_SETI_RISC-V/riscv-gnu-toolchain/binutils/sim/testsuite/arm/misaligned2.ms
2023-03-06 14:48:14 +01:00

60 lines
901 B
Text

# Test LDR instructions with offsets misaligned by 2 bytes.
# 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, #2]
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
word2:
.word 0x55550000