diff options
author | Paul Brook <paul@codesourcery.com> | 2011-05-31 14:12:55 +0000 |
---|---|---|
committer | Paul Brook <paul@codesourcery.com> | 2011-05-31 14:12:55 +0000 |
commit | 3b2f07930444a96217805d28af12dc5edd65b20d (patch) | |
tree | 8e6e4b7ff5ff3684db863f04e574cca607e4117e /gas | |
parent | b58843019a8b7cb79ea5335498bb06c1d59d5d03 (diff) | |
download | gdb-3b2f07930444a96217805d28af12dc5edd65b20d.zip gdb-3b2f07930444a96217805d28af12dc5edd65b20d.tar.gz gdb-3b2f07930444a96217805d28af12dc5edd65b20d.tar.bz2 |
2011-05-31 Paul Brook <paul@codesourcery.com>
gas/
* config/tc-arm.c (arm_cpus): Add Cortex-R5.
(arm_extensions): Allow idiv on ARMv7-R.
* doc/c-arm.text: Update idiv extension restrictions.
gas/testsuite/
* gas/arm/arm-idiv-bad.d: New test.
* gas/arm/arm-idiv-bad.s: New test.
* gas/arm/arm-idiv-bad.l: New test.
* gas/arm/arm-idiv.d: New test.
* gas/arm/arm-idiv.s: New test.
include/
* opcode/arm.h (ARM_ARCH_V7R_IDIV): Define.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 4 | ||||
-rw-r--r-- | gas/doc/c-arm.texi | 2 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/arm-idiv-bad.d | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/arm-idiv-bad.l | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/arm-idiv-bad.s | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/arm-idiv.d | 9 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/arm-idiv.s | 8 |
9 files changed, 45 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index b795927..c296045 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,11 @@ 2011-05-31 Paul Brook <paul@codesourcery.com> + * config/tc-arm.c (arm_cpus): Add Cortex-R5. + (arm_extensions): Allow idiv on ARMv7-R. + * doc/c-arm.text: Update idiv extension restrictions. + +2011-05-31 Paul Brook <paul@codesourcery.com> + * config/tc-arm.c (arm_force_relocation): Resolve all pc-relative loads. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 6611e02..415663d 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -22805,6 +22805,8 @@ static const struct arm_cpu_option_table arm_cpus[] = {"cortex-r4", ARM_ARCH_V7R, FPU_NONE, "Cortex-R4"}, {"cortex-r4f", ARM_ARCH_V7R, FPU_ARCH_VFP_V3D16, "Cortex-R4F"}, + {"cortex-r5", ARM_ARCH_V7R_IDIV, + FPU_NONE, "Cortex-R5"}, {"cortex-m4", ARM_ARCH_V7EM, FPU_NONE, "Cortex-M4"}, {"cortex-m3", ARM_ARCH_V7M, FPU_NONE, "Cortex-M3"}, {"cortex-m1", ARM_ARCH_V6SM, FPU_NONE, "Cortex-M1"}, @@ -22888,7 +22890,7 @@ struct arm_option_extension_value_table static const struct arm_option_extension_value_table arm_extensions[] = { {"idiv", ARM_FEATURE (ARM_EXT_ADIV | ARM_EXT_DIV, 0), - ARM_FEATURE (ARM_EXT_V7A, 0)}, + ARM_FEATURE (ARM_EXT_V7A | ARM_EXT_V7R, 0)}, {"iwmmxt", ARM_FEATURE (0, ARM_CEXT_IWMMXT), ARM_ANY}, {"iwmmxt2", ARM_FEATURE (0, ARM_CEXT_IWMMXT2), ARM_ANY}, {"maverick", ARM_FEATURE (0, ARM_CEXT_MAVERICK), ARM_ANY}, diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi index a5a88ba..131f6ab 100644 --- a/gas/doc/c-arm.texi +++ b/gas/doc/c-arm.texi @@ -152,7 +152,7 @@ been added, again in ascending alphabetical order. For example, The following extensions are currently supported: -@code{idiv}, (Integer Divide Extensions for v7-A architecture), +@code{idiv}, (Integer Divide Extensions for v7-A and v7-R architectures), @code{iwmmxt}, @code{iwmmxt2}, @code{maverick}, diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 81fe89b..1f54cfe 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,5 +1,13 @@ 2011-05-31 Paul Brook <paul@codesourcery.com> + * gas/arm/arm-idiv-bad.d: New test. + * gas/arm/arm-idiv-bad.s: New test. + * gas/arm/arm-idiv-bad.l: New test. + * gas/arm/arm-idiv.d: New test. + * gas/arm/arm-idiv.s: New test. + +2011-05-31 Paul Brook <paul@codesourcery.com> + * gas/arm/ldr-global.d: New test. * gas/arm/ldr-global.s: New test. diff --git a/gas/testsuite/gas/arm/arm-idiv-bad.d b/gas/testsuite/gas/arm/arm-idiv-bad.d new file mode 100644 index 0000000..c3d7394 --- /dev/null +++ b/gas/testsuite/gas/arm/arm-idiv-bad.d @@ -0,0 +1,4 @@ +#name: Invalid V7 ARM DIV instructions +#as: -march=armv7-a +#error-output: arm-idiv-bad.l + diff --git a/gas/testsuite/gas/arm/arm-idiv-bad.l b/gas/testsuite/gas/arm/arm-idiv-bad.l new file mode 100644 index 0000000..6662cc7 --- /dev/null +++ b/gas/testsuite/gas/arm/arm-idiv-bad.l @@ -0,0 +1,2 @@ +[^:]*: Assembler messages: +[^:]*:4: Error: selected processor does not support ARM mode `sdiv r0,r0,r0' diff --git a/gas/testsuite/gas/arm/arm-idiv-bad.s b/gas/testsuite/gas/arm/arm-idiv-bad.s new file mode 100644 index 0000000..45e846e --- /dev/null +++ b/gas/testsuite/gas/arm/arm-idiv-bad.s @@ -0,0 +1,4 @@ + .text + .arm +label: + sdiv r0, r0, r0 diff --git a/gas/testsuite/gas/arm/arm-idiv.d b/gas/testsuite/gas/arm/arm-idiv.d new file mode 100644 index 0000000..a886d02 --- /dev/null +++ b/gas/testsuite/gas/arm/arm-idiv.d @@ -0,0 +1,9 @@ +#name: ARM Integer division instructions +#objdump: -dr --prefix-addresses --show-raw-insn + +.*: +file format .*arm.* + +Disassembly of section .text: +0+000 <[^>]*> e735f819 udiv r5, r9, r8 +0+004 <[^>]*> e739f715 udiv r9, r5, r7 +0+008 <[^>]*> e710f010 sdiv r0, r0, r0 diff --git a/gas/testsuite/gas/arm/arm-idiv.s b/gas/testsuite/gas/arm/arm-idiv.s new file mode 100644 index 0000000..626a67d --- /dev/null +++ b/gas/testsuite/gas/arm/arm-idiv.s @@ -0,0 +1,8 @@ +.arch armv7-a +.arch_extension idiv +.arm +udiv r5, r9, r8 +.cpu cortex-a15 +udiv r9, r5, r7 +.cpu cortex-r5 +sdiv r0, r0, r0 |