From bacebabc8edc98e5651097a1d2640ffe81736004 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 20 Nov 2012 17:53:46 +0000 Subject: [PATCH] gas/ * config/tc-arm.c (arm_symbol_chars): New variable. * config/tc-arm.h (tc_symbol_chars): New macro, defined to that. gas/testsuite/ * gas/arm/macro-pld.s: New file. * gas/arm/macro-pld.d: New file. --- gas/ChangeLog | 7 ++++++- gas/config/tc-arm.c | 15 ++++++++++----- gas/config/tc-arm.h | 3 +++ gas/testsuite/ChangeLog | 5 +++++ gas/testsuite/gas/arm/macro-pld.d | 8 ++++++++ gas/testsuite/gas/arm/macro-pld.s | 4 ++++ 6 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 gas/testsuite/gas/arm/macro-pld.d create mode 100644 gas/testsuite/gas/arm/macro-pld.s diff --git a/gas/ChangeLog b/gas/ChangeLog index bcf76b8..c9c0e36 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -9,6 +9,11 @@ * config/tc-aarch64.c (first_error_fmt): Add ATTRIBUTE_UNUSED to the local variable "ret". +2012-11-20 Roland McGrath + + * config/tc-arm.c (arm_symbol_chars): New variable. + * config/tc-arm.h (tc_symbol_chars): New macro, defined to that. + 2012-11-20 David S. Miller * config/tc-sparc.c (md_parse_option): Only certain arch @@ -644,7 +649,7 @@ CPU_BTVER2_FLAGS. (i386_align_code): Add case for PROCESSOR_BT. - * config/tc-i386.h (enum processor_type): Add PROCESSOR_BT. + * config/tc-i386.h (enum processor_type): Add PROCESSOR_BT. * doc/c-i386.texi: Add -march={btver1, btver2} options. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 971ac6f..4cd2745 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -321,6 +321,11 @@ static int implicit_it_mode = IMPLICIT_IT_MODE_ARM; static bfd_boolean unified_syntax = FALSE; +/* An immediate operand can start with #, and ld*, st*, pld operands + can contain [ and ]. We need to tell APP not to elide whitespace + before a [, which can appear as the first operand for pld. */ +const char arm_symbol_chars[] = "#[]"; + enum neon_el_type { NT_invtype, @@ -10225,7 +10230,7 @@ do_t_branch (void) } /* Actually do the work for Thumb state bkpt and hlt. The only difference - between the two is the maximum immediate allowed - which is passed in + between the two is the maximum immediate allowed - which is passed in RANGE. */ static void do_t_bkpt_hlt1 (int range) @@ -14660,7 +14665,7 @@ do_vfp_nsyn_cvtz (void) } static void -do_vfp_nsyn_cvt_fpv8 (enum neon_cvt_flavour flavour, +do_vfp_nsyn_cvt_fpv8 (enum neon_cvt_flavour flavour, enum neon_cvt_mode mode) { int sz, op; @@ -14720,9 +14725,9 @@ do_neon_cvt_1 (enum neon_cvt_mode mode) /* PR11109: Handle round-to-zero for VCVT conversions. */ if (mode == neon_cvt_mode_z && ARM_CPU_HAS_FEATURE (cpu_variant, fpu_arch_vfp_v2) - && (flavour == neon_cvt_flavour_s32_f32 - || flavour == neon_cvt_flavour_u32_f32 - || flavour == neon_cvt_flavour_s32_f64 + && (flavour == neon_cvt_flavour_s32_f32 + || flavour == neon_cvt_flavour_u32_f32 + || flavour == neon_cvt_flavour_s32_f64 || flavour == neon_cvt_flavour_u32_f64) && (rs == NS_FD || rs == NS_FF)) { diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index da6469c..3a0fab0 100644 --- a/gas/config/tc-arm.h +++ b/gas/config/tc-arm.h @@ -82,6 +82,9 @@ struct fix; /* We support double slash line-comments for compatibility with the ARM AArch64 Assembler. */ #define DOUBLESLASH_LINE_COMMENTS +#define tc_symbol_chars arm_symbol_chars +extern const char arm_symbol_chars[]; + #define TC_FORCE_RELOCATION(FIX) arm_force_relocation (FIX) extern unsigned int arm_frag_max_var (struct frag *); diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 8c21a0c..b05f281 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -3,6 +3,11 @@ * gas/s390/zarch-z9-109.d: Fix srstu opcode. * gas/s390/zarch-z900.d: Replace lasp with strag. +2012-11-20 Roland McGrath + + * gas/arm/macro-pld.s: New file. + * gas/arm/macro-pld.d: New file. + 2012-11-14 David Holsgrove * gas/microblaze/allinsn.s: Add mbar and sleep diff --git a/gas/testsuite/gas/arm/macro-pld.d b/gas/testsuite/gas/arm/macro-pld.d new file mode 100644 index 0000000..8f9d86c8 --- /dev/null +++ b/gas/testsuite/gas/arm/macro-pld.d @@ -0,0 +1,8 @@ +#objdump: -dr + +.*: file format .* + +Disassembly of section \.text: + +0+ <.*>: +\s*0:\s+f5d0f000\s+pld\s+\[r0\] diff --git a/gas/testsuite/gas/arm/macro-pld.s b/gas/testsuite/gas/arm/macro-pld.s new file mode 100644 index 0000000..cf4df8b --- /dev/null +++ b/gas/testsuite/gas/arm/macro-pld.s @@ -0,0 +1,4 @@ +.macro foo arg, rest:vararg + \rest +.endm + foo r0, pld [r0] -- 2.7.4