mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 15:18:49 +00:00
Remove print(ln) and fix swizzle
This commit is contained in:
+32
-32
@@ -1031,38 +1031,6 @@ for.done.-.8:
|
|||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
define void @print_pointer(%.rawptr %p) alwaysinline {
|
|
||||||
entry.-.0:
|
|
||||||
%0 = alloca %.rawptr, align 8 ; p
|
|
||||||
store %.rawptr zeroinitializer, %.rawptr* %0
|
|
||||||
store %.rawptr %p, %.rawptr* %0
|
|
||||||
%1 = load %.rawptr, %.rawptr* %0, align 8
|
|
||||||
%2 = ptrtoint %.rawptr %1 to i64
|
|
||||||
call void @print__uint(i64 %2, i64 16, i64 0, i8 32)
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
define void @print_f32(float %f) alwaysinline {
|
|
||||||
entry.-.0:
|
|
||||||
%0 = alloca float, align 4 ; f
|
|
||||||
store float zeroinitializer, float* %0
|
|
||||||
store float %f, float* %0
|
|
||||||
%1 = load float, float* %0, align 4
|
|
||||||
%2 = fpext float %1 to double
|
|
||||||
call void @print__f64(double %2, i64 7)
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
define void @print_f64(double %f) alwaysinline {
|
|
||||||
entry.-.0:
|
|
||||||
%0 = alloca double, align 8 ; f
|
|
||||||
store double zeroinitializer, double* %0
|
|
||||||
store double %f, double* %0
|
|
||||||
%1 = load double, double* %0, align 8
|
|
||||||
call void @print__f64(double %1, i64 10)
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
define void @print_bool(i1 %b) {
|
define void @print_bool(i1 %b) {
|
||||||
entry.-.0:
|
entry.-.0:
|
||||||
%0 = alloca i1, align 1 ; b
|
%0 = alloca i1, align 1 ; b
|
||||||
@@ -1099,6 +1067,38 @@ if.done.-.3:
|
|||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
define void @print_pointer(%.rawptr %p) alwaysinline {
|
||||||
|
entry.-.0:
|
||||||
|
%0 = alloca %.rawptr, align 8 ; p
|
||||||
|
store %.rawptr zeroinitializer, %.rawptr* %0
|
||||||
|
store %.rawptr %p, %.rawptr* %0
|
||||||
|
%1 = load %.rawptr, %.rawptr* %0, align 8
|
||||||
|
%2 = ptrtoint %.rawptr %1 to i64
|
||||||
|
call void @print__uint(i64 %2, i64 16, i64 0, i8 32)
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
define void @print_f32(float %f) alwaysinline {
|
||||||
|
entry.-.0:
|
||||||
|
%0 = alloca float, align 4 ; f
|
||||||
|
store float zeroinitializer, float* %0
|
||||||
|
store float %f, float* %0
|
||||||
|
%1 = load float, float* %0, align 4
|
||||||
|
%2 = fpext float %1 to double
|
||||||
|
call void @print__f64(double %2, i64 7)
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
define void @print_f64(double %f) alwaysinline {
|
||||||
|
entry.-.0:
|
||||||
|
%0 = alloca double, align 8 ; f
|
||||||
|
store double zeroinitializer, double* %0
|
||||||
|
store double %f, double* %0
|
||||||
|
%1 = load double, double* %0, align 8
|
||||||
|
call void @print__f64(double %1, i64 10)
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
define void @print__f64(double %f, i64 %decimal_places) {
|
define void @print__f64(double %f, i64 %decimal_places) {
|
||||||
entry.-.0:
|
entry.-.0:
|
||||||
%0 = alloca double, align 8 ; f
|
%0 = alloca double, align 8 ; f
|
||||||
|
|||||||
@@ -124,8 +124,6 @@ enum BuiltinProcId {
|
|||||||
BuiltinProc_copy,
|
BuiltinProc_copy,
|
||||||
BuiltinProc_append,
|
BuiltinProc_append,
|
||||||
BuiltinProc_swizzle,
|
BuiltinProc_swizzle,
|
||||||
BuiltinProc_print,
|
|
||||||
BuiltinProc_println,
|
|
||||||
|
|
||||||
BuiltinProc_Count,
|
BuiltinProc_Count,
|
||||||
};
|
};
|
||||||
@@ -152,10 +150,6 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_Count] = {
|
|||||||
{STR_LIT("append"), 2, false, Expression_Expression},
|
{STR_LIT("append"), 2, false, Expression_Expression},
|
||||||
|
|
||||||
{STR_LIT("swizzle"), 1, true, Expression_Expression},
|
{STR_LIT("swizzle"), 1, true, Expression_Expression},
|
||||||
|
|
||||||
{STR_LIT("print"), 1, true, Expression_Statement},
|
|
||||||
{STR_LIT("println"), 1, true, Expression_Statement},
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CheckerContext {
|
struct CheckerContext {
|
||||||
|
|||||||
@@ -1470,7 +1470,6 @@ b32 check_builtin_procedure(Checker *c, Operand *operand, AstNode *call, i32 id)
|
|||||||
|
|
||||||
case BuiltinProc_static_assert:
|
case BuiltinProc_static_assert:
|
||||||
// static_assert :: proc(cond: bool)
|
// static_assert :: proc(cond: bool)
|
||||||
// TODO(bill): Should `static_assert` and `assert` be unified?
|
|
||||||
|
|
||||||
if (operand->mode != Addressing_Constant ||
|
if (operand->mode != Addressing_Constant ||
|
||||||
!is_type_boolean(operand->type)) {
|
!is_type_boolean(operand->type)) {
|
||||||
@@ -1663,17 +1662,6 @@ b32 check_builtin_procedure(Checker *c, Operand *operand, AstNode *call, i32 id)
|
|||||||
Type *elem_type = vector_type->vector.elem;
|
Type *elem_type = vector_type->vector.elem;
|
||||||
operand->type = make_type_vector(c->allocator, elem_type, arg_count);
|
operand->type = make_type_vector(c->allocator, elem_type, arg_count);
|
||||||
operand->mode = Addressing_Value;
|
operand->mode = Addressing_Value;
|
||||||
}
|
|
||||||
|
|
||||||
case BuiltinProc_print:
|
|
||||||
case BuiltinProc_println: {
|
|
||||||
for (AstNode *arg = ce->arg_list; arg != NULL; arg = arg->next) {
|
|
||||||
// TOOD(bill): `check_assignment` doesn't allow tuples at the moment, should it?
|
|
||||||
// Or should we destruct the tuple and use each elem?
|
|
||||||
check_assignment(c, operand, NULL, make_string("argument"));
|
|
||||||
if (operand->mode == Addressing_Invalid)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -641,10 +641,13 @@ void ssa_print_instr(gbFile *f, ssaModule *m, ssaValue *value) {
|
|||||||
ssa_fprintf(f, " ");
|
ssa_fprintf(f, " ");
|
||||||
ssa_print_value(f, m, sv->vector, vt);
|
ssa_print_value(f, m, sv->vector, vt);
|
||||||
ssa_fprintf(f, ", ");
|
ssa_fprintf(f, ", ");
|
||||||
ssa_print_type(f, m->sizes, vt);
|
|
||||||
ssa_fprintf(f, " undef,");
|
|
||||||
|
|
||||||
ssa_fprintf(f, " <%td x i32> <", sv->index_count);
|
ssa_print_type(f, m->sizes, vt);
|
||||||
|
ssa_fprintf(f, " ");
|
||||||
|
ssa_print_value(f, m, sv->vector, vt);
|
||||||
|
ssa_fprintf(f, ", ");
|
||||||
|
|
||||||
|
ssa_fprintf(f, "<%td x i32> <", sv->index_count);
|
||||||
for (isize i = 0; i < sv->index_count; i++) {
|
for (isize i = 0; i < sv->index_count; i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
ssa_fprintf(f, ", ");
|
ssa_fprintf(f, ", ");
|
||||||
|
|||||||
@@ -1818,15 +1818,6 @@ ssaValue *ssa_build_single_expr(ssaProcedure *proc, AstNode *expr, TypeAndValue
|
|||||||
return ssa_emit(proc, ssa_make_instr_shuffle_vector(proc, vector, indices, index_count));
|
return ssa_emit(proc, ssa_make_instr_shuffle_vector(proc, vector, indices, index_count));
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case BuiltinProc_print: {
|
|
||||||
// print :: proc(...)
|
|
||||||
GB_PANIC("TODO(bill): BuiltinProc_print");
|
|
||||||
} break;
|
|
||||||
case BuiltinProc_println: {
|
|
||||||
// println :: proc(...)
|
|
||||||
GB_PANIC("TODO(bill): BuiltinProc_println");
|
|
||||||
} break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user