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

Reply via email to