xref: /minix3/minix/tests/arch/earm/test_arm_unaligned.S (revision 35b65c5af1d53112a49b08e87ddc00d7e24625e9)
1*35b65c5aSArne Welzel.text
2*35b65c5aSArne Welzel.global main
3*35b65c5aSArne Welzelmain:
4*35b65c5aSArne Welzel	push {lr}
5*35b65c5aSArne Welzel	mov r0, sp
6*35b65c5aSArne Welzel
7*35b65c5aSArne Welzel	/* This should work */
8*35b65c5aSArne Welzel	ldr r0, [sp]
9*35b65c5aSArne Welzel
10*35b65c5aSArne Welzel	/* Unalign it */
11*35b65c5aSArne Welzel	add r0, #2
12*35b65c5aSArne Welzel
13*35b65c5aSArne Welzel	/* Try a non-word aligned word-load, this may work if SCTRL.A == 0 */
14*35b65c5aSArne Welzel	ldr r1, [r0]
15*35b65c5aSArne Welzel
16*35b65c5aSArne Welzel	/* Load non-word aligned dword, should die even with SCTRL.A == 0 */
17*35b65c5aSArne Welzel	ldrd r2, r3, [r0]
18*35b65c5aSArne Welzel
19*35b65c5aSArne Welzel
20*35b65c5aSArne Welzel	ldr r0, =msg
21*35b65c5aSArne Welzel	bl puts
22*35b65c5aSArne Welzel
23*35b65c5aSArne Welzel	mov r0, #0  /* test should check for non-zero exit code / signal */
24*35b65c5aSArne Welzel	pop {pc}
25*35b65c5aSArne Welzelmsg:
26*35b65c5aSArne Welzel	.ascii "ERROR - caused no sigbus\n"
27