* s390-tdep.c (s390_push_dummy_call): Set addressing mode bit

in return PSWA.
This commit is contained in:
Ulrich Weigand 2011-12-19 21:44:57 +00:00
parent 83896202bf
commit 8de7d199bb
2 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2011-12-19 Ulrich Weigand <uweigand@de.ibm.com>
* s390-tdep.c (s390_push_dummy_call): Set addressing mode bit
in return PSWA.
2011-12-19 Tom Tromey <tromey@redhat.com>
* symtab.h (add_minsym_to_hash_table): Don't declare.

View File

@ -2749,9 +2749,15 @@ s390_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
}
}
/* Store return address. */
/* Store return PSWA. In 31-bit mode, keep addressing mode bit. */
if (word_size == 4)
{
ULONGEST pswa;
regcache_cooked_read_unsigned (regcache, S390_PSWA_REGNUM, &pswa);
bp_addr = (bp_addr & 0x7fffffff) | (pswa & 0x80000000);
}
regcache_cooked_write_unsigned (regcache, S390_RETADDR_REGNUM, bp_addr);
/* Store updated stack pointer. */
regcache_cooked_write_unsigned (regcache, S390_SP_REGNUM, sp);