Home | History | Annotate | Download | only in target-arm

Lines Matching refs:shift

52     int shift;
56 for (shift = 0; shift < 32; shift += 8) {
57 index = (ireg >> shift) & 0xff;
60 val |= tmp << shift;
62 val |= def & (0xff << shift);
75 #define SHIFT 0
78 #define SHIFT 1
81 #define SHIFT 2
84 #define SHIFT 3
213 static inline uint32_t do_ssat(int32_t val, int shift)
218 top = val >> shift;
219 mask = (1u << shift) - 1;
231 static inline uint32_t do_usat(int32_t val, int shift)
235 max = (1u << shift) - 1;
247 uint32_t HELPER(ssat)(uint32_t x, uint32_t shift)
249 return do_ssat(x, shift);
253 uint32_t HELPER(ssat16)(uint32_t x, uint32_t shift)
257 res = (uint16_t)do_ssat((int16_t)x, shift);
258 res |= do_ssat(((int32_t)x) >> 16, shift) << 16;
263 uint32_t HELPER(usat)(uint32_t x, uint32_t shift)
265 return do_usat(x, shift);
269 uint32_t HELPER(usat16)(uint32_t x, uint32_t shift)
273 res = (uint16_t)do_usat((int16_t)x, shift);
274 res |= do_usat(((int32_t)x) >> 16, shift) << 16;
387 /* Similarly for variable shift instructions. */
391 int shift = i & 0xff;
392 if (shift >= 32)
394 return x << shift;
399 int shift = i & 0xff;
400 if (shift >= 32)
402 return (uint32_t)x >> shift;
407 int shift = i & 0xff;
408 if (shift >= 32)
409 shift = 31;
410 return (int32_t)x >> shift;
415 int shift = i & 0xff;
416 if (shift == 0)
418 return (x >> shift) | (x << (32 - shift));
423 int shift = i & 0xff;
424 if (shift >= 32) {
425 if (shift == 32)
430 } else if (shift != 0) {
431 env->CF = (x >> (32 - shift)) & 1;
432 return x << shift;
439 int shift = i & 0xff;
440 if (shift >= 32) {
441 if (shift == 32)
446 } else if (shift != 0) {
447 env->CF = (x >> (shift - 1)) & 1;
448 return x >> shift;
455 int shift = i & 0xff;
456 if (shift >= 32) {
459 } else if (shift != 0) {
460 env->CF = (x >> (shift - 1)) & 1;
461 return (int32_t)x >> shift;
468 int shift1, shift;
470 shift = shift1 & 0x1f;
471 if (shift == 0) {
476 env->CF = (x >> (shift - 1)) & 1;
477 return ((uint32_t)x >> shift) | (x << (32 - shift));