diff options
author | Tristan Gingold <gingold@adacore.com> | 2011-05-18 07:58:36 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2011-05-18 07:58:36 +0000 |
commit | 85645aed8531ad9723f328e2ebdd66272acde0e2 (patch) | |
tree | 929025f7b4866d74840afc4c42c8abe35c533bf5 /gas/config/tc-ppc.h | |
parent | cef6e90a3e87bbf7625f440459705639b92d4d83 (diff) | |
download | gdb-85645aed8531ad9723f328e2ebdd66272acde0e2.zip gdb-85645aed8531ad9723f328e2ebdd66272acde0e2.tar.gz gdb-85645aed8531ad9723f328e2ebdd66272acde0e2.tar.bz2 |
bfd
2011-05-18 Tristan Gingold <gingold@adacore.com>
* libxcoff.h (struct xcoff_dwsect_name): New type.
(XCOFF_DWSECT_NBR_NAMES): New macro.
(xcoff_dwsect_names): Declare.
* coffcode.h (sec_to_styp_flags): Handle xcoff dwarf sections.
(styp_to_sec_flags): Ditto.
(coff_new_section_hook): Ditto.
(coff_slurp_symbol_table): Handle C_DWARF and C_INFO.
* coff-rs6000.c (xcoff_dwsect_name): New variable.
gas
2011-05-18 Tristan Gingold <gingold@adacore.com>
* config/tc-ppc.h (ppc_tc_sy): Reorder fields.
Put size into an union with dw.
(OBJ_COPY_SYMBOL_ATTRIBUTES): Adjust.
(ppc_xcoff_end): Declare.
(md_end): Define.
* config/tc-ppc.c: Add includes for xcoff.
(ppc_dwsect): New function.
(md_pseudo_table): Add dwsect.
(struct dw_subsection): New.
(dw_sections): New.
(ppc_change_debug_section): New function.
(ppc_xcoff_end): Ditto.
(ppc_function): Adjust for ppc_tc_sy.
(ppc_symbol_new_hook): Ditto.
(ppc_frob_symbol): Ditto.
(ppc_frob_section): Do not set vma for debug sections.
(ppc_fix_adjustable): Return true for debug sections.
* config/obj-coff.c: Add includes for xcoff.
(coff_frob_section): Handle dwarf section.
gas/testsuite
2011-05-18 Tristan Gingold <gingold@adacore.com>
* gas/ppc/xcoff-dwsect-1-32.d: New test.
* gas/ppc/xcoff-dwsect-1-64.d: Ditto.
* gas/ppc/xcoff-dwsect-1.s: New file.
* gas/ppc/aix.exp (do_align_test): Add tests.
Diffstat (limited to 'gas/config/tc-ppc.h')
-rw-r--r-- | gas/config/tc-ppc.h | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/gas/config/tc-ppc.h b/gas/config/tc-ppc.h index 08f0aee..9706f6f 100644 --- a/gas/config/tc-ppc.h +++ b/gas/config/tc-ppc.h @@ -129,26 +129,31 @@ struct ppc_tc_sy { /* We keep a few linked lists of symbols. */ symbolS *next; + /* The real name, if the symbol was renamed. */ + char *real_name; /* Non-zero if the symbol should be output. The RS/6000 assembler only outputs symbols that are external or are mentioned in a .globl or .lglobl statement. */ - int output; + unsigned char output; /* The symbol class. */ - int symbol_class; - /* The real name, if the symbol was renamed. */ - char *real_name; + short symbol_class; + /* For a csect or common symbol, the alignment to use. */ + unsigned char align; /* For a csect symbol, the subsegment we are using. This is zero for symbols that are not csects. */ subsegT subseg; - /* For a csect or common symbol, the alignment to use. */ - int align; - /* For a function symbol, a symbol whose value is the size. The - field is NULL if there is no size. */ - symbolS *size; /* For a csect symbol, the last symbol which has been defined in this csect, or NULL if none have been defined so far. For a .bs symbol, the referenced csect symbol. */ symbolS *within; + union + { + /* For a function symbol, a symbol whose value is the size. The + field is NULL if there is no size. */ + symbolS *size; + /* For a dwarf symbol, the corresponding dwarf subsection. */ + struct dw_subsection *dw; + } u; }; #define TC_SYMFIELD_TYPE struct ppc_tc_sy @@ -193,12 +198,15 @@ extern void ppc_adjust_symtab (void); do { \ if (SF_GET_GET_SEGMENT (dest)) \ S_SET_SEGMENT (dest, S_GET_SEGMENT (src)); \ - symbol_get_tc (dest)->size = symbol_get_tc (src)->size; \ + symbol_get_tc (dest)->u = symbol_get_tc (src)->u; \ symbol_get_tc (dest)->align = symbol_get_tc (src)->align; \ symbol_get_tc (dest)->symbol_class = symbol_get_tc (src)->symbol_class; \ symbol_get_tc (dest)->within = symbol_get_tc (src)->within; \ } while (0) +extern void ppc_xcoff_end (void); +#define md_end ppc_xcoff_end + #endif /* OBJ_XCOFF */ extern const char ppc_symbol_chars[]; |