diff options
author | Bob Manson <manson@cygnus> | 1998-05-08 05:30:24 +0000 |
---|---|---|
committer | Bob Manson <manson@cygnus> | 1998-05-08 05:30:24 +0000 |
commit | 1e9c814fb93ece8958aec6810e4e2e3c3859aa1a (patch) | |
tree | 3ddeb2374dee651948ea8ae15d59978385842fd7 /gdb/config/sparc/tm-sparc.h | |
parent | d67094c6214f66773176d9a2dcb44a6971e25385 (diff) | |
download | gdb-1e9c814fb93ece8958aec6810e4e2e3c3859aa1a.zip gdb-1e9c814fb93ece8958aec6810e4e2e3c3859aa1a.tar.gz gdb-1e9c814fb93ece8958aec6810e4e2e3c3859aa1a.tar.bz2 |
* config/sparc/tm-sp64.h (CALL_DUMMY): Store and retrieve
%o0-%o5 as 64-bit values; compensate for stack bias.
(USE_STRUCT_CONVENTION): We only pass pointers to structs
if they're larger than 32 bytes.
(REG_STRUCT_HAS_ADDR): Ditto.
* sparc-tdep.c (sparc_init_extra_frame_info): Use read_sp()
instead of read_register. If the target is a sparc64 and the frame
pointer is odd, compensate for the stack bias.
(get_saved_register): Use read_sp().
(DUMMY_STACK_REG_BUF_SIZE): Use FP_REGISTER_BYTES.
(sparc_push_dummy_frame): Use read_sp()/write_sp(). On sparc64,
save the PC, NPC, CCR, FSR, FPRS, Y and ASI registers.
(sparc_frame_find_saved_regs): Use read_sp(). Read the PC, NPC,
CCR, FSR, FPRS, Y and ASI registers from the frame, if it's a
dummy frame.
(sparc_pop_frame): Use write_sp(). If the target is a sparc64 and
the FP is odd, compensate for stack bias.
(sparc_store_return_value): Right-justify the return value before
writing it to %o0.
(sparc_fix_call_dummy): Don't NOP out part of the call dummy on
sparc64.
(sparc64_read_sp, sparc64_read_fp, sparc64_write_sp,
sparc64_write_fp, sp64_push_arguments,
sparc64_extract_return_value): New functions to support the
sparc64 ABI.
* dwarfread.c (handle_producer): Set processing_gcc_compilation to
the right version number.
* dwarf2read.c (read_file_scope): Assume we're processing
GCC2 output.
Diffstat (limited to 'gdb/config/sparc/tm-sparc.h')
-rw-r--r-- | gdb/config/sparc/tm-sparc.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/config/sparc/tm-sparc.h b/gdb/config/sparc/tm-sparc.h index 618fce4..aaadc6b 100644 --- a/gdb/config/sparc/tm-sparc.h +++ b/gdb/config/sparc/tm-sparc.h @@ -251,7 +251,8 @@ extern CORE_ADDR sparc_pc_adjust PARAMS ((CORE_ADDR)); #define CANNOT_STORE_REGISTER(regno) ((regno) == G0_REGNUM) /* Store the address of the place in which to copy the structure the - subroutine will return. This is called from call_function_by_hand. */ + subroutine will return. This is called from call_function_by_hand. + The ultimate mystery is, tho, what is the value "16"? */ #define STORE_STRUCT_RETURN(ADDR, SP) \ { char val[4]; \ @@ -466,6 +467,7 @@ extern CORE_ADDR sparc_frame_saved_pc PARAMS ((struct frame_info *)); void sparc_push_dummy_frame PARAMS ((void)), sparc_pop_frame PARAMS ((void)); +#ifndef CALL_DUMMY /* This sequence of words is the instructions 0: mov %g1, %fp @@ -515,6 +517,7 @@ void sparc_push_dummy_frame PARAMS ((void)), sparc_pop_frame PARAMS ((void)); #define CALL_DUMMY_STACK_ADJUST 68 +#endif /* Insert the specified number of args and function address into a call sequence of the above form stored at DUMMYNAME. */ |