From 0971a59493d601458ccb386a3752a75f6d880b8f Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 11 Oct 2018 18:19:29 +0100 Subject: Update runtime printing code --- src/ir.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'src/ir.cpp') diff --git a/src/ir.cpp b/src/ir.cpp index 4cf885994..ffd9f4f67 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -4582,7 +4582,6 @@ irValue *ir_build_builtin_proc(irProcedure *proc, Ast *expr, TypeAndValue tv, Bu ir_emit_store(proc, ir_emit_struct_ep(proc, dst, 1), imag); return ir_emit_load(proc, dst); - break; } case BuiltinProc_real: { @@ -4590,14 +4589,12 @@ irValue *ir_build_builtin_proc(irProcedure *proc, Ast *expr, TypeAndValue tv, Bu irValue *val = ir_build_expr(proc, ce->args[0]); irValue *real = ir_emit_struct_ev(proc, val, 0); return ir_emit_conv(proc, real, tv.type); - break; } case BuiltinProc_imag: { ir_emit_comment(proc, str_lit("imag")); irValue *val = ir_build_expr(proc, ce->args[0]); irValue *imag = ir_emit_struct_ev(proc, val, 1); return ir_emit_conv(proc, imag, tv.type); - break; } case BuiltinProc_conj: { @@ -4614,7 +4611,6 @@ irValue *ir_build_builtin_proc(irProcedure *proc, Ast *expr, TypeAndValue tv, Bu ir_emit_store(proc, ir_emit_struct_ep(proc, res, 1), imag); } return ir_emit_load(proc, res); - break; } case BuiltinProc_expand_to_tuple: { @@ -4675,10 +4671,13 @@ irValue *ir_build_builtin_proc(irProcedure *proc, Ast *expr, TypeAndValue tv, Bu } case BuiltinProc_abs: { - ir_emit_comment(proc, str_lit("abs")); gbAllocator a = ir_allocator(); irValue *x = ir_build_expr(proc, ce->args[0]); Type *t = ir_type(x); + if (is_type_unsigned(t)) { + return x; + } + ir_emit_comment(proc, str_lit("abs")); if (is_type_complex(t)) { i64 sz = 8*type_size_of(t); auto args = array_make(ir_allocator(), 1); @@ -4704,15 +4703,13 @@ irValue *ir_build_builtin_proc(irProcedure *proc, Ast *expr, TypeAndValue tv, Bu return ir_emit_select(proc, cond, neg, x); } - case BuiltinProc_clamp: { + case BuiltinProc_clamp: ir_emit_comment(proc, str_lit("clamp")); - Type *t = type_of_expr(expr); - return ir_emit_clamp(proc, t, + return ir_emit_clamp(proc, type_of_expr(expr), ir_build_expr(proc, ce->args[0]), ir_build_expr(proc, ce->args[1]), ir_build_expr(proc, ce->args[2])); } - } GB_PANIC("Unhandled built-in procedure"); return nullptr; -- cgit v1.2.3