* rs6000-tdep.c: Fix byte-swapping sins.

This commit is contained in:
Jim Kingdon 1995-03-02 23:16:05 +00:00
parent b77a4fbe8f
commit b112f2aee4
1 changed files with 9 additions and 4 deletions

View File

@ -135,7 +135,7 @@ single_step (signal)
if (!one_stepped) { if (!one_stepped) {
loc = read_pc (); loc = read_pc ();
read_memory (loc, (char *) &insn, 4); insn = read_memory_integer (loc, 4);
breaks[0] = loc + INSNLEN(insn); breaks[0] = loc + INSNLEN(insn);
opcode = insn >> 26; opcode = insn >> 26;
@ -326,6 +326,8 @@ push_dummy_frame ()
{ {
/* stack pointer. */ /* stack pointer. */
CORE_ADDR sp; CORE_ADDR sp;
/* Same thing, target byte order. */
char sp_targ[4];
/* link register. */ /* link register. */
CORE_ADDR pc; CORE_ADDR pc;
@ -348,7 +350,7 @@ push_dummy_frame ()
sp = read_register(SP_REGNUM); sp = read_register(SP_REGNUM);
pc = read_register(PC_REGNUM); pc = read_register(PC_REGNUM);
memcpy (pc_targ, (char *) &pc, 4); store_address (pc, 4, pc_targ);
dummy_frame_addr [dummy_frame_count++] = sp; dummy_frame_addr [dummy_frame_count++] = sp;
@ -387,7 +389,8 @@ push_dummy_frame ()
} }
/* Save sp or so called back chain right here. */ /* Save sp or so called back chain right here. */
write_memory (sp-DUMMY_FRAME_SIZE, (char *)&sp, 4); store_address (sp_targ, 4, sp);
write_memory (sp-DUMMY_FRAME_SIZE, sp_targ, 4);
sp -= DUMMY_FRAME_SIZE; sp -= DUMMY_FRAME_SIZE;
/* And finally, this is the back chain. */ /* And finally, this is the back chain. */
@ -856,7 +859,9 @@ ran_out_of_registers_for_arguments:
read_memory (saved_sp, tmp_buffer, 24); read_memory (saved_sp, tmp_buffer, 24);
write_memory (sp, tmp_buffer, 24); write_memory (sp, tmp_buffer, 24);
write_memory (sp, (char *)&saved_sp, 4); /* set back chain properly */ /* set back chain properly */
store_address (tmp_buffer, 4, saved_sp);
write_memory (sp, tmp_buffer, 4);
target_store_registers (-1); target_store_registers (-1);
return sp; return sp;