Index: gdb/alpha-tdep.c |
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c |
index 5d3affa86d1871094869c90755cdb5a5610ae7f1..ebaa1dd1f502234f5021741e389b70f497b9a822 100644 |
--- a/gdb/alpha-tdep.c |
+++ b/gdb/alpha-tdep.c |
@@ -1,6 +1,6 @@ |
/* Target-dependent code for the ALPHA architecture, for GDB, the GNU Debugger. |
- Copyright (C) 1993-2003, 2005-2012 Free Software Foundation, Inc. |
+ Copyright (C) 1993-2013 Free Software Foundation, Inc. |
This file is part of GDB. |
@@ -31,7 +31,7 @@ |
#include "dis-asm.h" |
#include "symfile.h" |
#include "objfiles.h" |
-#include "gdb_string.h" |
+#include <string.h> |
#include "linespec.h" |
#include "regcache.h" |
#include "reggroups.h" |
@@ -475,14 +475,13 @@ alpha_extract_return_value (struct type *valtype, struct regcache *regcache, |
{ |
struct gdbarch *gdbarch = get_regcache_arch (regcache); |
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); |
- int length = TYPE_LENGTH (valtype); |
gdb_byte raw_buffer[ALPHA_REGISTER_SIZE]; |
ULONGEST l; |
switch (TYPE_CODE (valtype)) |
{ |
case TYPE_CODE_FLT: |
- switch (length) |
+ switch (TYPE_LENGTH (valtype)) |
{ |
case 4: |
regcache_cooked_read (regcache, ALPHA_FP0_REGNUM, raw_buffer); |
@@ -505,7 +504,7 @@ alpha_extract_return_value (struct type *valtype, struct regcache *regcache, |
break; |
case TYPE_CODE_COMPLEX: |
- switch (length) |
+ switch (TYPE_LENGTH (valtype)) |
{ |
case 8: |
/* ??? This isn't correct wrt the ABI, but it's what GCC does. */ |
@@ -518,7 +517,7 @@ alpha_extract_return_value (struct type *valtype, struct regcache *regcache, |
break; |
case 32: |
- regcache_cooked_read_signed (regcache, ALPHA_V0_REGNUM, &l); |
+ regcache_cooked_read_unsigned (regcache, ALPHA_V0_REGNUM, &l); |
read_memory (l, valbuf, 32); |
break; |
@@ -531,7 +530,7 @@ alpha_extract_return_value (struct type *valtype, struct regcache *regcache, |
default: |
/* Assume everything else degenerates to an integer. */ |
regcache_cooked_read_unsigned (regcache, ALPHA_V0_REGNUM, &l); |
- store_unsigned_integer (valbuf, length, byte_order, l); |
+ store_unsigned_integer (valbuf, TYPE_LENGTH (valtype), byte_order, l); |
break; |
} |
} |
@@ -544,14 +543,13 @@ alpha_store_return_value (struct type *valtype, struct regcache *regcache, |
const gdb_byte *valbuf) |
{ |
struct gdbarch *gdbarch = get_regcache_arch (regcache); |
- int length = TYPE_LENGTH (valtype); |
gdb_byte raw_buffer[ALPHA_REGISTER_SIZE]; |
ULONGEST l; |
switch (TYPE_CODE (valtype)) |
{ |
case TYPE_CODE_FLT: |
- switch (length) |
+ switch (TYPE_LENGTH (valtype)) |
{ |
case 4: |
alpha_lds (gdbarch, raw_buffer, valbuf); |
@@ -575,7 +573,7 @@ alpha_store_return_value (struct type *valtype, struct regcache *regcache, |
break; |
case TYPE_CODE_COMPLEX: |
- switch (length) |
+ switch (TYPE_LENGTH (valtype)) |
{ |
case 8: |
/* ??? This isn't correct wrt the ABI, but it's what GCC does. */ |
@@ -603,7 +601,7 @@ alpha_store_return_value (struct type *valtype, struct regcache *regcache, |
/* Assume everything else degenerates to an integer. */ |
/* 32-bit values must be sign-extended to 64 bits |
even if the base data type is unsigned. */ |
- if (length == 4) |
+ if (TYPE_LENGTH (valtype) == 4) |
valtype = builtin_type (gdbarch)->builtin_int32; |
l = unpack_long (valtype, valbuf); |
regcache_cooked_write_unsigned (regcache, ALPHA_V0_REGNUM, l); |
@@ -1034,7 +1032,7 @@ static const struct frame_unwind alpha_sigtramp_frame_unwind = { |
/* Heuristic_proc_start may hunt through the text section for a long |
time across a 2400 baud serial line. Allows the user to limit this |
search. */ |
-static unsigned int heuristic_fence_post = 0; |
+static int heuristic_fence_post = 0; |
/* Attempt to locate the start of the function containing PC. We assume that |
the previous function ends with an about_to_return insn. Not foolproof by |
@@ -1061,7 +1059,7 @@ alpha_heuristic_proc_start (struct gdbarch *gdbarch, CORE_ADDR pc) |
if (func) |
return func; |
- if (heuristic_fence_post == UINT_MAX |
+ if (heuristic_fence_post == -1 |
|| fence < tdep->vm_min_address) |
fence = tdep->vm_min_address; |