aboutsummaryrefslogtreecommitdiffstats
path: root/src/ortho/mcode/ortho_mcode-jit.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2023-01-26 07:33:44 +0100
committerTristan Gingold <tgingold@free.fr>2023-01-26 21:56:29 +0100
commit74c048cdb4b19d41f70880ebf3d3e6eb58404097 (patch)
tree9180f7dedb279cede535e375da4cb7cf0ff3d8bc /src/ortho/mcode/ortho_mcode-jit.adb
parent061d1a8726712c3f57b8fe57bf7ef89331a33ed0 (diff)
downloadghdl-74c048cdb4b19d41f70880ebf3d3e6eb58404097.tar.gz
ghdl-74c048cdb4b19d41f70880ebf3d3e6eb58404097.tar.bz2
ghdl-74c048cdb4b19d41f70880ebf3d3e6eb58404097.zip
mcode: add new functions for JIT
Diffstat (limited to 'src/ortho/mcode/ortho_mcode-jit.adb')
-rw-r--r--src/ortho/mcode/ortho_mcode-jit.adb28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/ortho/mcode/ortho_mcode-jit.adb b/src/ortho/mcode/ortho_mcode-jit.adb
index 7e845cc6e..8e72913a7 100644
--- a/src/ortho/mcode/ortho_mcode-jit.adb
+++ b/src/ortho/mcode/ortho_mcode-jit.adb
@@ -1,3 +1,19 @@
+-- JIT features for ortho mcode.
+-- Copyright (C) 2006-2023 Tristan Gingold
+--
+-- This program 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 Software Foundation, either version 2 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <gnu.org/licenses>.
+
with Ada.Unchecked_Conversion;
with Ortho_Code.Binary;
@@ -25,4 +41,16 @@ package body Ortho_Mcode.Jit is
return Conv (Get_Symbol_Vaddr
(Get_Decl_Symbol (Ortho_Code.O_Dnode (Decl))));
end Get_Address;
+
+ function Get_Type_Size (Typ : O_Tnode) return Storage_Count is
+ begin
+ return Storage_Count
+ (Ortho_Code.Types.Get_Type_Size (Ortho_Code.O_Tnode (Typ)));
+ end Get_Type_Size;
+
+ function Get_Field_Offset (Field : O_Fnode) return Storage_Count is
+ begin
+ return Storage_Count
+ (Ortho_Code.Types.Get_Field_Offset (Ortho_Code.O_Fnode (Field)));
+ end Get_Field_Offset;
end Ortho_Mcode.Jit;