From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3854 invoked by alias); 21 Aug 2002 00:55:45 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 3803 invoked from network); 21 Aug 2002 00:55:44 -0000 Received: from unknown (HELO cygnus.com) (205.180.83.203) by sources.redhat.com with SMTP; 21 Aug 2002 00:55:44 -0000 Received: from reddwarf.sfbay.redhat.com (reddwarf.sfbay.redhat.com [172.16.24.50]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id RAA04451; Tue, 20 Aug 2002 17:50:20 -0700 (PDT) Received: (from msnyder@localhost) by reddwarf.sfbay.redhat.com (8.11.2/8.11.2) id g7L0ci300745; Tue, 20 Aug 2002 17:38:44 -0700 Date: Tue, 20 Aug 2002 17:55:00 -0000 From: Michael Snyder Message-Id: <200208210038.g7L0ci300745@reddwarf.sfbay.redhat.com> To: gdb-patches@sources.redhat.com Subject: [PATCH] mips-tdep.c: local defines, static functions Cc: cagney@redhat.com X-SW-Source: 2002-08/txt/msg00642.txt.bz2 I'll check this in as soon as I make sure gdb still builds. 2002-08-20 Michael Snyder * mips-tdep.c (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): These are only used locally, so move them from the target machine header to here. (mips_set_processor_type, mips_register_name, mips32_next_pc, mips16_next_pc, cached_proc_desc, mips_set_processor_type): Make static. * config/mips/tm-mips.h (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): Delete. Index: mips-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/mips-tdep.c,v retrieving revision 1.115 diff -p -r1.115 mips-tdep.c *** mips-tdep.c 20 Aug 2002 23:07:42 -0000 1.115 --- mips-tdep.c 21 Aug 2002 00:50:40 -0000 *************** mips_saved_regsize (void) *** 173,178 **** --- 173,208 ---- return 4; } + /* Macros for setting and testing a bit in a minimal symbol that + marks it as 16-bit function. The MSB of the minimal symbol's + "info" field is used for this purpose. This field is already + being used to store the symbol size, so the assumption is + that the symbol size cannot exceed 2^31. + + ELF_MAKE_MSYMBOL_SPECIAL tests whether an ELF symbol is "special", + i.e. refers to a 16-bit function, and sets a "special" bit in a + minimal symbol to mark it as a 16-bit function + + MSYMBOL_IS_SPECIAL tests the "special" bit in a minimal symbol + MSYMBOL_SIZE returns the size of the minimal symbol, i.e. + the "info" field with the "special" bit masked out */ + + #define MSYMBOL_IS_SPECIAL(msym) \ + (((long) MSYMBOL_INFO (msym) & 0x80000000) != 0) + #define MSYMBOL_SIZE(msym) \ + ((long) MSYMBOL_INFO (msym) & 0x7fffffff) + + static void + mips_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym) + { + if (((elf_symbol_type *)(sym))->internal_elf_sym.st_other == STO_MIPS16) + { + MSYMBOL_INFO (msym) = (char *) + (((long) MSYMBOL_INFO (msym)) | 0x80000000); + SYMBOL_VALUE_ADDRESS (msym) |= 1; + } + } + /* XFER a value from the big/little/left end of the register. Depending on the size of the value it might occupy the entire register or just part of it. Make an allowance for this, aligning *************** static CORE_ADDR heuristic_proc_start (C *** 297,303 **** static CORE_ADDR read_next_frame_reg (struct frame_info *, int); ! int mips_set_processor_type (char *); static void mips_show_processor_type_command (char *, int); --- 327,333 ---- static CORE_ADDR read_next_frame_reg (struct frame_info *, int); ! static int mips_set_processor_type (char *); static void mips_show_processor_type_command (char *, int); *************** static struct cmd_list_element *showmips *** 333,339 **** char *mips_generic_reg_names[] = MIPS_REGISTER_NAMES; char **mips_processor_reg_names = mips_generic_reg_names; ! const char * mips_register_name (int i) { return mips_processor_reg_names[i]; --- 363,369 ---- char *mips_generic_reg_names[] = MIPS_REGISTER_NAMES; char **mips_processor_reg_names = mips_generic_reg_names; ! static const char * mips_register_name (int i) { return mips_processor_reg_names[i]; *************** pc_is_mips16 (bfd_vma memaddr) *** 720,757 **** return 0; } - /* ELF_MAKE_MSYMBOL_SPECIAL tests whether an ELF symbol is "special", - i.e. refers to a 16-bit function, and sets a "special" bit in a - minimal symbol to mark it as a 16-bit function. */ - - static void - mips_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym) - { - if (((elf_symbol_type *)(sym))->internal_elf_sym.st_other == STO_MIPS16) - { - MSYMBOL_INFO (msym) = (char *) - (((long) MSYMBOL_INFO (msym)) | 0x80000000); - SYMBOL_VALUE_ADDRESS (msym) |= 1; - } - } - - /* MSYMBOL_IS_SPECIAL tests the "special" bit in a minimal symbol. */ - - int - mips_msymbol_is_special (struct minimal_symbol *msym) - { - return (((long) MSYMBOL_INFO (msym) & 0x80000000) != 0); - } - - /* MSYMBOL_SIZE returns the size of the minimal symbol, i.e. the - "info" field with the "special" bit masked out. */ - - long - mips_msymbol_size (struct minimal_symbol *msym) - { - return ((long) MSYMBOL_INFO (msym) & 0x7fffffff); - } - /* MIPS believes that the PC has a sign extended value. Perhaphs the all registers should be sign extended for simplicity? */ --- 750,755 ---- *************** mips32_relative_offset (unsigned long in *** 915,921 **** /* Determine whate to set a single step breakpoint while considering branch prediction */ ! CORE_ADDR mips32_next_pc (CORE_ADDR pc) { unsigned long inst; --- 913,919 ---- /* Determine whate to set a single step breakpoint while considering branch prediction */ ! static CORE_ADDR mips32_next_pc (CORE_ADDR pc) { unsigned long inst; *************** extended_mips16_next_pc (CORE_ADDR pc, *** 1354,1360 **** return pc; } ! CORE_ADDR mips16_next_pc (CORE_ADDR pc) { unsigned int insn = fetch_mips_16 (pc); --- 1352,1358 ---- return pc; } ! static CORE_ADDR mips16_next_pc (CORE_ADDR pc) { unsigned int insn = fetch_mips_16 (pc); *************** mips_init_frame_pc_first (int fromleaf, *** 1676,1682 **** pc = ((fromleaf) ? SAVED_PC_AFTER_CALL (prev->next) : prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ()); ! tmp = mips_skip_stub (pc); prev->pc = tmp ? tmp : pc; } --- 1674,1680 ---- pc = ((fromleaf) ? SAVED_PC_AFTER_CALL (prev->next) : prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ()); ! tmp = SKIP_TRAMPOLINE_CODE (pc); prev->pc = tmp ? tmp : pc; } *************** get_frame_pointer (struct frame_info *fr *** 2391,2397 **** PROC_FRAME_ADJUST (proc_desc)); } ! mips_extra_func_info_t cached_proc_desc; static CORE_ADDR mips_frame_chain (struct frame_info *frame) --- 2389,2395 ---- PROC_FRAME_ADJUST (proc_desc)); } ! static mips_extra_func_info_t cached_proc_desc; static CORE_ADDR mips_frame_chain (struct frame_info *frame) *************** mips_frame_chain (struct frame_info *fra *** 2405,2411 **** /* Check if the PC is inside a call stub. If it is, fetch the PC of the caller of that stub. */ ! if ((tmp = mips_skip_stub (saved_pc)) != 0) saved_pc = tmp; /* Look up the procedure descriptor for this PC. */ --- 2403,2409 ---- /* Check if the PC is inside a call stub. If it is, fetch the PC of the caller of that stub. */ ! if ((tmp = SKIP_TRAMPOLINE_CODE (saved_pc)) != 0) saved_pc = tmp; /* Look up the procedure descriptor for this PC. */ *************** mips_show_processor_type_command (char * *** 5035,5041 **** /* Modify the actual processor type. */ ! int mips_set_processor_type (char *str) { int i; --- 5033,5039 ---- /* Modify the actual processor type. */ ! static int mips_set_processor_type (char *str) { int i; Index: config/mips/tm-mips.h =================================================================== RCS file: /cvs/src/src/gdb/config/mips/tm-mips.h,v retrieving revision 1.41 diff -p -r1.41 tm-mips.h *** config/mips/tm-mips.h 20 Aug 2002 23:07:43 -0000 1.41 --- config/mips/tm-mips.h 21 Aug 2002 00:50:40 -0000 *************** extern struct frame_info *setup_arbitrar *** 209,215 **** #define TM_PRINT_INSN_MACH 0 - /* These are defined in mdebugread.c and are used in mips-tdep.c */ extern CORE_ADDR sigtramp_address, sigtramp_end; extern void fixup_sigtramp (void); --- 209,214 ---- *************** typedef unsigned long t_inst; /* Integer *** 239,271 **** #endif /* TM_MIPS_H */ - /* Macros for setting and testing a bit in a minimal symbol that - marks it as 16-bit function. The MSB of the minimal symbol's - "info" field is used for this purpose. This field is already - being used to store the symbol size, so the assumption is - that the symbol size cannot exceed 2^31. - - ELF_MAKE_MSYMBOL_SPECIAL - tests whether an ELF symbol is "special", i.e. refers - to a 16-bit function, and sets a "special" bit in a - minimal symbol to mark it as a 16-bit function - MSYMBOL_IS_SPECIAL tests the "special" bit in a minimal symbol - MSYMBOL_SIZE returns the size of the minimal symbol, i.e. - the "info" field with the "special" bit masked out - */ - - #define MSYMBOL_IS_SPECIAL(msym) \ - mips_msymbol_is_special (msym) - #define MSYMBOL_SIZE(msym) \ - mips_msymbol_size (msym) - struct minimal_symbol; - extern int mips_msymbol_is_special (struct minimal_symbol *msym); - extern long mips_msymbol_size (struct minimal_symbol *msym); - - /* Command to set the processor type. */ extern void mips_set_processor_type_command (char *, int); - /* Single step based on where the current instruction will take us. */ extern void mips_software_single_step (enum target_signal, int); --- 238,245 ----