9
0
Fork 0

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:
patacongo 2012-04-09 17:21:30 +00:00
parent 7ec2eb659d
commit de418161af
11 changed files with 75 additions and 6 deletions

View File

@ -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

View File

@ -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=""

View File

@ -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=""

View File

@ -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=""

View File

@ -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 \

View File

@ -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"

View File

@ -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