summaryrefslogtreecommitdiff
path: root/src/ortho
diff options
context:
space:
mode:
Diffstat (limited to 'src/ortho')
-rw-r--r--src/ortho/mcode/binary_file-memory.adb6
-rw-r--r--src/ortho/mcode/binary_file-memory.ads9
-rw-r--r--src/ortho/mcode/ortho_jit.adb3
-rw-r--r--src/ortho/ortho_jit.ads3
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;