summaryrefslogtreecommitdiff
path: root/gdb/x86-64-tdep.c
diff options
context:
space:
mode:
authornobody <>2003-04-06 14:50:16 +0000
committernobody <>2003-04-06 14:50:16 +0000
commitbad7deeefd1fa35f148ce755f6ee1e00c3c0d05e (patch)
treef9bc25c254c715345304fd1bf9568103817a20ae /gdb/x86-64-tdep.c
parent56119ffba54ea99aed55aed353725346558b2696 (diff)
downloadbinutils-gdb-kettenis_i386newframe-20030406-branch.tar.gz
This commit was manufactured by cvs2svn to create branchkettenis_i386newframe-20030406-branchpointkettenis_i386newframe-20030406-branch
'kettenis_i386newframe-20030406-branch'. Sprout from cagney_frameaddr-20030403-branch 2003-04-03 16:34:49 UTC nobody 'This commit was manufactured by cvs2svn to create branch' Cherrypick from master 2003-04-06 14:50:15 UTC Andrew Cagney <cagney@redhat.com> '2003-04-06 Andrew Cagney <cagney@redhat.com>': bfd/ChangeLog bfd/archures.c bfd/bfd-in2.h bfd/coff-tic4x.c bfd/cpu-tic4x.c bfd/elf32-m68hc11.c bfd/simple.c bfd/version.h gdb/ChangeLog gdb/Makefile.in gdb/arm-tdep.c gdb/blockframe.c gdb/config/i386/tm-ptx.h gdb/config/pa/tm-hppa.h gdb/config/pa/tm-hppa64.h gdb/config/pa/tm-hppah.h gdb/config/sparc/tm-sparc.h gdb/cris-tdep.c gdb/d10v-tdep.c gdb/dummy-frame.c gdb/frame-unwind.h gdb/frame.c gdb/frame.h gdb/gdbarch.h gdb/gdbarch.sh gdb/hppa-hpux-tdep.c gdb/hppa-tdep.c gdb/i386-tdep.c gdb/ia64-tdep.c gdb/m68k-tdep.c gdb/objc-lang.c gdb/remote-vxsparc.c gdb/rs6000-tdep.c gdb/s390-tdep.c gdb/sentinel-frame.c gdb/sh-tdep.c gdb/sparc-tdep.c gdb/stack.c gdb/testsuite/ChangeLog gdb/testsuite/gdb.base/break.exp gdb/valprint.c gdb/version.in gdb/x86-64-tdep.c include/ChangeLog include/coff/tic4x.h include/opcode/tic4x.h opcodes/ChangeLog opcodes/tic4x-dis.c sim/v850/ChangeLog sim/v850/simops.c sim/v850/simops.h sim/v850/v850.igen
Diffstat (limited to 'gdb/x86-64-tdep.c')
-rw-r--r--gdb/x86-64-tdep.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c
index 5d43e015819..24b77af113b 100644
--- a/gdb/x86-64-tdep.c
+++ b/gdb/x86-64-tdep.c
@@ -471,6 +471,8 @@ classify_argument (struct type *type,
return 2;
}
break;
+ case TYPE_CODE_ENUM:
+ case TYPE_CODE_REF:
case TYPE_CODE_INT:
case TYPE_CODE_PTR:
switch (bytes)
@@ -700,11 +702,17 @@ x86_64_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
intreg += 2;
break;
case X86_64_INTEGERSI_CLASS:
- deprecated_write_register_gen (int_parameter_registers[intreg / 2],
- VALUE_CONTENTS_ALL (args[i]) + offset);
- offset += 8;
- intreg++;
- break;
+ {
+ LONGEST num
+ = extract_signed_integer (VALUE_CONTENTS_ALL (args[i])
+ + offset, 4);
+ regcache_raw_write_signed (current_regcache,
+ int_parameter_registers[intreg / 2], num);
+
+ offset += 8;
+ intreg++;
+ break;
+ }
case X86_64_SSEDF_CLASS:
case X86_64_SSESF_CLASS:
case X86_64_SSE_CLASS:
@@ -936,12 +944,9 @@ x86_64_save_dummy_frame_tos (CORE_ADDR sp)
static struct frame_id
x86_64_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *frame)
{
- struct frame_id id;
-
- id.pc = frame_pc_unwind (frame);
- frame_unwind_unsigned_register (frame, SP_REGNUM, &id.base);
-
- return id;
+ CORE_ADDR base;
+ frame_unwind_unsigned_register (frame, SP_REGNUM, &base);
+ return frame_id_build (base, frame_pc_unwind (frame));
}
void