diff options
Diffstat (limited to 'sim/testsuite/mips/r6-llsc-dp.s')
-rw-r--r-- | sim/testsuite/mips/r6-llsc-dp.s | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/sim/testsuite/mips/r6-llsc-dp.s b/sim/testsuite/mips/r6-llsc-dp.s new file mode 100644 index 0000000..1eec3e4 --- /dev/null +++ b/sim/testsuite/mips/r6-llsc-dp.s @@ -0,0 +1,57 @@ +# mips64 specific r6 tests - paired LL/SC variants +# mach: mips64r6 +# as: -mabi=eabi +# ld: -N -Ttext=0x80010000 -Tdata=0x80020000 +# output: *\\npass\\n + + .include "testutils.inc" + .include "utils-r6.inc" + + .data + .align 16 +test_data: + .word 0xaaaaaaaa + .word 0xbbbbbbbb + .word 0xcccccccc + .word 0xdddddddd +end_check: + .byte 0 + .byte 0 + .byte 0 + .byte 0x1 + + .text + + setup + + .ent DIAG +DIAG: + writemsg "[1] Test LLWP" + llwp $2, $3, test_data + checkpair_dword $2, $3, test_data, end_check + + sll $2, $2, 1 + srl $3, $3, 1 + move $s0, $2 + + scwp $2, $3, test_data + check32 $2, 1 + checkpair_dword $s0, $3, test_data, end_check + writemsg "[2] Test SCWP, done" + + writemsg "[3] Test LLDP" + lldp $2, $3, test_data + checkpair_qword $2, $3, test_data, end_check + + dsll $2, $2, 1 + dsrl $3, $3, 1 + move $s0, $2 + + scdp $2, $3, test_data + check32 $2, 1 + checkpair_qword $s0, $3, test_data, end_check + writemsg "[4] Test SCDP, done" + + pass + + .end DIAG |