| # mach: crisv0 crisv3 crisv8 crisv10 crisv32 |
| # output: 1111\n |
| |
| .include "testutils.inc" |
| start |
| clearf nzvc |
| moveq -1,r3 |
| .if 1 ;..asm.arch.cris.v32 |
| .else |
| setf vc |
| .endif |
| btstq 0,r3 |
| test_cc 1 0 0 0 |
| |
| moveq 2,r3 |
| btstq 1,r3 |
| test_cc 1 0 0 0 |
| |
| moveq 4,r3 |
| btstq 1,r3 |
| test_cc 0 1 0 0 |
| |
| moveq -1,r3 |
| btstq 31,r3 |
| test_cc 1 0 0 0 |
| |
| move.d 0x5a67f19f,r3 |
| btstq 12,r3 |
| test_cc 1 0 0 0 |
| |
| move.d 0xda67f19f,r3 |
| move.d 29,r4 |
| btst r4,r3 |
| test_cc 0 0 0 0 |
| |
| move.d 0xda67f19f,r3 |
| move.d 32,r4 |
| btst r4,r3 |
| test_cc 1 0 0 0 |
| |
| move.d 0xda67f191,r3 |
| move.d 33,r4 |
| btst r4,r3 |
| test_cc 0 0 0 0 |
| |
| moveq -1,r3 |
| moveq 0,r4 |
| btst r4,r3 |
| test_cc 1 0 0 0 |
| |
| moveq 2,r3 |
| moveq 1,r4 |
| btst r4,r3 |
| test_cc 1 0 0 0 |
| |
| moveq -1,r3 |
| moveq 31,r4 |
| btst r4,r3 |
| test_cc 1 0 0 0 |
| |
| moveq 4,r3 |
| btstq 1,r3 |
| test_cc 0 1 0 0 |
| |
| moveq -1,r3 |
| moveq 15,r4 |
| btst r4,r3 |
| test_cc 1 0 0 0 |
| |
| move.d 0x5a67f19f,r3 |
| moveq 12,r4 |
| btst r4,r3 |
| test_cc 1 0 0 0 |
| |
| move.d 0x5a678000,r3 |
| moveq 11,r4 |
| btst r4,r3 |
| test_cc 0 1 0 0 |
| |
| move.d 0x5a67f19f,r3 |
| btst r3,r3 |
| test_cc 0 0 0 0 |
| |
| move.d 0x1111,r3 |
| checkr3 1111 |
| |
| ; check that X gets cleared and that only the NZ flags are touched. |
| move.d 0xff, $r0 |
| move $r0, $ccs |
| btst r3,r3 |
| move $ccs, $r0 |
| and.d 0xff, $r0 |
| cmp.d 0xe3, $r0 |
| test_cc 0 1 0 0 |
| |
| quit |