Răsfoiți Sursa

+ emit a DW_AT_WATCOM_memory_model dwarf attribute, when compiling for i8086

git-svn-id: trunk@39110 -
nickysn 7 ani în urmă
părinte
comite
855c810c09
1 a modificat fișierele cu 18 adăugiri și 0 ștergeri
  1. 18 0
      compiler/dbgdwarf.pas

+ 18 - 0
compiler/dbgdwarf.pas

@@ -3406,6 +3406,24 @@ implementation
           DW_AT_language,DW_FORM_data1,lang,
           DW_AT_identifier_case,DW_FORM_data1,DW_ID_case_insensitive]);
 
+{$ifdef i8086}
+        case current_settings.x86memorymodel of
+          mm_tiny,
+          mm_small:
+            append_attribute(DW_AT_WATCOM_memory_model,DW_FORM_data1,[DW_WATCOM_MEMORY_MODEL_small]);
+          mm_medium:
+            append_attribute(DW_AT_WATCOM_memory_model,DW_FORM_data1,[DW_WATCOM_MEMORY_MODEL_medium]);
+          mm_compact:
+            append_attribute(DW_AT_WATCOM_memory_model,DW_FORM_data1,[DW_WATCOM_MEMORY_MODEL_compact]);
+          mm_large:
+            append_attribute(DW_AT_WATCOM_memory_model,DW_FORM_data1,[DW_WATCOM_MEMORY_MODEL_large]);
+          mm_huge:
+            append_attribute(DW_AT_WATCOM_memory_model,DW_FORM_data1,[DW_WATCOM_MEMORY_MODEL_huge]);
+          else
+            internalerror(2018052402);
+        end;
+{$endif i8086}
+
         { reference to line info section }
         if not(tf_dwarf_relative_addresses in target_info.flags) then
           append_labelentry_dataptr_abs(DW_AT_stmt_list,current_asmdata.DefineAsmSymbol(target_asm.labelprefix+'debug_line0',AB_LOCAL,AT_METADATA,voidpointertype))