From 2e92d0c821a386ed67389e6b6cb932f2a697a445 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 13 Feb 2018 22:05:25 +0000 Subject: [PATCH] Remove old procedures --- core/mem.odin | 104 -------------------------------------------------- 1 file changed, 104 deletions(-) diff --git a/core/mem.odin b/core/mem.odin index cb7abf525..63bdb5a54 100644 --- a/core/mem.odin +++ b/core/mem.odin @@ -204,111 +204,7 @@ end_arena_temp_memory :: proc(using tmp: ArenaTempMemory) { - - - - -align_of_type_info :: proc(type_info: ^Type_Info) -> int { - prev_pow2 :: proc(n: i64) -> i64 { - if n <= 0 do return 0; - n |= n >> 1; - n |= n >> 2; - n |= n >> 4; - n |= n >> 8; - n |= n >> 16; - n |= n >> 32; - return n - (n >> 1); - } - - WORD_SIZE :: size_of(int); - MAX_ALIGN :: 2*align_of(rawptr); // TODO(bill): Should these constants be builtin constants? - switch info in type_info.variant { - case Type_Info_Named: - return align_of_type_info(info.base); - case Type_Info_Integer: - return type_info.align; - case Type_Info_Rune: - return type_info.align; - case Type_Info_Float: - return type_info.align; - case Type_Info_String: - return WORD_SIZE; - case Type_Info_Boolean: - return 1; - case Type_Info_Any: - return WORD_SIZE; - case Type_Info_Pointer: - return WORD_SIZE; - case Type_Info_Procedure: - return WORD_SIZE; - case Type_Info_Array: - return align_of_type_info(info.elem); - case Type_Info_Dynamic_Array: - return WORD_SIZE; - case Type_Info_Slice: - return WORD_SIZE; - case Type_Info_Tuple: - return type_info.align; - case Type_Info_Struct: - return type_info.align; - case Type_Info_Union: - return type_info.align; - case Type_Info_Enum: - return align_of_type_info(info.base); - case Type_Info_Map: - return align_of_type_info(info.generated_struct); - } - - return 0; -} - align_formula :: proc(size, align: int) -> int { result := size + align-1; return result - result%align; } - -size_of_type_info :: proc(type_info: ^Type_Info) -> int { - WORD_SIZE :: size_of(int); - switch info in type_info.variant { - case Type_Info_Named: - return size_of_type_info(info.base); - case Type_Info_Integer: - return type_info.size; - case Type_Info_Rune: - return type_info.size; - case Type_Info_Float: - return type_info.size; - case Type_Info_String: - return 2*WORD_SIZE; - case Type_Info_Boolean: - return 1; - case Type_Info_Any: - return 2*WORD_SIZE; - case Type_Info_Pointer: - return WORD_SIZE; - case Type_Info_Procedure: - return WORD_SIZE; - case Type_Info_Array: - count := info.count; - if count == 0 do return 0; - size := size_of_type_info(info.elem); - align := align_of_type_info(info.elem); - alignment := align_formula(size, align); - return alignment*(count-1) + size; - case Type_Info_Dynamic_Array: - return size_of(rawptr) + 2*size_of(int) + size_of(Allocator); - case Type_Info_Slice: - return 2*WORD_SIZE; - case Type_Info_Struct: - return type_info.size; - case Type_Info_Union: - return type_info.size; - case Type_Info_Enum: - return size_of_type_info(info.base); - case Type_Info_Map: - return size_of_type_info(info.generated_struct); - } - - return 0; -} -