| # frv testcase for ldq @($GRi,$GRj),$GRk |
| # mach: frv |
| |
| .include "testutils.inc" |
| |
| start |
| |
| .global ldq |
| ldq: |
| set_mem_limmed 0xdead,0xbeef,sp |
| inc_gr_immed -4,sp |
| set_mem_limmed 0xbeef,0xdead,sp |
| inc_gr_immed -4,sp |
| set_mem_limmed 0x1234,0x5678,sp |
| inc_gr_immed -4,sp |
| set_mem_limmed 0x9abc,0xdef0,sp |
| set_gr_limmed 0xdead,0xbeef,gr8 |
| set_gr_limmed 0xbeef,0xdead,gr9 |
| set_gr_limmed 0x1234,0x5678,gr10 |
| set_gr_limmed 0x9abc,0xdef0,gr11 |
| |
| set_gr_immed 0,gr7 |
| ldq @(sp,gr7),gr8 |
| test_gr_limmed 0x9abc,0xdef0,gr8 |
| test_gr_limmed 0x1234,0x5678,gr9 |
| test_gr_limmed 0xbeef,0xdead,gr10 |
| test_gr_limmed 0xdead,0xbeef,gr11 |
| |
| set_gr_limmed 0xdead,0xbeef,gr8 |
| set_gr_limmed 0xbeef,0xdead,gr9 |
| set_gr_limmed 0x1234,0x5678,gr10 |
| set_gr_limmed 0x9abc,0xdef0,gr11 |
| inc_gr_immed -16,sp |
| set_gr_immed 16,gr7 |
| ldq @(sp,gr7),gr8 |
| test_gr_limmed 0x9abc,0xdef0,gr8 |
| test_gr_limmed 0x1234,0x5678,gr9 |
| test_gr_limmed 0xbeef,0xdead,gr10 |
| test_gr_limmed 0xdead,0xbeef,gr11 |
| |
| set_gr_limmed 0xdead,0xbeef,gr8 |
| set_gr_limmed 0xbeef,0xdead,gr9 |
| set_gr_limmed 0x1234,0x5678,gr10 |
| set_gr_limmed 0x9abc,0xdef0,gr11 |
| inc_gr_immed 32,sp |
| set_gr_immed -16,gr7 |
| ldq @(sp,gr7),gr8 |
| test_gr_limmed 0x9abc,0xdef0,gr8 |
| test_gr_limmed 0x1234,0x5678,gr9 |
| test_gr_limmed 0xbeef,0xdead,gr10 |
| test_gr_limmed 0xdead,0xbeef,gr11 |
| |
| ; loading into gr0 has no effect |
| ; gr1 is sp |
| set_gr_gr gr1,gr8 |
| set_gr_limmed 0x1234,0x5678,gr2 |
| set_gr_limmed 0x9abc,0xdef0,gr3 |
| ldq @(sp,gr7),gr0 |
| test_gr_immed 0,gr0 |
| test_gr_gr gr1,gr8 |
| set_gr_immed 0x12345678,gr2 |
| set_gr_immed 0x9abcdef0,gr3 |
| |
| pass |