diff options
Diffstat (limited to 'src/ortho')
-rw-r--r-- | src/ortho/mcode/binary_file-memory.adb | 6 | ||||
-rw-r--r-- | src/ortho/mcode/binary_file-memory.ads | 9 | ||||
-rw-r--r-- | src/ortho/mcode/ortho_jit.adb | 3 | ||||
-rw-r--r-- | src/ortho/ortho_jit.ads | 3 |
4 files changed, 15 insertions, 6 deletions
diff --git a/src/ortho/mcode/binary_file-memory.adb b/src/ortho/mcode/binary_file-memory.adb index 9797cd6..c9bb8ae 100644 --- a/src/ortho/mcode/binary_file-memory.adb +++ b/src/ortho/mcode/binary_file-memory.adb @@ -1,5 +1,5 @@ -- Binary file execute in memory handler. --- Copyright (C) 2006 Tristan Gingold +-- Copyright (C) 2006 - 2015 Tristan Gingold -- -- GHDL is free software; you can redistribute it and/or modify it under -- the terms of the GNU General Public License as published by the Free @@ -95,10 +95,10 @@ package body Binary_File.Memory is end loop; end Write_Memory_Relocate; - function Get_Section_Base (Sect : Section_Acc) return System.Address is + function Get_Section_Addr (Sect : Section_Acc) return System.Address is begin return Sect.Data (0)'Address; - end Get_Section_Base; + end Get_Section_Addr; function Get_Section_Size (Sect : Section_Acc) return Pc_Type is begin diff --git a/src/ortho/mcode/binary_file-memory.ads b/src/ortho/mcode/binary_file-memory.ads index cc2b7e3..6775502 100644 --- a/src/ortho/mcode/binary_file-memory.ads +++ b/src/ortho/mcode/binary_file-memory.ads @@ -1,5 +1,5 @@ -- Binary file execute in memory handler. --- Copyright (C) 2006 Tristan Gingold +-- Copyright (C) 2006-2015 Tristan Gingold -- -- GHDL is free software; you can redistribute it and/or modify it under -- the terms of the GNU General Public License as published by the Free @@ -21,13 +21,18 @@ package Binary_File.Memory is -- Must be called before set_symbol_address. procedure Write_Memory_Init; + + -- Give a value to an undefined or external symbol. procedure Set_Symbol_Address (Sym : Symbol; Addr : System.Address); + -- Do the real work: resolve relocations. procedure Write_Memory_Relocate (Error : out Boolean); - function Get_Section_Base (Sect : Section_Acc) return System.Address; + -- Read the result: get address and size of a section. + function Get_Section_Addr (Sect : Section_Acc) return System.Address; function Get_Section_Size (Sect : Section_Acc) return Pc_Type; + -- Helpers. function To_Pc_Type is new Ada.Unchecked_Conversion (Source => System.Address, Target => Pc_Type); function To_Address is new Ada.Unchecked_Conversion diff --git a/src/ortho/mcode/ortho_jit.adb b/src/ortho/mcode/ortho_jit.adb index f01c8fa..6f4fa37 100644 --- a/src/ortho/mcode/ortho_jit.adb +++ b/src/ortho/mcode/ortho_jit.adb @@ -120,6 +120,7 @@ package body Ortho_Jit is use Ada.Text_IO; begin Put_Line (" -g Generate debugging informations"); + Put_Line (" -g0 Do not generate any debugging informations"); Put_Line (" --debug-be=X Set X internal debugging flags"); Put_Line (" --snap=FILE Write memory snapshot to FILE"); end Disp_Help; @@ -145,7 +146,7 @@ package body Ortho_Jit is if Sect = null then return (Null_Address, 0); else - Addr := Get_Section_Base (Sect); + Addr := Get_Section_Addr (Sect); Size := Get_Section_Size (Sect); return (Addr, Storage_Offset (Size)); end if; diff --git a/src/ortho/ortho_jit.ads b/src/ortho/ortho_jit.ads index 76a3f29..a47cdc9 100644 --- a/src/ortho/ortho_jit.ads +++ b/src/ortho/ortho_jit.ads @@ -40,6 +40,9 @@ package Ortho_Jit is -- Return the name of the code generator, to be displayed by --version. function Get_Jit_Name return String; + -- Symbolizer: convert PC to a filename (a NUL terminated string), line + -- number and subprogram name (NUL terminated). + -- Unresolved values are Null_Address and 0. procedure Symbolize (Pc : Address; Filename : out Address; Lineno : out Natural; |