Lines Matching refs:bit_width

142     switch (reg->bit_width) {  in reg_compose()
181 if (rvalue->bit_width == 32) { in imm_print()
187 } else if (rvalue->bit_width == 64) { in imm_print()
273 static void gen_c_int_type(Context *c, YYLTYPE *locp, unsigned bit_width, in gen_c_int_type() argument
277 OUT(c, locp, signstr, "int", &bit_width, "_t"); in gen_c_int_type()
283 unsigned bit_width, in gen_constant() argument
287 assert(bit_width == 32 || bit_width == 64); in gen_constant()
290 rvalue.bit_width = bit_width; in gen_constant()
294 OUT(c, locp, "TCGv_i", &bit_width, " tmp_", &c->inst.tmp_count, in gen_constant()
295 " = tcg_constant_i", &bit_width, "(", value, ");\n"); in gen_constant()
303 unsigned bit_width, in gen_tmp() argument
307 assert(bit_width == 32 || bit_width == 64); in gen_tmp()
310 rvalue.bit_width = bit_width; in gen_tmp()
314 OUT(c, locp, "TCGv_i", &bit_width, " tmp_", &c->inst.tmp_count, in gen_tmp()
315 " = tcg_temp_new_i", &bit_width, "();\n"); in gen_tmp()
328 rvalue.bit_width = value->bit_width; 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()
355 unsigned bit_width, in gen_imm_value() argument
360 assert(bit_width == 32 || bit_width == 64); in gen_imm_value()
363 rvalue.bit_width = bit_width; in gen_imm_value()
371 HexValue gen_imm_qemu_tmp(Context *c, YYLTYPE *locp, unsigned bit_width, in gen_imm_qemu_tmp() argument
376 assert(bit_width == 32 || bit_width == 64); in gen_imm_qemu_tmp()
380 rvalue.bit_width = bit_width; in gen_imm_qemu_tmp()
398 if (rvalue->bit_width > 32) { in gen_rvalue_extend()
423 res.bit_width = 32; in gen_rvalue_truncate()
426 if (rvalue->bit_width == 64) { in gen_rvalue_truncate()
453 dst->bit_width = curr->bit_width; in try_find_variable()
484 unsigned bit_width, in gen_varid_allocate() argument
487 const char *bit_suffix = (bit_width == 64) ? "i64" : "i32"; in gen_varid_allocate()
498 new_var.bit_width = bit_width; in gen_varid_allocate()
524 bool op_is64bit = op1_m.bit_width == 64 || op2_m.bit_width == 64; in gen_bin_cmp()
526 unsigned bit_width = (op_is64bit) ? 64 : 32; in gen_bin_cmp() local
527 HexValue res = gen_tmp(c, locp, bit_width, UNSIGNED); in gen_bin_cmp()
558 static void gen_simple_op(Context *c, YYLTYPE *locp, unsigned bit_width, in gen_simple_op() argument
573 gen_c_int_type(c, locp, bit_width, signedness); in gen_simple_op()
592 static void gen_sub_op(Context *c, YYLTYPE *locp, unsigned bit_width, in gen_sub_op() argument
602 gen_c_int_type(c, locp, bit_width, signedness); in gen_sub_op()
621 static void gen_asl_op(Context *c, YYLTYPE *locp, unsigned bit_width, in gen_asl_op() argument
633 gen_c_int_type(c, locp, bit_width, signedness); in gen_asl_op()
638 OUT(c, locp, "if (", op2, " >= ", &bit_width, ") {\n"); in gen_asl_op()
646 op1_m.bit_width = bit_width; in gen_asl_op()
659 HexValue zero = gen_constant(c, locp, "0", bit_width, UNSIGNED); in gen_asl_op()
660 HexValue edge = gen_imm_value(c, locp, bit_width, bit_width, UNSIGNED); in gen_asl_op()
667 OUT(c, locp, "tcg_gen_movcond_i", &bit_width); in gen_asl_op()
673 static void gen_asr_op(Context *c, YYLTYPE *locp, unsigned bit_width, in gen_asr_op() argument
691 gen_c_int_type(c, locp, bit_width, signedness); in gen_asr_op()
693 OUT(c, locp, "if (", op2, " >= ", &bit_width, ") {\n"); in gen_asr_op()
694 OUT(c, locp, " shift = ", &bit_width, " - 1;\n"); in gen_asr_op()
707 HexValue tmp = gen_tmp(c, locp, bit_width, SIGNED); in gen_asr_op()
708 HexValue zero = gen_constant(c, locp, "0", bit_width, SIGNED); in gen_asr_op()
709 HexValue edge = gen_imm_value(c, locp, bit_width, bit_width, UNSIGNED); in gen_asr_op()
722 OUT(c, locp, "tcg_gen_movcond_i", &bit_width); in gen_asr_op()
728 static void gen_lsr_op(Context *c, YYLTYPE *locp, unsigned bit_width, in gen_lsr_op() argument
742 OUT(c, locp, "if (", op2, " >= ", &bit_width, ") {\n"); in gen_lsr_op()
756 HexValue zero = gen_constant(c, locp, "0", bit_width, UNSIGNED); in gen_lsr_op()
757 HexValue edge = gen_imm_value(c, locp, bit_width, bit_width, UNSIGNED); in gen_lsr_op()
764 OUT(c, locp, "tcg_gen_movcond_i", &bit_width); in gen_lsr_op()
774 static void gen_andl_op(Context *c, YYLTYPE *locp, unsigned bit_width, in gen_andl_op() argument
779 (void) bit_width; in gen_andl_op()
800 static void gen_minmax_op(Context *c, YYLTYPE *locp, unsigned bit_width, in gen_minmax_op() argument
824 op1_m.bit_width = bit_width; in gen_minmax_op()
826 OUT(c, locp, mm, "_i", &bit_width, "("); in gen_minmax_op()
830 op2_m.bit_width = bit_width; in gen_minmax_op()
834 OUT(c, locp, mm, "_i", &bit_width, "("); in gen_minmax_op()
853 unsigned bit_width; in gen_bin_op() local
872 op_is64bit = op1_m.bit_width == 64 || op2_m.bit_width == 64; in gen_bin_op()
880 bit_width = (op_is64bit) ? 64 : 32; in gen_bin_op()
891 res = gen_tmp(c, locp, bit_width, signedness); in gen_bin_op()
893 res = gen_imm_qemu_tmp(c, locp, bit_width, signedness); in gen_bin_op()
898 gen_simple_op(c, locp, bit_width, bit_suffix, &res, in gen_bin_op()
906 gen_sub_op(c, locp, bit_width, bit_suffix, &res, op_types, in gen_bin_op()
910 gen_simple_op(c, locp, bit_width, bit_suffix, &res, in gen_bin_op()
918 gen_asl_op(c, locp, bit_width, op_is64bit, bit_suffix, &res, op_types, in gen_bin_op()
922 gen_asr_op(c, locp, bit_width, op_is64bit, bit_suffix, &res, op_types, in gen_bin_op()
926 gen_lsr_op(c, locp, bit_width, op_is64bit, bit_suffix, &res, op_types, in gen_bin_op()
930 gen_simple_op(c, locp, bit_width, bit_suffix, &res, in gen_bin_op()
938 gen_simple_op(c, locp, bit_width, bit_suffix, &res, in gen_bin_op()
946 gen_simple_op(c, locp, bit_width, bit_suffix, &res, in gen_bin_op()
954 gen_andl_op(c, locp, bit_width, bit_suffix, &res, op_types, &op1_m, in gen_bin_op()
958 gen_minmax_op(c, locp, bit_width, &res, op_types, &op1_m, &op2_m, in gen_bin_op()
962 gen_minmax_op(c, locp, bit_width, &res, op_types, &op1_m, &op2_m, true); in gen_bin_op()
976 if (src->bit_width == target_width) { in gen_cast_op()
978 } else if (src->bit_width < target_width) { in gen_cast_op()
1123 unsigned bit_width = (dst_width == 64) ? 64 : 32; in gen_extend_op() local
1128 yyassert(c, locp, value_m.bit_width <= bit_width && in gen_extend_op()
1129 src_width_m.bit_width <= bit_width, in gen_extend_op()
1133 if (value_m.bit_width < bit_width) { in gen_extend_op()
1137 if (src_width_m.bit_width < bit_width) { in gen_extend_op()
1142 return gen_extend_imm_width_op(c, locp, &src_width_m, bit_width, in gen_extend_op()
1145 return gen_extend_tcg_width_op(c, locp, &src_width_m, bit_width, in gen_extend_op()
1172 const char *mask_str = (dst->bit_width == 32) in gen_rdeposit_op()
1175 HexValue mask = gen_constant(c, locp, mask_str, dst->bit_width, in gen_rdeposit_op()
1177 const char *dst_width_str = (dst->bit_width == 32) ? "32" : "64"; in gen_rdeposit_op()
1178 HexValue k64 = gen_constant(c, locp, dst_width_str, dst->bit_width, in gen_rdeposit_op()
1183 assert(dst->bit_width >= value->bit_width); in gen_rdeposit_op()
1190 yyassert(c, locp, value_m.bit_width == dst->bit_width && in gen_rdeposit_op()
1191 begin_m.bit_width == dst->bit_width && in gen_rdeposit_op()
1192 width_m.bit_width == dst->bit_width, in gen_rdeposit_op()
1212 OUT(c, locp, "tcg_gen_not_i", &dst->bit_width, "(", &mask, ", ", in gen_rdeposit_op()
1223 zero = gen_constant(c, locp, "0", res.bit_width, UNSIGNED); in gen_rdeposit_op()
1224 OUT(c, locp, "tcg_gen_movcond_i", &res.bit_width, "(TCG_COND_NE, ", in gen_rdeposit_op()
1238 unsigned bit_width = (dst->bit_width == 64) ? 64 : 32; in gen_deposit_op() local
1239 unsigned width = cast->bit_width; in gen_deposit_op()
1251 if (dst->bit_width != value->bit_width) { in gen_deposit_op()
1252 if (bit_width == 32) { in gen_deposit_op()
1259 OUT(c, locp, "tcg_gen_deposit_i", &bit_width, "(", dst, ", ", dst, ", "); in gen_deposit_op()
1269 unsigned bit_width = (src->bit_width == 64) ? 64 : 32; in gen_rextract_op() local
1270 HexValue res = gen_tmp(c, locp, bit_width, UNSIGNED); in gen_rextract_op()
1271 OUT(c, locp, "tcg_gen_extract_i", &bit_width, "(", &res); in gen_rextract_op()
1282 unsigned bit_width = (src->bit_width == 64) ? 64 : 32; in gen_extract_op() local
1283 unsigned width = extract->bit_width; in gen_extract_op()
1292 res = gen_tmp(c, locp, bit_width, extract->signedness); in gen_extract_op()
1294 OUT(c, locp, "tcg_gen_", sign_prefix, "extract_i", &bit_width, in gen_extract_op()
1299 if (extract->storage_bit_width > bit_width) { in gen_extract_op()
1328 unsigned bit_width; in gen_assign() local
1341 bit_width = dst->bit_width == 64 ? 64 : 32; in gen_assign()
1343 if (bit_width != value_m.bit_width) { in gen_assign()
1344 if (bit_width == 64) { in gen_assign()
1352 OUT(c, locp, "tcg_gen_mov", imm_suffix, "_i", &bit_width, in gen_assign()
1361 unsigned bit_width = src_m.bit_width; in gen_convround() local
1362 const char *size = (bit_width == 32) ? "32" : "64"; in gen_convround()
1363 HexValue res = gen_tmp(c, locp, bit_width, src->signedness); in gen_convround()
1364 HexValue mask = gen_constant(c, locp, "0x3", bit_width, UNSIGNED); in gen_convround()
1365 HexValue one = gen_constant(c, locp, "1", bit_width, UNSIGNED); in gen_convround()
1513 yyassert(c, locp, src->bit_width <= 32, in gen_round()
1518 src_width = gen_imm_value(c, locp, src->bit_width, 32, UNSIGNED); in gen_round()
1561 const char *bit_suffix = src->bit_width == 64 ? "64" : "32"; in gen_locnt_op()
1566 res = gen_tmp(c, locp, src->bit_width == 64 ? 64 : 32, src->signedness); in gen_locnt_op()
1577 const char *bit_suffix = src->bit_width == 64 ? "64" : "32"; in gen_ctpop_op()
1581 res = gen_tmp(c, locp, src->bit_width == 64 ? 64 : 32, src->signedness); in gen_ctpop_op()
1590 const char *suffix = src->bit_width == 64 ? "i64" : "i32"; in gen_rotl()
1594 res = gen_tmp(c, locp, src->bit_width, src->signedness); in gen_rotl()
1595 if (amount.bit_width < src->bit_width) { in gen_rotl()
1674 yyassert(c, locp, val->bit_width == 32, in gen_inst_init_args()
1749 dst_bit_width = MAX(dst->bit_width, 32); in gen_load()
1823 bit_suffix = (cond->bit_width == 64) ? "i64" : "i32"; in gen_if_cond()
1906 unsigned bit_width = (value->bit_width == 64) ? 64 : 32; in gen_rvalue_simple_unary() local
1909 res = gen_imm_qemu_tmp(c, locp, bit_width, value->signedness); in gen_rvalue_simple_unary()
1910 gen_c_int_type(c, locp, value->bit_width, value->signedness); in gen_rvalue_simple_unary()
1913 res = gen_tmp(c, locp, bit_width, value->signedness); in gen_rvalue_simple_unary()
1914 OUT(c, locp, tcg_code, "_i", &bit_width, "(", &res, ", ", value, in gen_rvalue_simple_unary()
1928 unsigned bit_width = (value->bit_width == 64) ? 64 : 32; in gen_rvalue_notl() local
1931 res = gen_imm_qemu_tmp(c, locp, bit_width, value->signedness); in gen_rvalue_notl()
1932 gen_c_int_type(c, locp, value->bit_width, value->signedness); in gen_rvalue_notl()
1935 HexValue zero = gen_constant(c, locp, "0", bit_width, UNSIGNED); in gen_rvalue_notl()
1936 HexValue one = gen_constant(c, locp, "0xff", bit_width, UNSIGNED); in gen_rvalue_notl()
1937 res = gen_tmp(c, locp, bit_width, value->signedness); in gen_rvalue_notl()
1938 OUT(c, locp, "tcg_gen_movcond_i", &bit_width); in gen_rvalue_notl()
1949 const char *bit_suffix = (value->bit_width == 64) ? "i64" : "i32"; in gen_rvalue_sat()
1957 yyassert(c, locp, width->imm.value < value->bit_width, in gen_rvalue_sat()
1965 res = gen_tmp(c, locp, value->bit_width, sat->signedness); in gen_rvalue_sat()
2001 yyassert(c, locp, value->bit_width <= 32, in gen_rvalue_brev()
2003 res = gen_tmp(c, locp, value->bit_width, value->signedness); in gen_rvalue_brev()
2012 bool is_64bit = (true_branch->bit_width == 64) || in gen_rvalue_ternary()
2013 (false_branch->bit_width == 64); in gen_rvalue_ternary()
2014 unsigned bit_width = (is_64bit) ? 64 : 32; in gen_rvalue_ternary() local
2015 HexValue zero = gen_constant(c, locp, "0", bit_width, UNSIGNED); in gen_rvalue_ternary()
2016 HexValue res = gen_tmp(c, locp, bit_width, UNSIGNED); in gen_rvalue_ternary()
2029 OUT(c, locp, "tcg_gen_movcond_i", &bit_width); in gen_rvalue_ternary()
2078 bool is64 = (arg->bit_width == 64); in emit_arg()