+2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
+
+ * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
+ "xtab" and "sat". Move value "clz" from here to ...
+ (attriubte "type"): ... here.
+ (satsi_<SAT:code>): Delete "insn" attribute.
+ (satsi_<SAT:code>_shift): Likewise.
+ (arm_zero_extendqisi2addsi): Likewise.
+ (arm_extendqisi2addsi): Likewise.
+ (clzsi2): Update for attribute changes.
+ (rbitsi2): Likewise.
+ * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn" attribute.
+ (arm_usatsihi): Likewise.
+ * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
+
2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
* config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
"ssat%?\\t%0, #16, %2%S1"
[(set_attr "predicable" "yes")
(set_attr "predicable_short_it" "no")
- (set_attr "insn" "sat")
(set_attr "shift" "1")
(set_attr "type" "arlo_shift")])
"TARGET_INT_SIMD"
"usat%?\\t%0, #16, %1"
[(set_attr "predicable" "yes")
- (set_attr "predicable_short_it" "no")
- (set_attr "insn" "sat")])
+ (set_attr "predicable_short_it" "no")]
+)
;; scheduling information.
(define_attr "insn"
- "mov,mvn,clz,mrs,msr,xtab,sat,other"
+ "mov,mvn,other"
(const_string "other"))
; TYPE attribute is used to classify instructions for use in scheduling.
; block blockage insn, this blocks all functional units.
; branch branch.
; call subroutine call.
+; clz count leading zeros (CLZ).
; extend extend instruction (SXTB, SXTH, UXTB, UXTH).
; f_2_r transfer from float to core (no memory needed).
; f_cvt conversion between float and integral.
block,\
branch,\
call,\
- complex,\
+ clz,\
extend,\
f_2_r,\
f_cvt,\
else
return "usat%?\t%0, %1, %3";
}
- [(set_attr "predicable" "yes")
- (set_attr "insn" "sat")])
+ [(set_attr "predicable" "yes")]
+)
(define_insn "*satsi_<SAT:code>_shift"
[(set (match_operand:SI 0 "s_register_operand" "=r")
return "usat%?\t%0, %1, %4%S3";
}
[(set_attr "predicable" "yes")
- (set_attr "insn" "sat")
(set_attr "shift" "3")
(set_attr "type" "arlo_shift")])
\f
"uxtab%?\\t%0, %2, %1"
[(set_attr "predicable" "yes")
(set_attr "predicable_short_it" "no")
- (set_attr "insn" "xtab")
(set_attr "type" "arlo_shift")]
)
"TARGET_INT_SIMD"
"sxtab%?\\t%0, %2, %1"
[(set_attr "type" "arlo_shift")
- (set_attr "insn" "xtab")
(set_attr "predicable" "yes")
(set_attr "predicable_short_it" "no")]
)
"TARGET_32BIT && arm_arch5"
"clz%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "insn" "clz")])
+ (set_attr "type" "clz")])
(define_insn "rbitsi2"
[(set (match_operand:SI 0 "s_register_operand" "=r")
"TARGET_32BIT && arm_arch_thumb2"
"rbit%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "insn" "clz")])
+ (set_attr "type" "clz")])
(define_expand "ctzsi2"
[(set (match_operand:SI 0 "s_register_operand" "")