Projet_SETI_RISC-V/riscv-gnu-toolchain/binutils/sim/testsuite/aarch64/adds.s
2023-03-06 14:48:14 +01:00

98 lines
1.5 KiB
ArmAsm

# mach: aarch64
# Check the basic integer compare instructions: adds, adds64, subs, subs64.
# For add, check value pairs 1 and -1 (Z), -1 and -1 (N), 2 and -1 (C),
# and MIN_INT and -1 (V),
# Also check -2 and 1 (not C).
# For sub, negate the second value.
.include "testutils.inc"
start
mov w0, #1
mov w1, #-1
adds w2, w0, w1
bne .Lfailure
mov w0, #-1
mov w1, #-1
adds w2, w0, w1
bpl .Lfailure
mov w0, #2
mov w1, #-1
adds w2, w0, w1
bcc .Lfailure
mov w0, #0x80000000
mov w1, #-1
adds w2, w0, w1
bvc .Lfailure
mov w0, #-2
mov w1, #1
adds w2, w0, w1
bcs .Lfailure
mov x0, #1
mov x1, #-1
adds x2, x0, x1
bne .Lfailure
mov x0, #-1
mov x1, #-1
adds x2, x0, x1
bpl .Lfailure
mov x0, #2
mov x1, #-1
adds x2, x0, x1
bcc .Lfailure
mov x0, #0x8000000000000000
mov x1, #-1
adds x2, x0, x1
bvc .Lfailure
mov x0, #-2
mov x1, #1
adds x2, x0, x1
bcs .Lfailure
mov w0, #1
mov w1, #1
subs w2, w0, w1
bne .Lfailure
mov w0, #-1
mov w1, #1
subs w2, w0, w1
bpl .Lfailure
mov w0, #2
mov w1, #1
subs w2, w0, w1
bcc .Lfailure
mov w0, #0x80000000
mov w1, #1
subs w2, w0, w1
bvc .Lfailure
mov w0, #-2
mov w1, #-1
subs w2, w0, w1
bcs .Lfailure
mov x0, #1
mov x1, #1
subs x2, x0, x1
bne .Lfailure
mov x0, #-1
mov x1, #1
subs x2, x0, x1
bpl .Lfailure
mov x0, #2
mov x1, #1
subs x2, x0, x1
bcc .Lfailure
mov x0, #0x8000000000000000
mov x1, #1
subs x2, x0, x1
bvc .Lfailure
mov x0, #-2
mov x1, #-1
subs x2, x0, x1
bcs .Lfailure
pass
.Lfailure:
fail