Add 4.5.2 ARM fixes contributed by Gerd v. Egidy
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4578 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
parent
7ec2eb659d
commit
de418161af
|
@ -108,4 +108,12 @@ buildroot-1.11 2011-xx-xx <spudmonkey@racsa.co.cr>
|
|||
* configs/avr-defconfig-4.5.2 - New configuration.
|
||||
* Config.in and almost all configurations in configs/ - Changed the
|
||||
default nuttx path to $(TOPDIR)/../../nuttx
|
||||
* Misc files. Patch provided by Gerd v. Egidy that solves the following
|
||||
problems
|
||||
- binutils 2.21 is not available on the gnu servers anymore, they replaced
|
||||
it with 2.21.1
|
||||
- there is some assembler error when compiling gcc for arm, gcc bugzilla
|
||||
43999
|
||||
- you can't build nuttx for cortex m3/m4 because of a missing instruction
|
||||
in ethe assembler, binutils bugzilla 12296
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ BR2_GNU_TARGET_SUFFIX="eabi"
|
|||
# BR2_BINUTILS_VERSION_2_18 is not set
|
||||
# BR2_BINUTILS_VERSION_2_19 is not set
|
||||
# BR2_BINUTILS_VERSION_2_19_1 is not set
|
||||
BR2_BINUTILS_VERSION_2_21=y
|
||||
BR2_BINUTILS_VERSION_2_21_1=y
|
||||
BR2_BINUTILS_VERSION="2.21"
|
||||
BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ BR2_GNU_TARGET_SUFFIX="elf"
|
|||
# BR2_BINUTILS_VERSION_2_18 is not set
|
||||
# BR2_BINUTILS_VERSION_2_19 is not set
|
||||
BR2_BINUTILS_VERSION_2_19_1=y
|
||||
# BR2_BINUTILS_VERSION_2_21 is not set
|
||||
# BR2_BINUTILS_VERSION_2_21_1 is not set
|
||||
BR2_BINUTILS_VERSION="2.19.1"
|
||||
BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ BR2_GNU_TARGET_SUFFIX="elf"
|
|||
# BR2_BINUTILS_VERSION_2_18 is not set
|
||||
# BR2_BINUTILS_VERSION_2_19 is not set
|
||||
# BR2_BINUTILS_VERSION_2_19_1 is not set
|
||||
BR2_BINUTILS_VERSION_2_21=y
|
||||
BR2_BINUTILS_VERSION_2_21_1=y
|
||||
BR2_BINUTILS_VERSION="2.21"
|
||||
BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""
|
||||
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
Index: gas/testsuite/gas/arm/arch7.d
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/gas/testsuite/gas/arm/arch7.d,v
|
||||
--- a/gas/testsuite/gas/arm/arch7.d 17 Sep 2010 10:42:04 -0000 1.6
|
||||
+++ b/gas/testsuite/gas/arm/arch7.d 30 Mar 2011 22:44:17 -0000
|
||||
@@ -76,3 +76,4 @@
|
||||
0+10c <[^>]*> f380 8814 msr CONTROL, r0
|
||||
0+110 <[^>]*> f3ef 8003 mrs r0, PSR
|
||||
0+114 <[^>]*> f380 8803 msr PSR, r0
|
||||
+0+118 <[^>]*> df00 svc 0
|
||||
Index: gas/testsuite/gas/arm/arch7.s
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/gas/testsuite/gas/arm/arch7.s,v
|
||||
--- a/gas/testsuite/gas/arm/arch7.s 17 Sep 2010 10:42:04 -0000 1.2
|
||||
+++ b/gas/testsuite/gas/arm/arch7.s 30 Mar 2011 22:44:17 -0000
|
||||
@@ -79,3 +79,5 @@
|
||||
msr control, r0
|
||||
mrs r0, xpsr
|
||||
msr xpsr, r0
|
||||
+
|
||||
+ svc 0
|
||||
Index: gas/testsuite/gas/arm/attr-march-armv7.d
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/gas/testsuite/gas/arm/attr-march-armv7.d,v
|
||||
--- a/gas/testsuite/gas/arm/attr-march-armv7.d 11 May 2010 17:36:33 -0000 1.3
|
||||
+++ b/gas/testsuite/gas/arm/attr-march-armv7.d 30 Mar 2011 22:44:17 -0000
|
||||
@@ -9,5 +9,6 @@
|
||||
File Attributes
|
||||
Tag_CPU_name: "7"
|
||||
Tag_CPU_arch: v7
|
||||
+ Tag_CPU_arch_profile: Microcontroller
|
||||
Tag_THUMB_ISA_use: Thumb-2
|
||||
Tag_DIV_use: Not allowed
|
||||
Index: include/opcode/arm.h
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/include/opcode/arm.h,v
|
||||
--- a/include/opcode/arm.h 15 Nov 2010 10:03:05 -0000 1.24
|
||||
+++ b/include/opcode/arm.h 30 Mar 2011 22:44:18 -0000
|
||||
@@ -109,7 +109,8 @@
|
||||
#define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K)
|
||||
#define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_SEC)
|
||||
#define ARM_AEXT_V6ZKT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_SEC)
|
||||
-#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER)
|
||||
+#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER \
|
||||
+ | ARM_EXT_OS)
|
||||
#define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A)
|
||||
#define ARM_AEXT_V7R (ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV)
|
||||
#define ARM_AEXT_NOTM \
|
|
@ -27,9 +27,9 @@ choice
|
|||
depends !BR2_avr32 && !BR2_nios2 && !BR2_m9s12x
|
||||
bool "binutils 2.19.1"
|
||||
|
||||
config BR2_BINUTILS_VERSION_2_21
|
||||
config BR2_BINUTILS_VERSION_2_21_1
|
||||
depends !BR2_avr32 && !BR2_nios2 && !BR2_m9s12x
|
||||
bool "binutils 2.21"
|
||||
bool "binutils 2.21.1"
|
||||
endchoice
|
||||
|
||||
config BR2_BINUTILS_VERSION
|
||||
|
@ -38,7 +38,7 @@ config BR2_BINUTILS_VERSION
|
|||
default "2.18" if BR2_BINUTILS_VERSION_2_18
|
||||
default "2.19" if BR2_BINUTILS_VERSION_2_19
|
||||
default "2.19.1" if BR2_BINUTILS_VERSION_2_19_1
|
||||
default "2.21" if BR2_BINUTILS_VERSION_2_21
|
||||
default "2.21.1" if BR2_BINUTILS_VERSION_2_21_1
|
||||
|
||||
config BR2_EXTRA_BINUTILS_CONFIG_OPTIONS
|
||||
string "Additional binutils options"
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm
|
||||
index 085e690..2e76c01 100644
|
||||
--- a/gcc/config/arm/lib1funcs.asm
|
||||
+++ b/gcc/config/arm/lib1funcs.asm
|
||||
@@ -641,7 +641,7 @@ pc .req r15
|
||||
subhs \dividend, \dividend, \divisor, lsr #3
|
||||
orrhs \result, \result, \curbit, lsr #3
|
||||
cmp \dividend, #0 @ Early termination?
|
||||
- do_it hs, t
|
||||
+ do_it ne, t
|
||||
movnes \curbit, \curbit, lsr #4 @ No, any more bits to do?
|
||||
movne \divisor, \divisor, lsr #4
|
||||
bne 1b
|
Loading…
Reference in New Issue