From 862274436245bb1a19af40de3563c637e7116101 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Thu, 15 Nov 2012 09:29:39 +0100 Subject: [PATCH 1/1] bedwarf: query backend for pointer size Also improve doku of machine_size element in backend_params struct. --- include/libfirm/be.h | 4 ++-- ir/be/bedwarf.c | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/libfirm/be.h b/include/libfirm/be.h index 10af37ab9..4f4400391 100644 --- a/include/libfirm/be.h +++ b/include/libfirm/be.h @@ -134,8 +134,8 @@ typedef struct backend_params { /** Backend settings for if-conversion. */ arch_allow_ifconv_func allow_ifconv; - /** size of machine words. This is usually the size of the general purpose - * integer registers. */ + /** size of machine word in bits. This is usually the size of the general + * purpose integer/address registers. */ unsigned machine_size; /** diff --git a/ir/be/bedwarf.c b/ir/be/bedwarf.c index 64c182d50..49f4a8fff 100644 --- a/ir/be/bedwarf.c +++ b/ir/be/bedwarf.c @@ -915,19 +915,20 @@ void be_dwarf_unit_begin(const char *filename) emit_label("info_section_begin"); emit_label("info_begin"); + const backend_params *be_params = be_get_backend_param(); + /* length of compilation unit info */ emit_size("compile_unit_begin", "compile_unit_end"); emit_label("compile_unit_begin"); emit_int16(3); /* dwarf version */ emit_address("abbrev_begin"); - emit_int8(4); /* pointer size, TODO: query backend */ + emit_int8(be_params->machine_size / 8); /* pointer size */ /* compile_unit die */ emit_uleb128(abbrev_compile_unit); emit_address("line_section_begin"); emit_string_printf("libFirm (%u.%u %s)", ir_get_version_major(), - ir_get_version_minor(), - ir_get_version_revision()); + ir_get_version_minor(), ir_get_version_revision()); emit_string(filename); if (language != 0) emit_int16(language); -- 2.20.1