diff options
author | Tristan Gingold <tgingold@free.fr> | 2014-01-15 06:14:35 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2014-01-15 06:14:35 +0100 |
commit | 5f91165d731b9613e9c8ff27a391de9ca553485a (patch) | |
tree | c054cf7582a1b96ae43cb261556f615d0e0bf511 /translate/grt | |
parent | e72d32c2eb90865169d9397586e9fcb9b8e743c1 (diff) | |
download | ghdl-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.adb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/translate/grt/grt-disp_rti.adb b/translate/grt/grt-disp_rti.adb index 942a59588..b8a4d6c0a 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 |