diff options
author | nobody <> | 2003-04-06 14:50:16 +0000 |
---|---|---|
committer | nobody <> | 2003-04-06 14:50:16 +0000 |
commit | bad7deeefd1fa35f148ce755f6ee1e00c3c0d05e (patch) | |
tree | f9bc25c254c715345304fd1bf9568103817a20ae /gdb/x86-64-tdep.c | |
parent | 56119ffba54ea99aed55aed353725346558b2696 (diff) | |
download | binutils-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.c | 27 |
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 |