| # mach: aarch64 |
| |
| # Check the test-bit-and-branch instructions: tbnz, and tbz. |
| # We check the edge condition bit positions: 0, 1<<31, 1<<32, 1<<63. |
| |
| .include "testutils.inc" |
| |
| start |
| mov x0, #1 |
| tbnz x0, #0, .L1 |
| fail |
| .L1: |
| tbz x0, #0, .Lfailure |
| mov x0, #0xFFFFFFFFFFFFFFFE |
| tbnz x0, #0, .Lfailure |
| tbz x0, #0, .L2 |
| fail |
| .L2: |
| |
| mov x0, #0x80000000 |
| tbnz x0, #31, .L3 |
| fail |
| .L3: |
| tbz x0, #31, .Lfailure |
| mov x0, #0xFFFFFFFF7FFFFFFF |
| tbnz x0, #31, .Lfailure |
| tbz x0, #31, .L4 |
| fail |
| .L4: |
| |
| mov x0, #0x100000000 |
| tbnz x0, #32, .L5 |
| fail |
| .L5: |
| tbz x0, #32, .Lfailure |
| mov x0, #0xFFFFFFFEFFFFFFFF |
| tbnz x0, #32, .Lfailure |
| tbz x0, #32, .L6 |
| fail |
| .L6: |
| |
| mov x0, #0x8000000000000000 |
| tbnz x0, #63, .L7 |
| fail |
| .L7: |
| tbz x0, #63, .Lfailure |
| mov x0, #0x7FFFFFFFFFFFFFFF |
| tbnz x0, #63, .Lfailure |
| tbz x0, #63, .L8 |
| fail |
| .L8: |
| |
| pass |
| .Lfailure: |
| fail |