aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
authorDaniel Gavin <danielgavin5@hotmail.com>2021-04-23 10:24:05 +0200
committerDaniel Gavin <danielgavin5@hotmail.com>2021-04-23 10:24:05 +0200
commitf10f7ebbf1c9833c74d09db68c0a0f5a149bde8d (patch)
treed25d97bafc0f762e537428f99607680aa5e434b3 /src/ir.cpp
parent40ed7e48d0e4a1f000efbd03d19a4eebe9b8e2f6 (diff)
parent17bbb48d8a04aaf6cc53777fe4da6ba1b7fff61b (diff)
Merge remote-tracking branch 'upstream/master' into prototype-fmt
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index 0ad48ca27..1c81f08ed 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -8257,7 +8257,8 @@ irValue *ir_build_expr_internal(irProcedure *proc, Ast *expr) {
case_end;
case_ast_node(ac, AutoCast, expr);
- return ir_build_expr(proc, ac->expr);
+ irValue *value = ir_build_expr(proc, ac->expr);
+ return ir_emit_conv(proc, value, tv.type);
case_end;
case_ast_node(ue, UnaryExpr, expr);
@@ -12564,13 +12565,9 @@ void ir_setup_type_info_data(irProcedure *proc) { // NOTE(bill): Setup type_info
case Type_SimdVector:
ir_emit_comment(proc, str_lit("Type_SimdVector"));
tag = ir_emit_conv(proc, variant_ptr, t_type_info_simd_vector_ptr);
- if (t->SimdVector.is_x86_mmx) {
- ir_emit_store(proc, ir_emit_struct_ep(proc, tag, 3), v_true);
- } else {
- ir_emit_store(proc, ir_emit_struct_ep(proc, tag, 0), ir_get_type_info_ptr(proc, t->SimdVector.elem));
- ir_emit_store(proc, ir_emit_struct_ep(proc, tag, 1), ir_const_int(type_size_of(t->SimdVector.elem)));
- ir_emit_store(proc, ir_emit_struct_ep(proc, tag, 2), ir_const_int(t->SimdVector.count));
- }
+ ir_emit_store(proc, ir_emit_struct_ep(proc, tag, 0), ir_get_type_info_ptr(proc, t->SimdVector.elem));
+ ir_emit_store(proc, ir_emit_struct_ep(proc, tag, 1), ir_const_int(type_size_of(t->SimdVector.elem)));
+ ir_emit_store(proc, ir_emit_struct_ep(proc, tag, 2), ir_const_int(t->SimdVector.count));
break;
case Type_RelativePointer: