This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH ARM allow ldr [PC,...] in asm statements



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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]