X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fvax-tdep.c;h=efa702c99d9e9e500cc5b0760af3735d994e8278;hb=1be5090bcaf4bcab333cf03f4157b16d33881222;hp=a68f6cdfa54ad84b6f9e5e2350f650bf5f531b95;hpb=63807e1d0d57fe810b93dfef77291de153f02db4;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c index a68f6cdfa5..efa702c99d 100644 --- a/gdb/vax-tdep.c +++ b/gdb/vax-tdep.c @@ -1,7 +1,6 @@ /* Target-dependent code for the VAX. - Copyright (C) 1986, 1989, 1991, 1992, 1995, 1996, 1998, 1999, 2000, 2002, - 2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 1986-2014 Free Software Foundation, Inc. This file is part of GDB. @@ -33,7 +32,7 @@ #include "trad-frame.h" #include "value.h" -#include "gdb_string.h" +#include #include "vax-tdep.h" @@ -56,7 +55,7 @@ vax_register_name (struct gdbarch *gdbarch, int regnum) } /* Return the GDB type object for the "standard" data type of data in - register REGNUM. */ + register REGNUM. */ static struct type * vax_register_type (struct gdbarch *gdbarch, int regnum) @@ -113,6 +112,8 @@ static CORE_ADDR vax_store_arguments (struct regcache *regcache, int nargs, struct value **args, CORE_ADDR sp) { + struct gdbarch *gdbarch = get_regcache_arch (regcache); + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); gdb_byte buf[4]; int count = 0; int i; @@ -132,11 +133,11 @@ vax_store_arguments (struct regcache *regcache, int nargs, /* Push argument count. */ sp -= 4; - store_unsigned_integer (buf, 4, count); + store_unsigned_integer (buf, 4, byte_order, count); write_memory (sp, buf, 4); /* Update the argument pointer. */ - store_unsigned_integer (buf, 4, sp); + store_unsigned_integer (buf, 4, byte_order, sp); regcache_cooked_write (regcache, VAX_AP_REGNUM, buf); return sp; @@ -148,6 +149,7 @@ vax_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr) { + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); CORE_ADDR fp = sp; gdb_byte buf[4]; @@ -160,12 +162,12 @@ vax_push_dummy_call (struct gdbarch *gdbarch, struct value *function, /* Store return address in the PC slot. */ sp -= 4; - store_unsigned_integer (buf, 4, bp_addr); + store_unsigned_integer (buf, 4, byte_order, bp_addr); write_memory (sp, buf, 4); /* Store the (fake) frame pointer in the FP slot. */ sp -= 4; - store_unsigned_integer (buf, 4, fp); + store_unsigned_integer (buf, 4, byte_order, fp); write_memory (sp, buf, 4); /* Skip the AP slot. */ @@ -173,16 +175,16 @@ vax_push_dummy_call (struct gdbarch *gdbarch, struct value *function, /* Store register save mask and control bits. */ sp -= 4; - store_unsigned_integer (buf, 4, 0); + store_unsigned_integer (buf, 4, byte_order, 0); write_memory (sp, buf, 4); /* Store condition handler. */ sp -= 4; - store_unsigned_integer (buf, 4, 0); + store_unsigned_integer (buf, 4, byte_order, 0); write_memory (sp, buf, 4); /* Update the stack pointer and frame pointer. */ - store_unsigned_integer (buf, 4, sp); + store_unsigned_integer (buf, 4, byte_order, sp); regcache_cooked_write (regcache, VAX_SP_REGNUM, buf); regcache_cooked_write (regcache, VAX_FP_REGNUM, buf); @@ -201,7 +203,7 @@ vax_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame) static enum return_value_convention -vax_return_value (struct gdbarch *gdbarch, struct type *func_type, +vax_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) { @@ -269,26 +271,27 @@ vax_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pc, int *len) static CORE_ADDR vax_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) { - gdb_byte op = read_memory_unsigned_integer (pc, 1); + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + gdb_byte op = read_memory_unsigned_integer (pc, 1, byte_order); if (op == 0x11) pc += 2; /* skip brb */ if (op == 0x31) pc += 3; /* skip brw */ if (op == 0xC2 - && (read_memory_unsigned_integer (pc + 2, 1)) == 0x5E) + && read_memory_unsigned_integer (pc + 2, 1, byte_order) == 0x5E) pc += 3; /* skip subl2 */ if (op == 0x9E - && (read_memory_unsigned_integer (pc + 1, 1)) == 0xAE - && (read_memory_unsigned_integer (pc + 3, 1)) == 0x5E) + && read_memory_unsigned_integer (pc + 1, 1, byte_order) == 0xAE + && read_memory_unsigned_integer (pc + 3, 1, byte_order) == 0x5E) pc += 4; /* skip movab */ if (op == 0x9E - && (read_memory_unsigned_integer (pc + 1, 1)) == 0xCE - && (read_memory_unsigned_integer (pc + 4, 1)) == 0x5E) + && read_memory_unsigned_integer (pc + 1, 1, byte_order) == 0xCE + && read_memory_unsigned_integer (pc + 4, 1, byte_order) == 0x5E) pc += 5; /* skip movab */ if (op == 0x9E - && (read_memory_unsigned_integer (pc + 1, 1)) == 0xEE - && (read_memory_unsigned_integer (pc + 6, 1)) == 0x5E) + && read_memory_unsigned_integer (pc + 1, 1, byte_order) == 0xEE + && read_memory_unsigned_integer (pc + 6, 1, byte_order) == 0x5E) pc += 7; /* skip movab */ return pc; @@ -397,6 +400,7 @@ vax_frame_prev_register (struct frame_info *this_frame, static const struct frame_unwind vax_frame_unwind = { NORMAL_FRAME, + default_frame_unwind_stop_reason, vax_frame_this_id, vax_frame_prev_register, NULL,