qemu/tests/tcg/cris/check_lsr.s
<<
>>
Prefs
   1# mach: crisv0 crisv3 crisv8 crisv10 crisv32
   2# output: ffffffff\n1\n1\n1ffff\n5a67f\n1\n0\n0\n3699fc67\nffffffff\n1\n1\n1ffff\n5a67f\nda670000\nda670000\nda670000\nda673c67\nffffffff\nffff7fff\n1\nffff0000\nffff0001\n5a67000f\nda67f100\nda67f100\nda67f100\nda67f127\nffffffff\nffffff7f\n1\nffffff00\nffffff00\nffffff01\n5a67f100\n5a67f109\n
   3
   4 .include "testutils.inc"
   5 start
   6 moveq -1,r3
   7 lsrq 0,r3
   8 test_move_cc 1 0 0 0
   9 checkr3 ffffffff
  10
  11 moveq 2,r3
  12 lsrq 1,r3
  13 test_move_cc 0 0 0 0
  14 checkr3 1
  15
  16 moveq -1,r3
  17 lsrq 31,r3
  18 test_move_cc 0 0 0 0
  19 checkr3 1
  20
  21 moveq -1,r3
  22 lsrq 15,r3
  23 test_move_cc 0 0 0 0
  24 checkr3 1ffff
  25
  26 move.d 0x5a67f19f,r3
  27 lsrq 12,r3
  28 test_move_cc 0 0 0 0
  29 checkr3 5a67f
  30
  31 move.d 0xda67f19f,r3
  32 move.d 31,r4
  33 lsr.d r4,r3
  34 test_move_cc 0 0 0 0
  35 checkr3 1
  36
  37 move.d 0xda67f19f,r3
  38 move.d 32,r4
  39 lsr.d r4,r3
  40 test_move_cc 0 1 0 0
  41 checkr3 0
  42
  43 move.d 0xda67f19f,r3
  44 move.d 33,r4
  45 lsr.d r4,r3
  46 test_move_cc 0 1 0 0
  47 checkr3 0
  48
  49 move.d 0xda67f19f,r3
  50 move.d 66,r4
  51 lsr.d r4,r3
  52 test_move_cc 0 0 0 0
  53 checkr3 3699fc67
  54
  55 moveq -1,r3
  56 moveq 0,r4
  57 lsr.d r4,r3
  58 test_move_cc 1 0 0 0
  59 checkr3 ffffffff
  60
  61 moveq 2,r3
  62 moveq 1,r4
  63 lsr.d r4,r3
  64 test_move_cc 0 0 0 0
  65 checkr3 1
  66
  67 moveq -1,r3
  68 moveq 31,r4
  69 lsr.d r4,r3
  70 test_move_cc 0 0 0 0
  71 checkr3 1
  72
  73 moveq -1,r3
  74 moveq 15,r4
  75 lsr.d r4,r3
  76 test_move_cc 0 0 0 0
  77 checkr3 1ffff
  78
  79 move.d 0x5a67f19f,r3
  80 moveq 12,r4
  81 lsr.d r4,r3
  82 test_move_cc 0 0 0 0
  83 checkr3 5a67f
  84
  85 move.d 0xda67f19f,r3
  86 move.d 31,r4
  87 lsr.w r4,r3
  88 test_move_cc 0 1 0 0
  89 checkr3 da670000
  90
  91 move.d 0xda67f19f,r3
  92 move.d 32,r4
  93 lsr.w r4,r3
  94 test_move_cc 0 1 0 0
  95 checkr3 da670000
  96
  97 move.d 0xda67f19f,r3
  98 move.d 33,r4
  99 lsr.w r4,r3
 100 test_move_cc 0 1 0 0
 101 checkr3 da670000
 102
 103 move.d 0xda67f19f,r3
 104 move.d 66,r4
 105 lsr.w r4,r3
 106 test_move_cc 0 0 0 0
 107 checkr3 da673c67
 108
 109 moveq -1,r3
 110 moveq 0,r4
 111 lsr.w r4,r3
 112 test_move_cc 1 0 0 0
 113 checkr3 ffffffff
 114
 115 moveq -1,r3
 116 moveq 1,r4
 117 lsr.w r4,r3
 118 test_move_cc 0 0 0 0
 119 checkr3 ffff7fff
 120
 121 moveq 2,r3
 122 moveq 1,r4
 123 lsr.w r4,r3
 124 test_move_cc 0 0 0 0
 125 checkr3 1
 126
 127;; FIXME: this was wrong. Z should be set.
 128 moveq -1,r3
 129 moveq 31,r4
 130 lsr.w r4,r3
 131 test_move_cc 0 1 0 0
 132 checkr3 ffff0000
 133
 134 moveq -1,r3
 135 moveq 15,r4
 136 lsr.w r4,r3
 137 test_move_cc 0 0 0 0
 138 checkr3 ffff0001
 139
 140 move.d 0x5a67f19f,r3
 141 moveq 12,r4
 142 lsr.w r4,r3
 143 test_move_cc 0 0 0 0
 144 checkr3 5a67000f
 145
 146 move.d 0xda67f19f,r3
 147 move.d 31,r4
 148 lsr.b r4,r3
 149 test_move_cc 0 1 0 0
 150 checkr3 da67f100
 151
 152 move.d 0xda67f19f,r3
 153 move.d 32,r4
 154 lsr.b r4,r3
 155 test_move_cc 0 1 0 0
 156 checkr3 da67f100
 157
 158 move.d 0xda67f19f,r3
 159 move.d 33,r4
 160 lsr.b r4,r3
 161 test_move_cc 0 1 0 0
 162 checkr3 da67f100
 163
 164 move.d 0xda67f19f,r3
 165 move.d 66,r4
 166 lsr.b r4,r3
 167 test_move_cc 0 0 0 0
 168 checkr3 da67f127
 169
 170 moveq -1,r3
 171 moveq 0,r4
 172 lsr.b r4,r3
 173 test_move_cc 1 0 0 0
 174 checkr3 ffffffff
 175
 176 moveq -1,r3
 177 moveq 1,r4
 178 lsr.b r4,r3
 179 test_move_cc 0 0 0 0
 180 checkr3 ffffff7f
 181
 182 moveq 2,r3
 183 moveq 1,r4
 184 lsr.b r4,r3
 185 test_move_cc 0 0 0 0
 186 checkr3 1
 187
 188 moveq -1,r3
 189 moveq 31,r4
 190 lsr.b r4,r3
 191 test_move_cc 0 1 0 0
 192 checkr3 ffffff00
 193
 194 moveq -1,r3
 195 moveq 15,r4
 196 lsr.b r4,r3
 197 test_move_cc 0 1 0 0
 198 checkr3 ffffff00
 199
 200 moveq -1,r3
 201 moveq 7,r4
 202 lsr.b r4,r3
 203 test_move_cc 0 0 0 0
 204 checkr3 ffffff01
 205
 206 move.d 0x5a67f19f,r3
 207 moveq 12,r4
 208 lsr.b r4,r3
 209 test_move_cc 0 1 0 0
 210 checkr3 5a67f100
 211
 212 move.d 0x5a67f19f,r3
 213 moveq 4,r4
 214 lsr.b r4,r3
 215 test_move_cc 0 0 0 0
 216 checkr3 5a67f109
 217
 218 quit
 219