tbnz.s revision 1.1 1 1.1 christos # mach: aarch64
2 1.1 christos
3 1.1 christos # Check the test-bit-and-branch instructions: tbnz, and tbz.
4 1.1 christos # We check the edge condition bit positions: 0, 1<<31, 1<<32, 1<<63.
5 1.1 christos
6 1.1 christos .include "testutils.inc"
7 1.1 christos
8 1.1 christos start
9 1.1 christos mov x0, #1
10 1.1 christos tbnz x0, #0, .L1
11 1.1 christos fail
12 1.1 christos .L1:
13 1.1 christos tbz x0, #0, .Lfailure
14 1.1 christos mov x0, #0xFFFFFFFFFFFFFFFE
15 1.1 christos tbnz x0, #0, .Lfailure
16 1.1 christos tbz x0, #0, .L2
17 1.1 christos fail
18 1.1 christos .L2:
19 1.1 christos
20 1.1 christos mov x0, #0x80000000
21 1.1 christos tbnz x0, #31, .L3
22 1.1 christos fail
23 1.1 christos .L3:
24 1.1 christos tbz x0, #31, .Lfailure
25 1.1 christos mov x0, #0xFFFFFFFF7FFFFFFF
26 1.1 christos tbnz x0, #31, .Lfailure
27 1.1 christos tbz x0, #31, .L4
28 1.1 christos fail
29 1.1 christos .L4:
30 1.1 christos
31 1.1 christos mov x0, #0x100000000
32 1.1 christos tbnz x0, #32, .L5
33 1.1 christos fail
34 1.1 christos .L5:
35 1.1 christos tbz x0, #32, .Lfailure
36 1.1 christos mov x0, #0xFFFFFFFEFFFFFFFF
37 1.1 christos tbnz x0, #32, .Lfailure
38 1.1 christos tbz x0, #32, .L6
39 1.1 christos fail
40 1.1 christos .L6:
41 1.1 christos
42 1.1 christos mov x0, #0x8000000000000000
43 1.1 christos tbnz x0, #63, .L7
44 1.1 christos fail
45 1.1 christos .L7:
46 1.1 christos tbz x0, #63, .Lfailure
47 1.1 christos mov x0, #0x7FFFFFFFFFFFFFFF
48 1.1 christos tbnz x0, #63, .Lfailure
49 1.1 christos tbz x0, #63, .L8
50 1.1 christos fail
51 1.1 christos .L8:
52 1.1 christos
53 1.1 christos pass
54 1.1 christos .Lfailure:
55 1.1 christos fail
56