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