X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=gdb%2Fppcobsd-tdep.c;h=b7520a52d1803e7f6b90c0ae202334d74110071f;hb=e17a4113357102b55cfa5b80557d590a46a43300;hp=255579cf5c7ebbf24a33e5ac53e1f5308bb2e52b;hpb=5af949e350b923403600c1da34774b49a77c925c;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ppcobsd-tdep.c b/gdb/ppcobsd-tdep.c index 255579cf5c..b7520a52d1 100644 --- a/gdb/ppcobsd-tdep.c +++ b/gdb/ppcobsd-tdep.c @@ -126,6 +126,8 @@ ppcobsd_sigtramp_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache) { + struct gdbarch *gdbarch = get_frame_arch (this_frame); + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); CORE_ADDR pc = get_frame_pc (this_frame); CORE_ADDR start_pc = (pc & ~(ppcobsd_page_size - 1)); const int *offset; @@ -145,12 +147,13 @@ ppcobsd_sigtramp_frame_sniffer (const struct frame_unwind *self, continue; /* Check for "li r0,SYS_sigreturn". */ - insn = extract_unsigned_integer (buf, PPC_INSN_SIZE); + insn = extract_unsigned_integer (buf, PPC_INSN_SIZE, byte_order); if (insn != 0x38000067) continue; /* Check for "sc". */ - insn = extract_unsigned_integer (buf + PPC_INSN_SIZE, PPC_INSN_SIZE); + insn = extract_unsigned_integer (buf + PPC_INSN_SIZE, + PPC_INSN_SIZE, byte_order); if (insn != 0x44000002) continue; @@ -165,6 +168,7 @@ ppcobsd_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache) { struct gdbarch *gdbarch = get_frame_arch (this_frame); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); struct trad_frame_cache *cache; CORE_ADDR addr, base, func; gdb_byte buf[PPC_INSN_SIZE]; @@ -185,7 +189,7 @@ ppcobsd_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache) /* Calculate the offset where we can find `struct sigcontext'. We base our calculation on the amount of stack space reserved by the first instruction of the signal trampoline. */ - insn = extract_unsigned_integer (buf, PPC_INSN_SIZE); + insn = extract_unsigned_integer (buf, PPC_INSN_SIZE, byte_order); sigcontext_offset = (0x10000 - (insn & 0x0000ffff)) + 8; base = get_frame_register_unsigned (this_frame, gdbarch_sp_regnum (gdbarch));