authorgravatar for info@bnoordhuis.nlBen Noordhuis <info@bnoordhuis.nl> 2018-06-27 16:20:04+02:00
committergravatar for info@bnoordhuis.nlBen Noordhuis <info@bnoordhuis.nl> 2018-06-27 16:20:04+02:00
log1f45075a0e1d86fa110011f6cedbef61a9f6f056
treed5b9e481f3005d0b99b39a4330f0a195b7f6799a
parent0ebc7b66e6fe721d84f169ae714bbff7e82aa738

dry floating-point type definitions


1 files changed, 14 insertions(+), 43 deletions(-)

src/codegen.cpp+14-43
......@@ -6177,58 +6177,29 @@ static void define_builtin_types(CodeGen *g) {
61776177 g->builtin_types.entry_usize = entry;
61786178 }
61796179 }
6180 {
6181 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdFloat);
6182 entry->type_ref = LLVMFloatType();
6183 buf_init_from_str(&entry->name, "f32");
6184 entry->data.floating.bit_count = 32;
6185
6186 uint64_t debug_size_in_bits = 8*LLVMStoreSizeOfType(g->target_data_ref, entry->type_ref);
6187 entry->di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),
6188 debug_size_in_bits,
6189 ZigLLVMEncoding_DW_ATE_float());
6190 g->builtin_types.entry_f32 = entry;
6191 g->primitive_type_table.put(&entry->name, entry);
6192 }
6193 {
6194 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdFloat);
6195 entry->type_ref = LLVMDoubleType();
6196 buf_init_from_str(&entry->name, "f64");
6197 entry->data.floating.bit_count = 64;
61986180
6199 uint64_t debug_size_in_bits = 8*LLVMStoreSizeOfType(g->target_data_ref, entry->type_ref);
6200 entry->di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),
6201 debug_size_in_bits,
6202 ZigLLVMEncoding_DW_ATE_float());
6203 g->builtin_types.entry_f64 = entry;
6204 g->primitive_type_table.put(&entry->name, entry);
6205 }
6206 {
6181 auto add_fp_entry = [] (CodeGen *g,
6182 const char *name,
6183 uint32_t bit_count,
6184 LLVMTypeRef type_ref,
6185 TypeTableEntry **field) {
62076186 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdFloat);
6208 entry->type_ref = LLVMFP128Type();
6209 buf_init_from_str(&entry->name, "f128");
6210 entry->data.floating.bit_count = 128;
6187 entry->type_ref = type_ref;
6188 buf_init_from_str(&entry->name, name);
6189 entry->data.floating.bit_count = bit_count;
62116190
62126191 uint64_t debug_size_in_bits = 8*LLVMStoreSizeOfType(g->target_data_ref, entry->type_ref);
62136192 entry->di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),
62146193 debug_size_in_bits,
62156194 ZigLLVMEncoding_DW_ATE_float());
6216 g->builtin_types.entry_f128 = entry;
6195 *field = entry;
62176196 g->primitive_type_table.put(&entry->name, entry);
6218 }
6219 {
6220 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdFloat);
6221 entry->type_ref = LLVMX86FP80Type();
6222 buf_init_from_str(&entry->name, "c_longdouble");
6223 entry->data.floating.bit_count = 80;
6197 };
6198 add_fp_entry(g, "f32", 32, LLVMFloatType(), &g->builtin_types.entry_f32);
6199 add_fp_entry(g, "f64", 64, LLVMDoubleType(), &g->builtin_types.entry_f64);
6200 add_fp_entry(g, "f128", 128, LLVMFP128Type(), &g->builtin_types.entry_f128);
6201 add_fp_entry(g, "c_longdouble", 80, LLVMX86FP80Type(), &g->builtin_types.entry_c_longdouble);
62246202
6225 uint64_t debug_size_in_bits = 8*LLVMStoreSizeOfType(g->target_data_ref, entry->type_ref);
6226 entry->di_type = ZigLLVMCreateDebugBasicType(g->dbuilder, buf_ptr(&entry->name),
6227 debug_size_in_bits,
6228 ZigLLVMEncoding_DW_ATE_float());
6229 g->builtin_types.entry_c_longdouble = entry;
6230 g->primitive_type_table.put(&entry->name, entry);
6231 }
62326203 {
62336204 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdVoid);
62346205 entry->type_ref = LLVMVoidType();