| # 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 |