[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Two minor gas bugs on ARM, one bug fix.
From: |
Nick Clifton |
Subject: |
Re: Two minor gas bugs on ARM, one bug fix. |
Date: |
21 Jun 2001 20:47:23 +0100 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 |
Hi Phil, Hi Frank,
> Right. In fact, I think we may as well remove support for "adrlCC"
> altogether.
> Something like this, I guess.
>
> p.
>
> 2001-06-19 Philip Blundell <address@hidden>
>
> * config/tc-arm.c (cplong_flag): Rename to long_flag. All uses
> updated.
> (insns): Remove entry for adrl. Add long_flag for adr.
> (do_adr): Handle `l' suffix.
> (do_adrl): Delete.
Seems to do the trick. I have checked it in.
I also updated the ARM testsuite to check that adrEQl will assemble,
and since I was fixing things I moved "msr CPSR_x, #0" back in as an
allowable instruction and fixes arm.exp to set the processor type when
perform architecture specific instruction tests. Like this:
Cheers
Nick
2001-06-21 Nick Clifton <address@hidden>
* gas/arm/arm.exp: Remove msr-bad.s test.
Select processor type for architecture specific instruction tests.
* gas/arm/adrl.s: Add adrEQl as a test.
* gas/arm/adrl.d: Adjusted expected output.
* gas/arm/arm7dm.s: Add "msr CPSR_x, #0" as a test instruction.
* gas/arm/msr-bad.s: Delete.
Index: gas/arm/adrl.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/adrl.d,v
retrieving revision 1.3
diff -p -r1.3 adrl.d
*** adrl.d 2001/05/24 20:02:15 1.3
--- adrl.d 2001/06/21 19:41:35
*************** Disassembly of section .text:
*** 9,18 ****
...
0+2000 <.*> e24f0008 sub r0, pc, #8 ; 0x8
0+2004 <.*> e2400c20 sub r0, r0, #8192 ; 0x2000
! 0+2008 <.*> e28f0018 add r0, pc, #24 ; 0x18
0+200c <.*> e2800c20 add r0, r0, #8192 ; 0x2000
0+2010 <.*> e24f0018 sub r0, pc, #24 ; 0x18
0+2014 <.*> e1a00000 nop \(mov r0,r0\)
! 0+2018 <.*> e28f0000 add r0, pc, #0 ; 0x0
0+201c <.*> e1a00000 nop \(mov r0,r0\)
...
--- 9,20 ----
...
0+2000 <.*> e24f0008 sub r0, pc, #8 ; 0x8
0+2004 <.*> e2400c20 sub r0, r0, #8192 ; 0x2000
! 0+2008 <.*> e28f0020 add r0, pc, #32 ; 0x20
0+200c <.*> e2800c20 add r0, r0, #8192 ; 0x2000
0+2010 <.*> e24f0018 sub r0, pc, #24 ; 0x18
0+2014 <.*> e1a00000 nop \(mov r0,r0\)
! 0+2018 <.*> e28f0008 add r0, pc, #8 ; 0x8
0+201c <.*> e1a00000 nop \(mov r0,r0\)
+ 0+2020 <.*> 028f0000 addeq r0, pc, #0 ; 0x0
+ 0+2024 <.*> e1a00000 nop \(mov r0,r0\)
...
Index: gas/arm/adrl.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/adrl.s,v
retrieving revision 1.2
diff -p -r1.2 adrl.s
*** adrl.s 2001/01/11 18:42:58 1.2
--- adrl.s 2001/06/21 19:41:35
*************** foo:
*** 9,14 ****
--- 9,15 ----
adrl r0, 1f
adrl r0, 2b
adrl r0, 2f
+ adrEQl r0, 2f
2:
.space 8200
1:
Index: gas/arm/arm.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/arm.exp,v
retrieving revision 1.5
diff -p -r1.5 arm.exp
*** arm.exp 2001/01/02 19:39:15 1.5
--- arm.exp 2001/06/21 19:41:35
***************
*** 4,21 ****
if {[istarget *arm*-*-*] || [istarget "xscale-*-*"]} then {
run_dump_test "inst"
! gas_test "arm3.s" "" $stdoptlist "Arm 3 instructions"
! gas_test "arm6.s" "" $stdoptlist "Arm 6 instructions"
! gas_test_error "msr-bad.s" "-marmv3" "immediate value cannot be used to
set this field"
! gas_test "arm7dm.s" "" $stdoptlist "Arm 7DM instructions"
run_dump_test "arm7t"
! gas_test "thumb.s" "" $stdoptlist "Thumb instructions"
! gas_test "arch4t.s" "" $stdoptlist "Arm architecture 4t instructions"
gas_test "copro.s" "" $stdoptlist "Co processor instructions"
--- 4,20 ----
if {[istarget *arm*-*-*] || [istarget "xscale-*-*"]} then {
run_dump_test "inst"
! gas_test "arm3.s" "-marm3" $stdoptlist "Arm 3 instructions"
! gas_test "arm6.s" "-marm6" $stdoptlist "Arm 6 instructions"
! gas_test "arm7dm.s" "-marm7dm" $stdoptlist "Arm 7DM instructions"
run_dump_test "arm7t"
! gas_test "thumb.s" "-marm7t" $stdoptlist "Thumb instructions"
! gas_test "arch4t.s" "-marmv4t" $stdoptlist "Arm architecture 4t
instructions"
gas_test "copro.s" "" $stdoptlist "Co processor instructions"
Index: gas/arm/arm7dm.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/arm7dm.s,v
retrieving revision 1.1.1.1
diff -p -r1.1.1.1 arm7dm.s
*** arm7dm.s 1999/05/03 07:28:48 1.1.1.1
--- arm7dm.s 2001/06/21 19:41:35
***************
*** 10,12 ****
--- 10,14 ----
smulls r1, r0, r9, r11
umlaleqs r2, r9, r4, r9
smlalge r14, r10, r8, r14
+
+ msr CPSR_x, #0 @ This used to be illegal, but rev 2 of the ARM
ARM allows it.