bug-gnu-utils
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]