Lines Matching refs:v32

190 /* Return true if v32 is a valid 32-bit shifted immediate.  */
191 static bool is_shimm32(uint32_t v32, int *cmode, int *imm8)
193 if (v32 == (v32 & 0xff)) {
195 *imm8 = v32 & 0xff;
197 } else if (v32 == (v32 & 0xff00)) {
199 *imm8 = (v32 >> 8) & 0xff;
201 } else if (v32 == (v32 & 0xff0000)) {
203 *imm8 = (v32 >> 16) & 0xff;
205 } else if (v32 == (v32 & 0xff000000)) {
207 *imm8 = v32 >> 24;
213 /* Return true if v32 is a valid 32-bit shifting ones immediate. */
214 static bool is_soimm32(uint32_t v32, int *cmode, int *imm8)
216 if ((v32 & 0xffff00ff) == 0xff) {
218 *imm8 = (v32 >> 8) & 0xff;
220 } else if ((v32 & 0xff00ffff) == 0xffff) {
222 *imm8 = (v32 >> 16) & 0xff;
228 /* Return true if v32 is a valid float32 immediate. */
229 static bool is_fimm32(uint32_t v32, int *cmode, int *imm8)
231 if (extract32(v32, 0, 19) == 0
232 && (extract32(v32, 25, 6) == 0x20
233 || extract32(v32, 25, 6) == 0x1f)) {
235 *imm8 = (extract32(v32, 31, 1) << 7)
236 | (extract32(v32, 25, 1) << 6)
237 | extract32(v32, 19, 6);
259 * Return non-zero if v32 can be formed by MOVI+ORR.
261 * Return the cmode for ORR; the imm8 can be had via extraction from v32.
263 static int is_shimm32_pair(uint32_t v32, int *cmode, int *imm8)
269 uint32_t tmp = v32 & ~(0xffu << (i * 4));
279 static bool is_shimm1632(uint32_t v32, int *cmode, int *imm8)
281 if (v32 == deposit32(v32, 16, 16, v32)) {
282 return is_shimm16(v32, cmode, imm8);
284 return is_shimm32(v32, cmode, imm8);
996 uint32_t v32 = v64;
997 uint32_t n32 = ~v32;
999 if (is_shimm32(v32, &cmode, &imm8) ||
1000 is_soimm32(v32, &cmode, &imm8) ||
1001 is_fimm32(v32, &cmode, &imm8)) {
1015 i = is_shimm32_pair(v32, &cmode, &imm8);
1018 tcg_out_insn(s, 3606, ORR, q, rd, 0, i, extract32(v32, i * 4, 8));