diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 8 | ||||
-rw-r--r-- | gas/config/tc-ppc.c | 20 | ||||
-rw-r--r-- | gas/config/tc-ppc.h | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/section10.d | 4 |
4 files changed, 33 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 318472d..b52259f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2017-09-05 Alexander Fedotov <alexander.fedotov@nxp.com> + Edmar Wienskoski <edmar.wienskoski@nxp.com + + * config/tc-ppc.c (md_parse_option): Handle "mno-vle" flag. + (ppc_elf_section_letter): New function. + * config/tc-ppc.h (md_elf_section_letter): New. + * testsuite/gas/elf/section10.d: Adjust for VLE. + 2017-09-01 Tamar Christina <tamar.christina@arm.com> * config/tc-aarch64.c (aarch64_cpus): Enable DOTPROD for diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index d20fac6..7118b71 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -1206,6 +1206,16 @@ md_parse_option (int c, const char *arg) } } + else if (strcmp (arg, "no-vle") == 0) + { + sticky &= ~PPC_OPCODE_VLE; + + new_cpu = ppc_parse_cpu (ppc_cpu, &sticky, "booke"); + new_cpu &= ~PPC_OPCODE_VLE; + + ppc_cpu = new_cpu; + } + else if (strcmp (arg, "regnames") == 0) reg_names_p = TRUE; @@ -3683,6 +3693,16 @@ ppc_section_flags (flagword flags, bfd_vma attr ATTRIBUTE_UNUSED, int type) return flags; } + +bfd_vma +ppc_elf_section_letter (int letter, const char **ptrmsg) +{ + if (letter == 'v') + return SHF_PPC_VLE; + + *ptrmsg = _("bad .section directive: want a,e,v,w,x,M,S,G,T in string"); + return -1; +} #endif /* OBJ_ELF */ diff --git a/gas/config/tc-ppc.h b/gas/config/tc-ppc.h index 514c223..f71f2ea 100644 --- a/gas/config/tc-ppc.h +++ b/gas/config/tc-ppc.h @@ -226,6 +226,9 @@ extern int ppc_section_flags (flagword, bfd_vma, int); #define tc_comment_chars ppc_comment_chars extern const char *ppc_comment_chars; +#define md_elf_section_letter ppc_elf_section_letter +extern bfd_vma ppc_elf_section_letter (int, const char **); + /* Keep relocations relative to the GOT, or non-PC relative. */ #define tc_fix_adjustable(FIX) ppc_fix_adjustable (FIX) extern int ppc_fix_adjustable (struct fix *); diff --git a/gas/testsuite/gas/elf/section10.d b/gas/testsuite/gas/elf/section10.d index e187263..554a791 100644 --- a/gas/testsuite/gas/elf/section10.d +++ b/gas/testsuite/gas/elf/section10.d @@ -18,7 +18,7 @@ #... [ ]*\[.*\][ ]+sec3 [ ]*PROGBITS.* -[ ]*\[.*fefff030\]: MERGE, STRINGS,.* EXCLUDE, OS \(.*ef00000\), PROC \(.*[347]0000000\), UNKNOWN \(0+0ff000\) +[ ]*\[.*fefff030\]: MERGE, STRINGS,.* EXCLUDE, OS \(.*ef00000\), PROC \(.*[3467]0000000\), UNKNOWN \(0+0ff000\) #... [ ]*\[.*\][ ]+sec4 [ ]*LOOS\+0x11[ ].* @@ -26,7 +26,7 @@ #... [ ]*\[.*\][ ]+sec5 [ ]*LOUSER\+0x9[ ].* -[ ]*\[.*feff0000\]:.* EXCLUDE, OS \(.*ef00000\), PROC \(.*[347]0000000\), UNKNOWN \(.*f0000\) +[ ]*\[.*feff0000\]:.* EXCLUDE, OS \(.*ef00000\), PROC \(.*[3467]0000000\), UNKNOWN \(.*f0000\) [ ]*\[.*\][ ]+.data.foo [ ]*LOUSER\+0x7f000000[ ].* [ ]*\[0+003\]: WRITE, ALLOC |