Commit f0375c66 by Nick Clifton Committed by Nick Clifton

arm.c (is_load_address): Rename to...

* config/arm/arm.c (is_load_address): Rename to... (arm_memory_load_p) ... this
and make it check for SUBREGs and constant loads that will be converted into
loads from the minipool.
(is_cirrus_insn): Rename to ... (arm_cirrus_insn_p): ... this, for consistency.
Replace test of CIRRUS_NO with CIRRUS_NOT.
(cirrus_reorg): Use renamed functions.
(note_invalid_constants): Change from a void function to bool.  Add an extra
parameter, saying whether the fixups should be pushed.  Return true if fixups
are needed.
(arm_reorg): Use renamed functions.  Use INSN_P.  Replace test of CIRRUS_NO
with CIRRUS_NOT.
* config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that other floating point
co-processors can also affect this.
* config/arm/arm.md ("type" attribute): Add mav_farith and mav_dmult.  Replace
references to "cirrus_type" attribute with "type".
* config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
("cirrus_type" attribute): Delete - use "type" instead.
("cirrus" attribute): Replace 'no' with 'not' and 'yes' with 'normal'.

From-SVN: r63466
parent 0d446150
2003-02-26 Nick Clifton <nickc@redhat.com>
* config/arm/arm.c (is_load_address): Rename to...
(arm_memory_load_p) ... this and make it check for SUBREGs and
constant loads that will be converted into loads from the
minipool.
(is_cirrus_insn): Rename to ...
(arm_cirrus_insn_p): ... this, for consistency. Replace test
of CIRRUS_NO with CIRRUS_NOT.
(cirrus_reorg): Use renamed functions.
(note_invalid_constants): Change from a void function to bool.
Add an extra parameter, saying whether the fixups should be
pushed. Return true if fixups are needed.
(arm_reorg): Use renamed functions. Use INSN_P. Replace test
of CIRRUS_NO with CIRRUS_NOT.
* config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
other floating point co-processors can also affect this.
* config/arm/arm.md ("type" attribute): Add mav_farith and
mav_dmult. Replace references to "cirrus_type" attribute with
"type".
* config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
("cirrus_type" attribute): Delete - use "type" instead.
("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
'normal'.
Tue Feb 25 22:46:27 CET 2003 Jan Hubicka <jh@suse.cz>
* objc-act.c: Include cgraph.h
......
......@@ -698,8 +698,8 @@ extern int arm_is_6_or_7;
#endif
/* Define this if most significant word of doubles is the lowest numbered.
The rules are different based on whether or not we use FPA-format or
VFP-format doubles. */
The rules are different based on whether or not we use FPA-format,
VFP-format or some other floating point co-processor's format doubles. */
#define FLOAT_WORDS_BIG_ENDIAN (arm_float_words_big_endian ())
#define UNITS_PER_WORD 4
......
......@@ -167,9 +167,12 @@
; store2 store 2 words
; store3 store 3 words
; store4 store 4 words
; Additions for Cirrus Maverick co-processor:
; mav_farith Floating point arithmetic (4 cycle)
; mav_dmult Double multiplies (7 cycle)
;
(define_attr "type"
"normal,mult,block,float,fdivx,fdivd,fdivs,fmul,ffmul,farith,ffarith,float_em,f_load,f_store,f_mem_r,r_mem_f,f_2_r,r_2_f,call,load,store1,store2,store3,store4"
"normal,mult,block,float,fdivx,fdivd,fdivs,fmul,ffmul,farith,ffarith,float_em,f_load,f_store,f_mem_r,r_mem_f,f_2_r,r_2_f,call,load,store1,store2,store3,store4,mav_farith,mav_dmult"
(const_string "normal"))
; Load scheduling, set from the arm_ld_sched variable
......@@ -5576,11 +5579,6 @@
(set_attr "type" "f_2_r")]
)
;; There is no CCFPE or CCFP modes in the code below so we can have
;; one pattern to match either one. Besides, we're pretty sure we
;; have either CCFPE or CCFP because we made the patterns
;; (arm_gen_compare_reg).
;; Cirrus SF compare instruction
(define_insn "*cirrus_cmpsf"
[(set (reg:CCFP CC_REGNUM)
......@@ -5588,7 +5586,7 @@
(match_operand:SF 1 "cirrus_fp_register" "v")))]
"TARGET_ARM && TARGET_CIRRUS"
"cfcmps%?\\tr15, %V0, %V1"
[(set_attr "cirrus_type" "farith")
[(set_attr "type" "mav_farith")
(set_attr "cirrus" "compare")]
)
......@@ -5599,7 +5597,7 @@
(match_operand:DF 1 "cirrus_fp_register" "v")))]
"TARGET_ARM && TARGET_CIRRUS"
"cfcmpd%?\\tr15, %V0, %V1"
[(set_attr "cirrus_type" "farith")
[(set_attr "type" "mav_farith")
(set_attr "cirrus" "compare")]
)
......@@ -5620,18 +5618,7 @@
(match_operand:DI 1 "cirrus_fp_register" "v")))]
"TARGET_ARM && TARGET_CIRRUS"
"cfcmp64%?\\tr15, %V0, %V1"
[(set_attr "cirrus_type" "farith")
(set_attr "cirrus" "compare")]
)
;; Cirrus SI compare instruction
(define_insn "*cirrus_cmpsi_1"
[(set (reg:CC CC_REGNUM)
(compare:CC (match_operand:SI 0 "cirrus_fp_register" "v")
(match_operand:SI 1 "cirrus_fp_register" "v")))]
"TARGET_ARM && TARGET_CIRRUS && 0"
"cfcmp32%?\\tr15, %V0, %V1"
[(set_attr "cirrus_type" "farith")
[(set_attr "type" "mav_farith")
(set_attr "cirrus" "compare")]
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment