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