Yesterday, I wrote:
>
> I have not yet verified that the emitted binary code
>has the duplicated Emit_Call's shown below,
>
This might just be a debug display artifact- I haven't
looked at the binary code dump, but I did modify
Emit_prologue and friends to leave a trail of bread crumbs
when called ( see log file below ), and I'm not seeing
the double calls there.
One other difference between the 0.25 and 0.29.1
outputs is that the initial __ghdl_malloc call for
0.29.1 is for 0x12, which is not aligned.
Brian
1249 public procedure __ghdl_ELABORATE
# block start
1251 block until 1253
1252 local ARCH_INSTANCE: 1106, offset=-12
1253 local INSTANCE: 1098, offset=-16
Setup_Frame
push [00000012]
reg_7{ax } = call:P32 __ghdl_malloc0
assign:P32 (fp,-12 {ARCH_INSTANCE}) <- reg_7{ax }
reg_12{ax } = indir:P32 (fp,-12 {ARCH_INSTANCE})
assign:P32 (fp,-16 {INSTANCE}) <- reg_12{ax }
reg_20{ax } = indir:P32 (fp,-16 {INSTANCE})
assign:P32 (reg_20{ax } + [00000004]) <- [00000000]
reg_27{ax } = indir:P32 (fp,-12 {ARCH_INSTANCE})
assign:P32 (&__ghdl_rti_top_instance) <- reg_27{ax }
assign:P32 (&__ghdl_rti_top_ptr) <- &__ghdl_rti_top
Setup_Frame
push (fp,-16 {INSTANCE})
call:Nil work__tristate_bug__ARCH__crashes__ELAB
call:Nil work__tristate_bug__ARCH__crashes__ELAB
Setup_Frame
push (fp,-12 {ARCH_INSTANCE})
call:Nil work__tristate_bug__ARCH__crashes__DEFAULT_CONFIG
call:Nil work__tristate_bug__ARCH__crashes__DEFAULT_CONFIG
# block end
L3:
leave
Emit_Prologue
Emit_Setup_Frame
Emit_Call
Gen_Call
Emit_Setup_Frame
Emit_Call
Gen_Call
Emit_Setup_Frame
Emit_Call
Gen_Call
Emit_Epilogue
_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss