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