Lines Matching refs:rvalue

170 void imm_print(Context *c, YYLTYPE *locp, HexValue *rvalue)  in imm_print()  argument
172 HexImm *imm = &rvalue->imm; in imm_print()
181 if (rvalue->bit_width == 32) { in imm_print()
182 if (rvalue->signedness == UNSIGNED) { in imm_print()
187 } else if (rvalue->bit_width == 64) { in imm_print()
188 if (rvalue->signedness == UNSIGNED) { in imm_print()
219 HexValue *rvalue = (HexValue *) pointer; in rvalue_print() local
220 switch (rvalue->type) { in rvalue_print()
222 reg_print(c, locp, &rvalue->reg); in rvalue_print()
225 reg_arg_print(c, locp, &rvalue->reg); in rvalue_print()
228 tmp_print(c, locp, &rvalue->tmp); in rvalue_print()
231 imm_print(c, locp, rvalue); in rvalue_print()
234 var_print(c, locp, &rvalue->var); in rvalue_print()
237 pred_print(c, locp, &rvalue->pred, rvalue->is_dotnew); in rvalue_print()
286 HexValue rvalue; in gen_constant() local
288 memset(&rvalue, 0, sizeof(HexValue)); in gen_constant()
289 rvalue.type = TEMP; in gen_constant()
290 rvalue.bit_width = bit_width; in gen_constant()
291 rvalue.signedness = signedness; in gen_constant()
292 rvalue.is_dotnew = false; in gen_constant()
293 rvalue.tmp.index = c->inst.tmp_count; in gen_constant()
297 return rvalue; in gen_constant()
306 HexValue rvalue; in gen_tmp() local
308 memset(&rvalue, 0, sizeof(HexValue)); in gen_tmp()
309 rvalue.type = TEMP; in gen_tmp()
310 rvalue.bit_width = bit_width; in gen_tmp()
311 rvalue.signedness = signedness; in gen_tmp()
312 rvalue.is_dotnew = false; in gen_tmp()
313 rvalue.tmp.index = c->inst.tmp_count; in gen_tmp()
317 return rvalue; in gen_tmp()
324 HexValue rvalue; in gen_constant_from_imm() local
326 memset(&rvalue, 0, sizeof(HexValue)); in gen_constant_from_imm()
327 rvalue.type = TEMP; in gen_constant_from_imm()
328 rvalue.bit_width = value->bit_width; in gen_constant_from_imm()
329 rvalue.signedness = value->signedness; in gen_constant_from_imm()
330 rvalue.is_dotnew = false; in gen_constant_from_imm()
331 rvalue.tmp.index = c->inst.tmp_count; in gen_constant_from_imm()
344 OUT(c, locp, "TCGv_i", &rvalue.bit_width, " tmp_", &c->inst.tmp_count); in gen_constant_from_imm()
345 OUT(c, locp, " = tcg_constant_i", &rvalue.bit_width, in gen_constant_from_imm()
346 "((int", &rvalue.bit_width, "_t) (", value, "));\n"); in gen_constant_from_imm()
349 return rvalue; in gen_constant_from_imm()
359 HexValue rvalue; in gen_imm_value() local
361 memset(&rvalue, 0, sizeof(HexValue)); in gen_imm_value()
362 rvalue.type = IMMEDIATE; in gen_imm_value()
363 rvalue.bit_width = bit_width; in gen_imm_value()
364 rvalue.signedness = signedness; in gen_imm_value()
365 rvalue.is_dotnew = false; in gen_imm_value()
366 rvalue.imm.type = VALUE; in gen_imm_value()
367 rvalue.imm.value = value; in gen_imm_value()
368 return rvalue; in gen_imm_value()
375 HexValue rvalue; in gen_imm_qemu_tmp() local
377 memset(&rvalue, 0, sizeof(HexValue)); in gen_imm_qemu_tmp()
378 rvalue.type = IMMEDIATE; in gen_imm_qemu_tmp()
379 rvalue.is_dotnew = false; in gen_imm_qemu_tmp()
380 rvalue.bit_width = bit_width; in gen_imm_qemu_tmp()
381 rvalue.signedness = signedness; in gen_imm_qemu_tmp()
382 rvalue.imm.type = QEMU_TMP; in gen_imm_qemu_tmp()
383 rvalue.imm.index = c->inst.qemu_tmp_count++; in gen_imm_qemu_tmp()
384 return rvalue; in gen_imm_qemu_tmp()
387 HexValue rvalue_materialize(Context *c, YYLTYPE *locp, HexValue *rvalue) in rvalue_materialize() argument
389 if (rvalue->type == IMMEDIATE) { in rvalue_materialize()
390 return gen_constant_from_imm(c, locp, rvalue); in rvalue_materialize()
392 return *rvalue; in rvalue_materialize()
395 HexValue gen_rvalue_extend(Context *c, YYLTYPE *locp, HexValue *rvalue) in gen_rvalue_extend() argument
397 assert_signedness(c, locp, rvalue->signedness); in gen_rvalue_extend()
398 if (rvalue->bit_width > 32) { in gen_rvalue_extend()
399 return *rvalue; in gen_rvalue_extend()
402 if (rvalue->type == IMMEDIATE) { in gen_rvalue_extend()
403 HexValue res = gen_imm_qemu_tmp(c, locp, 64, rvalue->signedness); in gen_rvalue_extend()
404 gen_c_int_type(c, locp, 64, rvalue->signedness); in gen_rvalue_extend()
406 gen_c_int_type(c, locp, 64, rvalue->signedness); in gen_rvalue_extend()
407 OUT(c, locp, ")", rvalue, ";\n"); in gen_rvalue_extend()
410 HexValue res = gen_tmp(c, locp, 64, rvalue->signedness); in gen_rvalue_extend()
411 bool is_unsigned = (rvalue->signedness == UNSIGNED); in gen_rvalue_extend()
414 "_i32_i64(", &res, ", ", rvalue, ");\n"); in gen_rvalue_extend()
419 HexValue gen_rvalue_truncate(Context *c, YYLTYPE *locp, HexValue *rvalue) in gen_rvalue_truncate() argument
421 if (rvalue->type == IMMEDIATE) { in gen_rvalue_truncate()
422 HexValue res = *rvalue; in gen_rvalue_truncate()
426 if (rvalue->bit_width == 64) { in gen_rvalue_truncate()
427 HexValue res = gen_tmp(c, locp, 32, rvalue->signedness); in gen_rvalue_truncate()
428 OUT(c, locp, "tcg_gen_trunc_i64_tl(", &res, ", ", rvalue, ");\n"); in gen_rvalue_truncate()
432 return *rvalue; in gen_rvalue_truncate()