This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH ARM allow ldr [PC,...] in asm statements
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Richard dot Earnshaw at arm dot com
- Date: Tue, 26 Mar 2002 17:38:19 +0000
- Subject: PATCH ARM allow ldr [PC,...] in asm statements
- Organization: ARM Ltd.
- Reply-to: Richard dot Earnshaw at arm dot com
During the ARM/Thumb MD merge, we somehow lost the ability to support asm
statements loading from the constant pool. This patch restores the
previous code in this area.
2002-03-26 Richard Earnshaw <rearnsha@arm.com>
PR target/5621
* arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
"Add a pool_range attribute", which was lost during the ARM/Thumb
merge.
Index: arm.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.md,v
retrieving revision 1.98
diff -p -r1.98 arm.md
*** arm.md 2002/03/26 13:52:50 1.98
--- arm.md 2002/03/26 17:29:32
***************
*** 135,142 ****
(define_attr "neg_pool_range" "" (const_int 0))
; An assembler sequence may clobber the condition codes without us knowing.
(define_asm_attributes
! [(set_attr "conds" "clob")])
; TYPE attribute is used to detect floating point instructions which, if
; running on a co-processor can run in parallel with other, basic instructions
--- 135,146 ----
(define_attr "neg_pool_range" "" (const_int 0))
; An assembler sequence may clobber the condition codes without us knowing.
+ ; If such an insn references the pool, then we have no way of knowing how,
+ ; so use the most conservative value for pool_range.
(define_asm_attributes
! [(set_attr "conds" "clob")
! (set_attr "length" "4")
! (set_attr "pool_range" "250")])
; TYPE attribute is used to detect floating point instructions which, if
; running on a co-processor can run in parallel with other, basic instructions