summaryrefslogtreecommitdiff
path: root/translate/grt
diff options
context:
space:
mode:
authorTristan Gingold2014-01-15 06:14:35 +0100
committerTristan Gingold2014-01-15 06:14:35 +0100
commit5f91165d731b9613e9c8ff27a391de9ca553485a (patch)
treec054cf7582a1b96ae43cb261556f615d0e0bf511 /translate/grt
parente72d32c2eb90865169d9397586e9fcb9b8e743c1 (diff)
downloadghdl-5f91165d731b9613e9c8ff27a391de9ca553485a.tar.gz
ghdl-5f91165d731b9613e9c8ff27a391de9ca553485a.tar.bz2
ghdl-5f91165d731b9613e9c8ff27a391de9ca553485a.zip
--dump-rti: handle P32, complex record types.
Diffstat (limited to 'translate/grt')
-rw-r--r--translate/grt/grt-disp_rti.adb14
1 files changed, 13 insertions, 1 deletions
diff --git a/translate/grt/grt-disp_rti.adb b/translate/grt/grt-disp_rti.adb
index 942a595..b8a4d6c 100644
--- a/translate/grt/grt-disp_rti.adb
+++ b/translate/grt/grt-disp_rti.adb
@@ -97,6 +97,15 @@ package body Grt.Disp_Rti is
if not Is_Sig then
Update (64);
end if;
+ when Ghdl_Rtik_Type_P32 =>
+ Put_I32 (Stream, Vptr.I32);
+ Put (Stream, " ");
+ Put (Stream,
+ To_Ghdl_Rtin_Unit_Acc
+ (To_Ghdl_Rtin_Type_Physical_Acc (Rti).Units (0)).Name);
+ if not Is_Sig then
+ Update (32);
+ end if;
when others =>
Internal_Error ("disp_rti.disp_scalar_value");
end case;
@@ -184,6 +193,9 @@ package body Grt.Disp_Rti is
else
El_Addr := Obj + El.Val_Off;
end if;
+ if Rti_Complex_Type (El.Eltype) then
+ El_Addr := Obj + To_Ghdl_Index_Acc (El_Addr).all;
+ end if;
Disp_Value (Stream, El.Eltype, Ctxt, El_Addr, Is_Sig);
end loop;
Put (")");
@@ -242,7 +254,7 @@ package body Grt.Disp_Rti is
Put (Stream, "Unknown Rti Kind : ");
Disp_Kind(Rti.Kind);
end case;
- Put_Line(":");
+ -- Put_Line(":");
end Disp_Value;
procedure Disp_Kind (Kind : Ghdl_Rtik) is