int from_tty;
{
bfd *result_bfd;
+
+ SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
if (sim_analyze_program (sd, prog_name, prog_bfd) != SIM_RC_OK)
return SIM_RC_FAIL;
SIM_ASSERT (STATE_PROG_BFD (sd) != NULL);
+
+ /* NOTE: For historical reasons, older hardware simulators
+ incorrectly write the program sections at LMA interpreted as a
+ virtual address. This is still accommodated for backward
+ compatibility reasons. */
+
result_bfd = sim_load_file (sd, STATE_MY_NAME (sd),
STATE_CALLBACK (sd),
- NULL,
+ prog_name,
STATE_PROG_BFD (sd),
- STATE_OPEN_KIND (sd) == SIM_OPEN_DEBUG);
+ STATE_OPEN_KIND (sd) == SIM_OPEN_DEBUG,
+ STATE_LOAD_AT_LMA_P (sd),
+ sim_write);
if (result_bfd == NULL)
{
bfd_close (STATE_PROG_BFD (sd));