qemu/tests/tcg/cris/check_btst.s
<<
>>
Prefs
   1# mach: crisv0 crisv3 crisv8 crisv10 crisv32
   2# output: 1111\n
   3
   4 .include "testutils.inc"
   5 start
   6 clearf nzvc
   7 moveq -1,r3
   8 .if 1 ;..asm.arch.cris.v32
   9 .else
  10 setf vc
  11 .endif
  12 btstq 0,r3
  13 test_cc 1 0 0 0
  14
  15 moveq 2,r3
  16 btstq 1,r3
  17 test_cc 1 0 0 0
  18
  19 moveq 4,r3
  20 btstq 1,r3
  21 test_cc 0 1 0 0
  22
  23 moveq -1,r3
  24 btstq 31,r3
  25 test_cc 1 0 0 0
  26
  27 move.d 0x5a67f19f,r3
  28 btstq 12,r3
  29 test_cc 1 0 0 0
  30
  31 move.d 0xda67f19f,r3
  32 move.d 29,r4
  33 btst r4,r3
  34 test_cc 0 0 0 0
  35
  36 move.d 0xda67f19f,r3
  37 move.d 32,r4
  38 btst r4,r3
  39 test_cc 1 0 0 0
  40
  41 move.d 0xda67f191,r3
  42 move.d 33,r4
  43 btst r4,r3
  44 test_cc 0 0 0 0
  45
  46 moveq -1,r3
  47 moveq 0,r4
  48 btst r4,r3
  49 test_cc 1 0 0 0
  50
  51 moveq 2,r3
  52 moveq 1,r4
  53 btst r4,r3
  54 test_cc 1 0 0 0
  55
  56 moveq -1,r3
  57 moveq 31,r4
  58 btst r4,r3
  59 test_cc 1 0 0 0
  60
  61 moveq 4,r3
  62 btstq 1,r3
  63 test_cc 0 1 0 0
  64
  65 moveq -1,r3
  66 moveq 15,r4
  67 btst r4,r3
  68 test_cc 1 0 0 0
  69
  70 move.d 0x5a67f19f,r3
  71 moveq 12,r4
  72 btst r4,r3
  73 test_cc 1 0 0 0
  74
  75 move.d 0x5a678000,r3
  76 moveq 11,r4
  77 btst r4,r3
  78 test_cc 0 1 0 0
  79
  80 move.d 0x5a67f19f,r3
  81 btst r3,r3
  82 test_cc 0 0 0 0
  83
  84 move.d 0x1111,r3
  85 checkr3 1111
  86
  87 ; check that X gets cleared and that only the NZ flags are touched.
  88 move.d 0xff, $r0
  89 move $r0, $ccs
  90 btst r3,r3
  91 move $ccs, $r0
  92 and.d 0xff, $r0
  93 cmp.d  0xe3, $r0
  94 test_cc 0 1 0 0
  95
  96 quit
  97