diff options
author | Tristan Gingold <tgingold@free.fr> | 2023-01-26 07:33:44 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2023-01-26 21:56:29 +0100 |
commit | 74c048cdb4b19d41f70880ebf3d3e6eb58404097 (patch) | |
tree | 9180f7dedb279cede535e375da4cb7cf0ff3d8bc /src/ortho/mcode/ortho_mcode-jit.adb | |
parent | 061d1a8726712c3f57b8fe57bf7ef89331a33ed0 (diff) | |
download | ghdl-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.adb | 28 |
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; |