X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-ppc.h;h=e64107ef28b42e4e94b9d84714d676bf7cfa91ad;hb=6eb7d83039db70127a6eb3e4b64ecae782c42f00;hp=a5e69ca7b952dff019bcf6afa8ccabd1b490c45f;hpb=62ebcb5cbedf0fdc0b5faaa05e46aa43ced2aa68;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-ppc.h b/gas/config/tc-ppc.h index a5e69ca7b9..e64107ef28 100644 --- a/gas/config/tc-ppc.h +++ b/gas/config/tc-ppc.h @@ -1,5 +1,5 @@ /* tc-ppc.h -- Header file for tc-ppc.c. - Copyright (C) 1994-2014 Free Software Foundation, Inc. + Copyright (C) 1994-2016 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. This file is part of GAS, the GNU Assembler. @@ -51,7 +51,7 @@ extern int target_big_endian; /* The target BFD format. */ #define TARGET_FORMAT (ppc_target_format ()) -extern char *ppc_target_format (void); +extern const char *ppc_target_format (void); /* Permit temporary numeric labels. */ #define LOCAL_LABELS_FB 1 @@ -85,7 +85,9 @@ extern char *ppc_target_format (void); extern void ppc_handle_align (struct frag *); extern void ppc_frag_check (struct frag *); +#ifdef OBJ_ELF #define SUB_SEGMENT_ALIGN(SEG, FRCHAIN) 0 +#endif #define md_frag_check(FRAGP) ppc_frag_check (FRAGP) @@ -235,6 +237,10 @@ extern int ppc_fix_adjustable (struct fix *); ppc_elf_parse_cons (EXP, NBYTES) extern bfd_reloc_code_real_type ppc_elf_parse_cons (expressionS *, unsigned int); +#define TC_CONS_FIX_CHECK(EXP, NBYTES, FIX) \ + ppc_elf_cons_fix_check (EXP, NBYTES, FIX) +extern void ppc_elf_cons_fix_check (expressionS *, unsigned int, struct fix *); + #define tc_frob_file_before_adjust ppc_frob_file_before_adjust extern void ppc_frob_file_before_adjust (void); @@ -263,11 +269,24 @@ extern int ppc_parse_name (const char *, struct expressionS *); #define md_cleanup() ppc_cleanup () extern void ppc_cleanup (void); +#if (defined TE_AIX5 || defined TE_AIX \ + || defined TE_FreeBSD || defined TE_NetBSD || defined TE_LYNX) /* ppc uses different register numbers between .eh_frame and .debug_frame. This macro translates the .eh_frame register numbers to .debug_frame register numbers. */ -#define md_reg_eh_frame_to_debug_frame(regno) \ - ((regno) == 70 ? 64 /* cr2 */ : (regno)) +#define md_reg_eh_frame_to_debug_frame(regno) \ + ((regno) == 70 ? 64 /* cr2 */ \ + : (regno) == 65 ? 108 /* lr */ \ + : (regno) == 66 ? 109 /* ctr */ \ + : (regno) >= 68 && (regno) <= 75 ? (regno) + 86 - 68 /* crN */ \ + : (regno) == 76 ? 101 /* xer */ \ + : (regno) >= 77 && (regno) <= 108 ? (regno) + 1124 - 77 /* vrN */ \ + : (regno) == 109 ? 356 /* vrsave */ \ + : (regno) == 110 ? 67 /* vscr */ \ + : (regno) == 111 ? 99 /* spe_acc */ \ + : (regno) == 112 ? 612 /* spefscr */ \ + : (regno)) +#endif #define TARGET_USE_CFIPOP 1