1# Test LDR instructions with offsets misaligned by 1 byte.
2# mach(): all
3
4	.macro invalid
5# This is "undefined" but it's not properly decoded yet.
6	.word 0x07ffffff
7# This is stc which isn't recognized yet.
8	stc 0,cr0,[r0]
9	.endm
10
11	.global _start
12_start:
13# Run some simple insns to confirm the engine is at least working.
14	nop
15
16# Skip over output text.
17	bl do_test
18
19pass:
20	.asciz "pass\n"
21	.p2align 2
22
23do_test:
24	mov r4, r14
25	bl continue
26word1:
27	.word 0x5555
28continue:
29	ldr r6, [r14, #1]
30	ldr r7, word2
31	cmp r6, r7
32	# Failed.
33	bne done
34
35output_next:
36# Output a character (in arm mode).
37	mov r0,#3
38	mov r1,r4
39	swi #0x123456
40
41# Load next character, see if done.
42	add r4,r4,#1
43	sub r3,r3,r3
44	ldrb r5,[r4,r3]
45	teq r5,#0
46	bne output_next
47
48done:
49	mov r0,#0x18
50	ldr r1,exit_code
51	swi #0x123456
52
53# If that fails, try to die with an invalid insn.
54	invalid
55
56exit_code:
57	.word 0x20026
58	.word 0xFFFFFFFF
59word2:
60	.word 0x55000055
61	.word 0xFFFFFFFF
62