(define_attr "mode2" "unknown,none,QI,HI,SI,DI,TI,SF,DF,TF"
(const_string "unknown"))
-; The "v8type" attribute is used to for fine grained classification of
-; AArch64 instructions. This table briefly explains the meaning of each type.
-
-; adc add/subtract with carry.
-; adcs add/subtract with carry (setting condition flags).
-; adr calculate address.
-; alu simple alu instruction (no memory or fp regs access).
-; alu_ext simple alu instruction (sign/zero-extended register).
-; alu_shift simple alu instruction, with a source operand shifted by a constant.
-; alus simple alu instruction (setting condition flags).
-; alus_ext simple alu instruction (sign/zero-extended register, setting condition flags).
-; alus_shift simple alu instruction, with a source operand shifted by a constant (setting condition flags).
-; bfm bitfield move operation.
-; branch branch.
-; call subroutine call.
-; ccmp conditional compare.
-; clz count leading zeros/sign bits.
-; csel conditional select.
-; dmb data memory barrier.
-; extend sign/zero-extend (specialised bitfield move).
-; extr extract register-sized bitfield encoding.
-; fpsimd_load load single floating point / simd scalar register from memory.
-; fpsimd_load2 load pair of floating point / simd scalar registers from memory.
-; fpsimd_store store single floating point / simd scalar register to memory.
-; fpsimd_store2 store pair floating point / simd scalar registers to memory.
-; fadd floating point add/sub.
-; fccmp floating point conditional compare.
-; fcmp floating point comparison.
-; fconst floating point load immediate.
-; fcsel floating point conditional select.
-; fcvt floating point convert (float to float).
-; fcvtf2i floating point convert (float to integer).
-; fcvti2f floating point convert (integer to float).
-; fdiv floating point division operation.
-; ffarith floating point abs, neg or cpy.
-; fmadd floating point multiply-add/sub.
-; fminmax floating point min/max.
-; fmov floating point move (float to float).
-; fmovf2i floating point move (float to integer).
-; fmovi2f floating point move (integer to float).
-; fmul floating point multiply.
-; frint floating point round to integral.
-; fsqrt floating point square root.
-; load_acq load-acquire.
-; load load single general register from memory
-; load2 load pair of general registers from memory
-; logic logical operation (register).
-; logic_imm and/or/xor operation (immediate).
-; logic_shift logical operation with shift.
-; logics logical operation (register, setting condition flags).
-; logics_imm and/or/xor operation (immediate, setting condition flags).
-; logics_shift logical operation with shift (setting condition flags).
-; madd integer multiply-add/sub.
-; maddl widening integer multiply-add/sub.
-; misc miscellaneous - any type that doesn't fit into the rest.
-; move integer move operation.
-; move2 double integer move operation.
-; movk move 16-bit immediate with keep.
-; movz move 16-bit immmediate with zero/one.
-; mrs system/special register move.
-; mulh 64x64 to 128-bit multiply (high part).
-; mull widening multiply.
-; mult integer multiply instruction.
-; prefetch memory prefetch.
-; rbit reverse bits.
-; rev reverse bytes.
-; sdiv integer division operation (signed).
-; shift variable shift operation.
-; shift_imm immediate shift operation (specialised bitfield move).
-; store_rel store-release.
-; store store single general register to memory.
-; store2 store pair of general registers to memory.
-; udiv integer division operation (unsigned).
-
-(define_attr "v8type"
- "adc,\
- adcs,\
- adr,\
- alu,\
- alu_ext,\
- alu_shift,\
- alus,\
- alus_ext,\
- alus_shift,\
- bfm,\
- branch,\
- call,\
- ccmp,\
- clz,\
- csel,\
- dmb,\
- div,\
- div64,\
- extend,\
- extr,\
- fpsimd_load,\
- fpsimd_load2,\
- fpsimd_store2,\
- fpsimd_store,\
- fadd,\
- fccmp,\
- fcvt,\
- fcvtf2i,\
- fcvti2f,\
- fcmp,\
- fconst,\
- fcsel,\
- fdiv,\
- ffarith,\
- fmadd,\
- fminmax,\
- fmov,\
- fmovf2i,\
- fmovi2f,\
- fmul,\
- frint,\
- fsqrt,\
- load_acq,\
- load1,\
- load2,\
- logic,\
- logic_imm,\
- logic_shift,\
- logics,\
- logics_imm,\
- logics_shift,\
- madd,\
- maddl,\
- misc,\
- move,\
- move2,\
- movk,\
- movz,\
- mrs,\
- mulh,\
- mull,\
- mult,\
- prefetch,\
- rbit,\
- rev,\
- sdiv,\
- shift,\
- shift_imm,\
- store_rel,\
- store1,\
- store2,\
- udiv"
- (const_string "alu"))
-
; The "type" attribute is is included here from AArch32 backend to be able
; to share pipeline descriptions.
(include "../arm/types.md")
[(set (pc) (match_operand:DI 0 "register_operand" "r"))]
""
"br\\t%0"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")]
+ [(set_attr "type" "branch")]
)
(define_insn "jump"
[(set (pc) (label_ref (match_operand 0 "" "")))]
""
"b\\t%l0"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")]
+ [(set_attr "type" "branch")]
)
(define_expand "cbranch<mode>4"
(pc)))]
""
"b%m0\\t%l2"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")]
+ [(set_attr "type" "branch")]
)
(define_expand "casesi"
return aarch64_output_casesi (operands);
"
[(set_attr "length" "16")
- (set_attr "v8type" "branch")
(set_attr "type" "branch")]
)
[(unspec[(const_int 0)] UNSPEC_NOP)]
""
"nop"
- [(set_attr "v8type" "misc")]
+ [(set_attr "type" "no_insn")]
)
(define_expand "prologue"
[(return)]
""
"ret"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")]
+ [(set_attr "type" "branch")]
)
(define_insn "eh_return"
UNSPECV_EH_RETURN)]
""
"#"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")]
+ [(set_attr "type" "branch")]
)
(pc)))]
""
"<cbz>\\t%<w>0, %l1"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")]
+ [(set_attr "type" "branch")]
)
return \"ubfx\\t%<w>3, %<w>0, %1, #1\;<cbz>\\t%<w>3, %l2\";
return \"<tbz>\\t%<w>0, %1, %l2\";
"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")
+ [(set_attr "type" "branch")
(set_attr "mode" "<MODE>")
(set (attr "length")
(if_then_else (and (ge (minus (match_dup 2) (pc)) (const_int -32768))
return \"ubfx\\t%<w>2, %<w>0, <sizem1>, #1\;<cbz>\\t%<w>2, %l1\";
return \"<tbz>\\t%<w>0, <sizem1>, %l1\";
"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")
+ [(set_attr "type" "branch")
(set_attr "mode" "<MODE>")
(set (attr "length")
(if_then_else (and (ge (minus (match_dup 1) (pc)) (const_int -32768))
(clobber (reg:DI LR_REGNUM))]
""
"blr\\t%0"
- [(set_attr "v8type" "call")
- (set_attr "type" "call")]
+ [(set_attr "type" "call")]
)
(define_insn "*call_symbol"
"GET_CODE (operands[0]) == SYMBOL_REF
&& !aarch64_is_long_call_p (operands[0])"
"bl\\t%a0"
- [(set_attr "v8type" "call")
- (set_attr "type" "call")]
+ [(set_attr "type" "call")]
)
(define_expand "call_value"
(clobber (reg:DI LR_REGNUM))]
""
"blr\\t%1"
- [(set_attr "v8type" "call")
- (set_attr "type" "call")]
+ [(set_attr "type" "call")]
)
"GET_CODE (operands[1]) == SYMBOL_REF
&& !aarch64_is_long_call_p (operands[1])"
"bl\\t%a1"
- [(set_attr "v8type" "call")
- (set_attr "type" "call")]
+ [(set_attr "type" "call")]
)
(define_expand "sibcall"
(use (match_operand 2 "" ""))]
"GET_CODE (operands[0]) == SYMBOL_REF"
"b\\t%a0"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")]
+ [(set_attr "type" "branch")]
)
(use (match_operand 3 "" ""))]
"GET_CODE (operands[1]) == SYMBOL_REF"
"b\\t%a1"
- [(set_attr "v8type" "branch")
- (set_attr "type" "branch")]
+ [(set_attr "type" "branch")]
)
;; Call subroutine returning any type.
gcc_unreachable ();
}
}
- [(set_attr "v8type" "move,alu,alu,load1,load1,store1,store1,*,*,*")
- (set_attr "type" "mov_reg,mov_imm,mov_imm,load1,load1,store1,store1,\
+ [(set_attr "type" "mov_reg,mov_imm,mov_imm,load1,load1,store1,store1,\
neon_from_gp<q>,neon_from_gp<q>, neon_dup")
(set_attr "simd" "*,*,yes,*,*,*,*,yes,yes,yes")
(set_attr "mode" "<MODE>")]
fmov\\t%s0, %w1
fmov\\t%w0, %s1
fmov\\t%s0, %s1"
- [(set_attr "v8type" "move,move,move,alu,load1,load1,store1,store1,adr,adr,fmov,fmov,fmov")
- (set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,load1,load1,store1,store1,\
+ [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,load1,load1,store1,store1,\
adr,adr,fmov,fmov,fmov")
(set_attr "mode" "SI")
(set_attr "fp" "*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes")]
fmov\\t%x0, %d1
fmov\\t%d0, %d1
movi\\t%d0, %1"
- [(set_attr "v8type" "move,move,move,alu,load1,load1,store1,store1,adr,adr,fmov,fmov,fmov,fmov")
- (set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,load1,load1,store1,store1,\
+ [(set_attr "type" "mov_reg,mov_reg,mov_reg,mov_imm,load1,load1,store1,store1,\
adr,adr,fmov,fmov,fmov,fmov")
(set_attr "mode" "DI")
(set_attr "fp" "*,*,*,*,*,yes,*,yes,*,*,yes,yes,yes,*")
"UINTVAL (operands[1]) < GET_MODE_BITSIZE (<MODE>mode)
&& UINTVAL (operands[1]) % 16 == 0"
"movk\\t%<w>0, %X2, lsl %1"
- [(set_attr "v8type" "movk")
- (set_attr "type" "mov_imm")
+ [(set_attr "type" "mov_imm")
(set_attr "mode" "<MODE>")]
)
stp\\txzr, xzr, %0
ldr\\t%q0, %1
str\\t%q1, %0"
- [(set_attr "v8type" "move2,fmovi2f,fmovf2i,*, \
- load2,store2,store2,fpsimd_load,fpsimd_store")
- (set_attr "type" "multiple,f_mcr,f_mrc,neon_logic_q, \
+ [(set_attr "type" "multiple,f_mcr,f_mrc,neon_logic_q, \
load2,store2,store2,f_loadd,f_stored")
(set_attr "mode" "DI,DI,DI,TI,DI,DI,DI,TI,TI")
(set_attr "length" "8,8,8,4,4,4,4,4,4")
ldr\\t%w0, %1
str\\t%w1, %0
mov\\t%w0, %w1"
- [(set_attr "v8type" "fmovi2f,fmovf2i,\
- fmov,fconst,fpsimd_load,\
- fpsimd_store,fpsimd_load,fpsimd_store,fmov")
- (set_attr "type" "f_mcr,f_mrc,fmov,fconsts,\
+ [(set_attr "type" "f_mcr,f_mrc,fmov,fconsts,\
f_loads,f_stores,f_loads,f_stores,fmov")
(set_attr "mode" "SF")]
)
ldr\\t%x0, %1
str\\t%x1, %0
mov\\t%x0, %x1"
- [(set_attr "v8type" "fmovi2f,fmovf2i,\
- fmov,fconst,fpsimd_load,\
- fpsimd_store,fpsimd_load,fpsimd_store,move")
- (set_attr "type" "f_mcr,f_mrc,fmov,fconstd,\
+ [(set_attr "type" "f_mcr,f_mrc,fmov,fconstd,\
f_loadd,f_stored,f_loadd,f_stored,mov_reg")
(set_attr "mode" "DF")]
)
str\\t%q1, %0
ldp\\t%0, %H0, %1
stp\\t%1, %H1, %0"
- [(set_attr "v8type" "logic,move2,fmovi2f,fmovf2i,fconst,fconst,fpsimd_load,fpsimd_store,fpsimd_load2,fpsimd_store2")
- (set_attr "type" "logic_reg,multiple,f_mcr,f_mrc,fconstd,fconstd,\
+ [(set_attr "type" "logic_reg,multiple,f_mcr,f_mrc,fconstd,fconstd,\
f_loadd,f_stored,neon_load1_2reg,neon_store1_2reg")
(set_attr "mode" "DF,DF,DF,DF,DF,DF,TF,TF,DF,DF")
(set_attr "length" "4,8,8,8,4,4,4,4,4,4")
XEXP (operands[1], 0),
GET_MODE_SIZE (<MODE>mode)))"
"ldp\\t%<w>0, %<w>2, %1"
- [(set_attr "v8type" "load2")
- (set_attr "type" "load2")
+ [(set_attr "type" "load2")
(set_attr "mode" "<MODE>")]
)
XEXP (operands[0], 0),
GET_MODE_SIZE (<MODE>mode)))"
"stp\\t%<w>1, %<w>3, %0"
- [(set_attr "v8type" "store2")
- (set_attr "type" "store2")
+ [(set_attr "type" "store2")
(set_attr "mode" "<MODE>")]
)
XEXP (operands[1], 0),
GET_MODE_SIZE (<MODE>mode)))"
"ldp\\t%<w>0, %<w>2, %1"
- [(set_attr "v8type" "fpsimd_load2")
- (set_attr "type" "neon_load1_2reg<q>")
+ [(set_attr "type" "neon_load1_2reg<q>")
(set_attr "mode" "<MODE>")]
)
XEXP (operands[0], 0),
GET_MODE_SIZE (<MODE>mode)))"
"stp\\t%<w>1, %<w>3, %0"
- [(set_attr "v8type" "fpsimd_store2")
- (set_attr "type" "neon_store1_2reg<q>")
+ [(set_attr "type" "neon_store1_2reg<q>")
(set_attr "mode" "<MODE>")]
)
(match_operand:P 5 "const_int_operand" "n"))))])]
"INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (<GPI:MODE>mode)"
"ldp\\t%<w>2, %<w>3, [%1], %4"
- [(set_attr "v8type" "load2")
- (set_attr "type" "load2")
+ [(set_attr "type" "load2")
(set_attr "mode" "<GPI:MODE>")]
)
(match_operand:GPI 3 "register_operand" "r"))])]
"INTVAL (operands[5]) == INTVAL (operands[4]) + GET_MODE_SIZE (<GPI:MODE>mode)"
"stp\\t%<w>2, %<w>3, [%0, %4]!"
- [(set_attr "v8type" "store2")
- (set_attr "type" "store2")
+ [(set_attr "type" "store2")
(set_attr "mode" "<GPI:MODE>")]
)
"@
sxtw\t%0, %w1
ldrsw\t%0, %1"
- [(set_attr "v8type" "extend,load1")
- (set_attr "type" "extend,load1")
+ [(set_attr "type" "extend,load1")
(set_attr "mode" "DI")]
)
"@
uxtw\t%0, %w1
ldr\t%w0, %1"
- [(set_attr "v8type" "extend,load1")
- (set_attr "type" "extend,load1")
+ [(set_attr "type" "extend,load1")
(set_attr "mode" "DI")]
)
"@
sxt<SHORT:size>\t%<GPI:w>0, %w1
ldrs<SHORT:size>\t%<GPI:w>0, %1"
- [(set_attr "v8type" "extend,load1")
- (set_attr "type" "extend,load1")
+ [(set_attr "type" "extend,load1")
(set_attr "mode" "<GPI:MODE>")]
)
uxt<SHORT:size>\t%<GPI:w>0, %w1
ldr<SHORT:size>\t%w0, %1
ldr\t%<SHORT:size>0, %1"
- [(set_attr "v8type" "extend,load1,load1")
- (set_attr "type" "extend,load1,load1")
+ [(set_attr "type" "extend,load1,load1")
(set_attr "mode" "<GPI:MODE>")]
)
"@
<su>xtb\t%w0, %w1
<ldrxt>b\t%w0, %1"
- [(set_attr "v8type" "extend,load1")
- (set_attr "type" "extend,load1")
+ [(set_attr "type" "extend,load1")
(set_attr "mode" "HI")]
)
add\\t%w0, %w1, %2
add\\t%w0, %w1, %w2
sub\\t%w0, %w1, #%n2"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_imm,alu_reg,alu_imm")
+ [(set_attr "type" "alu_imm,alu_reg,alu_imm")
(set_attr "mode" "SI")]
)
add\\t%w0, %w1, %2
add\\t%w0, %w1, %w2
sub\\t%w0, %w1, #%n2"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_imm,alu_reg,alu_imm")
+ [(set_attr "type" "alu_imm,alu_reg,alu_imm")
(set_attr "mode" "SI")]
)
add\\t%x0, %x1, %x2
sub\\t%x0, %x1, #%n2
add\\t%d0, %d1, %d2"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_imm,alu_reg,alu_imm,alu_reg")
+ [(set_attr "type" "alu_imm,alu_reg,alu_imm,alu_reg")
(set_attr "mode" "DI")
(set_attr "simd" "*,*,*,yes")]
)
adds\\t%<w>0, %<w>1, %<w>2
adds\\t%<w>0, %<w>1, %<w>2
subs\\t%<w>0, %<w>1, #%n2"
- [(set_attr "v8type" "alus")
- (set_attr "type" "alus_reg,alus_imm,alus_imm")
+ [(set_attr "type" "alus_reg,alus_imm,alus_imm")
(set_attr "mode" "<MODE>")]
)
adds\\t%w0, %w1, %w2
adds\\t%w0, %w1, %w2
subs\\t%w0, %w1, #%n2"
- [(set_attr "v8type" "alus")
- (set_attr "type" "alus_reg,alus_imm,alus_imm")
+ [(set_attr "type" "alus_reg,alus_imm,alus_imm")
(set_attr "mode" "SI")]
)
(match_dup 3)))]
""
"adds\\t%<w>0, %<w>3, %<w>1, lsl %p2"
- [(set_attr "v8type" "alus_shift")
- (set_attr "type" "alus_shift_imm")
+ [(set_attr "type" "alus_shift_imm")
(set_attr "mode" "<MODE>")]
)
(mult:GPI (match_dup 2) (match_dup 3))))]
""
"subs\\t%<w>0, %<w>1, %<w>2, lsl %p3"
- [(set_attr "v8type" "alus_shift")
- (set_attr "type" "alus_shift_imm")
+ [(set_attr "type" "alus_shift_imm")
(set_attr "mode" "<MODE>")]
)
(plus:GPI (ANY_EXTEND:GPI (match_dup 1)) (match_dup 2)))]
""
"adds\\t%<GPI:w>0, %<GPI:w>2, %<GPI:w>1, <su>xt<ALLX:size>"
- [(set_attr "v8type" "alus_ext")
- (set_attr "type" "alus_ext")
+ [(set_attr "type" "alus_ext")
(set_attr "mode" "<GPI:MODE>")]
)
(minus:GPI (match_dup 1) (ANY_EXTEND:GPI (match_dup 2))))]
""
"subs\\t%<GPI:w>0, %<GPI:w>1, %<GPI:w>2, <su>xt<ALLX:size>"
- [(set_attr "v8type" "alus_ext")
- (set_attr "type" "alus_ext")
+ [(set_attr "type" "alus_ext")
(set_attr "mode" "<GPI:MODE>")]
)
(match_dup 4)))]
"aarch64_is_extend_from_extract (<MODE>mode, operands[2], operands[3])"
"adds\\t%<w>0, %<w>4, %<w>1, <su>xt%e3 %p2"
- [(set_attr "v8type" "alus_ext")
- (set_attr "type" "alus_ext")
+ [(set_attr "type" "alus_ext")
(set_attr "mode" "<MODE>")]
)
(const_int 0))))]
"aarch64_is_extend_from_extract (<MODE>mode, operands[2], operands[3])"
"subs\\t%<w>0, %<w>4, %<w>1, <su>xt%e3 %p2"
- [(set_attr "v8type" "alus_ext")
- (set_attr "type" "alus_ext")
+ [(set_attr "type" "alus_ext")
(set_attr "mode" "<MODE>")]
)
cmn\\t%<w>0, %<w>1
cmn\\t%<w>0, %<w>1
cmp\\t%<w>0, #%n1"
- [(set_attr "v8type" "alus")
- (set_attr "type" "alus_reg,alus_imm,alus_imm")
+ [(set_attr "type" "alus_reg,alus_imm,alus_imm")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPI 1 "register_operand" "r")))]
""
"cmn\\t%<w>1, %<w>0"
- [(set_attr "v8type" "alus")
- (set_attr "type" "alus_reg")
+ [(set_attr "type" "alus_reg")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPI 3 "register_operand" "r")))]
""
"add\\t%<w>0, %<w>3, %<w>1, <shift> %2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 3 "register_operand" "r"))))]
""
"add\\t%w0, %w3, %w1, <shift> %2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "SI")]
)
(match_operand:GPI 3 "register_operand" "r")))]
""
"add\\t%<w>0, %<w>3, %<w>1, lsl %p2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPI 2 "register_operand" "r")))]
""
"add\\t%<GPI:w>0, %<GPI:w>2, %<GPI:w>1, <su>xt<ALLX:size>"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "<GPI:MODE>")]
)
(match_operand:GPI 2 "register_operand" "r"))))]
""
"add\\t%w0, %w2, %w1, <su>xt<SHORT:size>"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "SI")]
)
(match_operand:GPI 3 "register_operand" "r")))]
""
"add\\t%<GPI:w>0, %<GPI:w>3, %<GPI:w>1, <su>xt<ALLX:size> %2"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "<GPI:MODE>")]
)
(match_operand:SI 3 "register_operand" "r"))))]
""
"add\\t%w0, %w3, %w1, <su>xt<SHORT:size> %2"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "SI")]
)
(match_operand:GPI 3 "register_operand" "r")))]
""
"add\\t%<GPI:w>0, %<GPI:w>3, %<GPI:w>1, <su>xt<ALLX:size> %p2"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "<GPI:MODE>")]
)
(match_operand:SI 3 "register_operand" "r"))))]
""
"add\\t%w0, %w3, %w1, <su>xt<SHORT:size> %p2"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "SI")]
)
(match_operand:GPI 4 "register_operand" "r")))]
"aarch64_is_extend_from_extract (<MODE>mode, operands[2], operands[3])"
"add\\t%<w>0, %<w>4, %<w>1, <su>xt%e3 %p2"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 4 "register_operand" "r"))))]
"aarch64_is_extend_from_extract (SImode, operands[2], operands[3])"
"add\\t%w0, %w4, %w1, <su>xt%e3 %p2"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "SI")]
)
(match_operand:GPI 2 "register_operand" "r"))))]
""
"adc\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 2 "register_operand" "r")))))]
""
"adc\\t%w0, %w1, %w2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "SI")]
)
(geu:GPI (reg:CC CC_REGNUM) (const_int 0))))]
""
"adc\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "<MODE>")]
)
(geu:SI (reg:CC CC_REGNUM) (const_int 0)))))]
""
"adc\\t%w0, %w1, %w2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "SI")]
)
(match_operand:GPI 2 "register_operand" "r")))]
""
"adc\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 2 "register_operand" "r"))))]
""
"adc\\t%w0, %w1, %w2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "SI")]
)
(match_operand:GPI 1 "register_operand" "r")))]
""
"adc\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 1 "register_operand" "r"))))]
""
"adc\\t%w0, %w1, %w2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "SI")]
)
operands[3] = GEN_INT (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),
INTVAL (operands[3])));
return \"add\t%<w>0, %<w>4, %<w>1, uxt%e3 %p2\";"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "<MODE>")]
)
operands[3] = GEN_INT (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),
INTVAL (operands[3])));
return \"add\t%w0, %w4, %w1, uxt%e3 %p2\";"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "SI")]
)
(match_operand:SI 2 "register_operand" "r")))]
""
"sub\\t%w0, %w1, %w2"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_reg")
+ [(set_attr "type" "alu_reg")
(set_attr "mode" "SI")]
)
(match_operand:SI 2 "register_operand" "r"))))]
""
"sub\\t%w0, %w1, %w2"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_reg")
+ [(set_attr "type" "alu_reg")
(set_attr "mode" "SI")]
)
"@
sub\\t%x0, %x1, %x2
sub\\t%d0, %d1, %d2"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_reg")
+ [(set_attr "type" "alu_reg, neon_sub")
(set_attr "mode" "DI")
(set_attr "simd" "*,yes")]
)
(minus:GPI (match_dup 1) (match_dup 2)))]
""
"subs\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "alus")
- (set_attr "type" "alus_reg")
+ [(set_attr "type" "alus_reg")
(set_attr "mode" "<MODE>")]
)
(zero_extend:DI (minus:SI (match_dup 1) (match_dup 2))))]
""
"subs\\t%w0, %w1, %w2"
- [(set_attr "v8type" "alus")
- (set_attr "type" "alus_reg")
+ [(set_attr "type" "alus_reg")
(set_attr "mode" "SI")]
)
(match_operand:QI 2 "aarch64_shift_imm_<mode>" "n"))))]
""
"sub\\t%<w>0, %<w>3, %<w>1, <shift> %2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "<MODE>")]
)
(match_operand:QI 2 "aarch64_shift_imm_si" "n")))))]
""
"sub\\t%w0, %w3, %w1, <shift> %2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "SI")]
)
(match_operand:QI 2 "aarch64_pwr_2_<mode>" "n"))))]
""
"sub\\t%<w>0, %<w>3, %<w>1, lsl %p2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "<MODE>")]
)
(match_operand:QI 2 "aarch64_pwr_2_si" "n")))))]
""
"sub\\t%w0, %w3, %w1, lsl %p2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "SI")]
)
(match_operand:ALLX 2 "register_operand" "r"))))]
""
"sub\\t%<GPI:w>0, %<GPI:w>1, %<GPI:w>2, <su>xt<ALLX:size>"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "<GPI:MODE>")]
)
(match_operand:SHORT 2 "register_operand" "r")))))]
""
"sub\\t%w0, %w1, %w2, <su>xt<SHORT:size>"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "SI")]
)
(match_operand 3 "aarch64_imm3" "Ui3"))))]
""
"sub\\t%<GPI:w>0, %<GPI:w>1, %<GPI:w>2, <su>xt<ALLX:size> %3"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "<GPI:MODE>")]
)
(match_operand 3 "aarch64_imm3" "Ui3")))))]
""
"sub\\t%w0, %w1, %w2, <su>xt<SHORT:size> %3"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "SI")]
)
(const_int 0))))]
"aarch64_is_extend_from_extract (<MODE>mode, operands[2], operands[3])"
"sub\\t%<w>0, %<w>4, %<w>1, <su>xt%e3 %p2"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "<MODE>")]
)
(const_int 0)))))]
"aarch64_is_extend_from_extract (SImode, operands[2], operands[3])"
"sub\\t%w0, %w4, %w1, <su>xt%e3 %p2"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "SI")]
)
(match_operand:GPI 2 "register_operand" "r")))]
""
"sbc\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 2 "register_operand" "r"))))]
""
"sbc\\t%w0, %w1, %w2"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "SI")]
)
operands[3] = GEN_INT (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),
INTVAL (operands[3])));
return \"sub\t%<w>0, %<w>4, %<w>1, uxt%e3 %p2\";"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "<MODE>")]
)
operands[3] = GEN_INT (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),
INTVAL (operands[3])));
return \"sub\t%w0, %w4, %w1, uxt%e3 %p2\";"
- [(set_attr "v8type" "alu_ext")
- (set_attr "type" "alu_ext")
+ [(set_attr "type" "alu_ext")
(set_attr "mode" "SI")]
)
GEN_INT (63)))));
DONE;
}
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_reg")
+ [(set_attr "type" "alu_reg")
(set_attr "mode" "DI")]
)
"@
neg\\t%<w>0, %<w>1
neg\\t%<rtn>0<vas>, %<rtn>1<vas>"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_reg, neon_neg<q>")
+ [(set_attr "type" "alu_reg, neon_neg<q>")
(set_attr "simd" "*,yes")
(set_attr "mode" "<MODE>")]
)
(zero_extend:DI (neg:SI (match_operand:SI 1 "register_operand" "r"))))]
""
"neg\\t%w0, %w1"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_reg")
+ [(set_attr "type" "alu_reg")
(set_attr "mode" "SI")]
)
(match_operand:GPI 1 "register_operand" "r")))]
""
"ngc\\t%<w>0, %<w>1"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 1 "register_operand" "r"))))]
""
"ngc\\t%w0, %w1"
- [(set_attr "v8type" "adc")
- (set_attr "type" "adc_reg")
+ [(set_attr "type" "adc_reg")
(set_attr "mode" "SI")]
)
(neg:GPI (match_dup 1)))]
""
"negs\\t%<w>0, %<w>1"
- [(set_attr "v8type" "alus")
- (set_attr "type" "alus_reg")
+ [(set_attr "type" "alus_reg")
(set_attr "mode" "<MODE>")]
)
(zero_extend:DI (neg:SI (match_dup 1))))]
""
"negs\\t%w0, %w1"
- [(set_attr "v8type" "alus")
- (set_attr "type" "alus_reg")
+ [(set_attr "type" "alus_reg")
(set_attr "mode" "SI")]
)
(neg:GPI (ASHIFT:GPI (match_dup 1) (match_dup 2))))]
""
"negs\\t%<w>0, %<w>1, <shift> %2"
- [(set_attr "v8type" "alus_shift")
- (set_attr "type" "alus_shift_imm")
+ [(set_attr "type" "alus_shift_imm")
(set_attr "mode" "<MODE>")]
)
(match_operand:QI 2 "aarch64_shift_imm_<mode>" "n"))))]
""
"neg\\t%<w>0, %<w>1, <shift> %2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "<MODE>")]
)
(match_operand:QI 2 "aarch64_shift_imm_si" "n")))))]
""
"neg\\t%w0, %w1, <shift> %2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "SI")]
)
(match_operand:QI 2 "aarch64_pwr_2_<mode>" "n"))))]
""
"neg\\t%<w>0, %<w>1, lsl %p2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "<MODE>")]
)
(match_operand:QI 2 "aarch64_pwr_2_si" "n")))))]
""
"neg\\t%w0, %w1, lsl %p2"
- [(set_attr "v8type" "alu_shift")
- (set_attr "type" "alu_shift_imm")
+ [(set_attr "type" "alu_shift_imm")
(set_attr "mode" "SI")]
)
(match_operand:GPI 2 "register_operand" "r")))]
""
"mul\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "mult")
- (set_attr "type" "mul")
+ [(set_attr "type" "mul")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 2 "register_operand" "r"))))]
""
"mul\\t%w0, %w1, %w2"
- [(set_attr "v8type" "mult")
- (set_attr "type" "mul")
+ [(set_attr "type" "mul")
(set_attr "mode" "SI")]
)
(match_operand:GPI 3 "register_operand" "r")))]
""
"madd\\t%<w>0, %<w>1, %<w>2, %<w>3"
- [(set_attr "v8type" "madd")
- (set_attr "type" "mla")
+ [(set_attr "type" "mla")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 3 "register_operand" "r"))))]
""
"madd\\t%w0, %w1, %w2, %w3"
- [(set_attr "v8type" "madd")
- (set_attr "type" "mla")
+ [(set_attr "type" "mla")
(set_attr "mode" "SI")]
)
""
"msub\\t%<w>0, %<w>1, %<w>2, %<w>3"
- [(set_attr "v8type" "madd")
- (set_attr "type" "mla")
+ [(set_attr "type" "mla")
(set_attr "mode" "<MODE>")]
)
""
"msub\\t%w0, %w1, %w2, %w3"
- [(set_attr "v8type" "madd")
- (set_attr "type" "mla")
+ [(set_attr "type" "mla")
(set_attr "mode" "SI")]
)
""
"mneg\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "mult")
- (set_attr "type" "mul")
+ [(set_attr "type" "mul")
(set_attr "mode" "<MODE>")]
)
""
"mneg\\t%w0, %w1, %w2"
- [(set_attr "v8type" "mult")
- (set_attr "type" "mul")
+ [(set_attr "type" "mul")
(set_attr "mode" "SI")]
)
(ANY_EXTEND:DI (match_operand:SI 2 "register_operand" "r"))))]
""
"<su>mull\\t%0, %w1, %w2"
- [(set_attr "v8type" "mull")
- (set_attr "type" "<su>mull")
+ [(set_attr "type" "<su>mull")
(set_attr "mode" "DI")]
)
(match_operand:DI 3 "register_operand" "r")))]
""
"<su>maddl\\t%0, %w1, %w2, %3"
- [(set_attr "v8type" "maddl")
- (set_attr "type" "<su>mlal")
+ [(set_attr "type" "<su>mlal")
(set_attr "mode" "DI")]
)
(match_operand:SI 2 "register_operand" "r")))))]
""
"<su>msubl\\t%0, %w1, %w2, %3"
- [(set_attr "v8type" "maddl")
- (set_attr "type" "<su>mlal")
+ [(set_attr "type" "<su>mlal")
(set_attr "mode" "DI")]
)
(ANY_EXTEND:DI (match_operand:SI 2 "register_operand" "r"))))]
""
"<su>mnegl\\t%0, %w1, %w2"
- [(set_attr "v8type" "mull")
- (set_attr "type" "<su>mull")
+ [(set_attr "type" "<su>mull")
(set_attr "mode" "DI")]
)
(const_int 64))))]
""
"<su>mulh\\t%0, %1, %2"
- [(set_attr "v8type" "mulh")
- (set_attr "type" "<su>mull")
+ [(set_attr "type" "<su>mull")
(set_attr "mode" "DI")]
)
(match_operand:GPI 2 "register_operand" "r")))]
""
"<su>div\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "<su>div")
- (set_attr "type" "<su>div")
+ [(set_attr "type" "<su>div")
(set_attr "mode" "<MODE>")]
)
(match_operand:SI 2 "register_operand" "r"))))]
""
"<su>div\\t%w0, %w1, %w2"
- [(set_attr "v8type" "<su>div")
- (set_attr "type" "<su>div")
+ [(set_attr "type" "<su>div")
(set_attr "mode" "SI")]
)
cmp\\t%<w>0, %<w>1
cmp\\t%<w>0, %<w>1
cmn\\t%<w>0, #%n1"
- [(set_attr "v8type" "alus")
- (set_attr "type" "alus_reg,alus_imm,alus_imm")
+ [(set_attr "type" "alus_reg,alus_imm,alus_imm")
(set_attr "mode" "<MODE>")]
)
"@
fcmp\\t%<s>0, #0.0
fcmp\\t%<s>0, %<s>1"
- [(set_attr "v8type" "fcmp")
- (set_attr "type" "fcmp<s>")
+ [(set_attr "type" "fcmp<s>")
(set_attr "mode" "<MODE>")]
)
"@
fcmpe\\t%<s>0, #0.0
fcmpe\\t%<s>0, %<s>1"
- [(set_attr "v8type" "fcmp")
- (set_attr "type" "fcmp<s>")
+ [(set_attr "type" "fcmp<s>")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPI 2 "aarch64_reg_or_zero" "rZ")))]
""
"cmp\\t%<w>2, %<w>0, <shift> %1"
- [(set_attr "v8type" "alus_shift")
- (set_attr "type" "alus_shift_imm")
+ [(set_attr "type" "alus_shift_imm")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPI 1 "register_operand" "r")))]
""
"cmp\\t%<GPI:w>1, %<GPI:w>0, <su>xt<ALLX:size>"
- [(set_attr "v8type" "alus_ext")
- (set_attr "type" "alus_ext")
+ [(set_attr "type" "alus_ext")
(set_attr "mode" "<GPI:MODE>")]
)
(match_operand:GPI 2 "register_operand" "r")))]
""
"cmp\\t%<GPI:w>2, %<GPI:w>0, <su>xt<ALLX:size> %1"
- [(set_attr "v8type" "alus_ext")
- (set_attr "type" "alus_ext")
+ [(set_attr "type" "alus_ext")
(set_attr "mode" "<GPI:MODE>")]
)
[(match_operand 2 "cc_register" "") (const_int 0)]))]
""
"cset\\t%<w>0, %m1"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "<MODE>")]
)
[(match_operand 2 "cc_register" "") (const_int 0)])))]
""
"cset\\t%w0, %m1"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "SI")]
)
[(match_operand 2 "cc_register" "") (const_int 0)])))]
""
"csetm\\t%<w>0, %m1"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "<MODE>")]
)
[(match_operand 2 "cc_register" "") (const_int 0)]))))]
""
"csetm\\t%w0, %m1"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "SI")]
)
csinc\\t%<w>0, %<w>4, <w>zr, %M1
mov\\t%<w>0, -1
mov\\t%<w>0, 1"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "<MODE>")]
)
csinc\\t%w0, %w4, wzr, %M1
mov\\t%w0, -1
mov\\t%w0, 1"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "SI")]
)
(match_operand:GPF 4 "register_operand" "w")))]
"TARGET_FLOAT"
"fcsel\\t%<s>0, %<s>3, %<s>4, %m1"
- [(set_attr "v8type" "fcsel")
- (set_attr "type" "fcsel")
+ [(set_attr "type" "fcsel")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPI 1 "register_operand" "r")))]
""
"csinc\\t%<w>0, %<w>1, %<w>1, %M2"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "<MODE>")])
(define_insn "csinc3<mode>_insn"
(match_operand:GPI 4 "aarch64_reg_or_zero" "rZ")))]
""
"csinc\\t%<w>0, %<w>4, %<w>3, %M1"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPI 4 "aarch64_reg_or_zero" "rZ")))]
""
"csinv\\t%<w>0, %<w>4, %<w>3, %M1"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "<MODE>")])
(define_insn "*csneg3<mode>_insn"
(match_operand:GPI 4 "aarch64_reg_or_zero" "rZ")))]
""
"csneg\\t%<w>0, %<w>4, %<w>3, %M1"
- [(set_attr "v8type" "csel")
- (set_attr "type" "csel")
+ [(set_attr "type" "csel")
(set_attr "mode" "<MODE>")])
;; -------------------------------------------------------------------
(match_operand:GPI 2 "aarch64_logical_operand" "r,<lconst>")))]
""
"<logical>\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "logic,logic_imm")
- (set_attr "type" "logic_reg,logic_imm")
+ [(set_attr "type" "logic_reg,logic_imm")
(set_attr "mode" "<MODE>")])
;; zero_extend version of above
(match_operand:SI 2 "aarch64_logical_operand" "r,K"))))]
""
"<logical>\\t%w0, %w1, %w2"
- [(set_attr "v8type" "logic,logic_imm")
- (set_attr "type" "logic_reg,logic_imm")
+ [(set_attr "type" "logic_reg,logic_imm")
(set_attr "mode" "SI")])
(define_insn "*and<mode>3_compare0"
(and:GPI (match_dup 1) (match_dup 2)))]
""
"ands\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "logics,logics_imm")
- (set_attr "type" "logics_reg,logics_imm")
+ [(set_attr "type" "logics_reg,logics_imm")
(set_attr "mode" "<MODE>")]
)
(zero_extend:DI (and:SI (match_dup 1) (match_dup 2))))]
""
"ands\\t%w0, %w1, %w2"
- [(set_attr "v8type" "logics,logics_imm")
- (set_attr "type" "logics_reg,logics_imm")
+ [(set_attr "type" "logics_reg,logics_imm")
(set_attr "mode" "SI")]
)
(and:GPI (SHIFT:GPI (match_dup 1) (match_dup 2)) (match_dup 3)))]
""
"ands\\t%<w>0, %<w>3, %<w>1, <SHIFT:shift> %2"
- [(set_attr "v8type" "logics_shift")
- (set_attr "type" "logics_shift_imm")
+ [(set_attr "type" "logics_shift_imm")
(set_attr "mode" "<MODE>")]
)
(match_dup 3))))]
""
"ands\\t%w0, %w3, %w1, <SHIFT:shift> %2"
- [(set_attr "v8type" "logics_shift")
- (set_attr "type" "logics_shift_imm")
+ [(set_attr "type" "logics_shift_imm")
(set_attr "mode" "SI")]
)
(match_operand:GPI 3 "register_operand" "r")))]
""
"<LOGICAL:logical>\\t%<w>0, %<w>3, %<w>1, <SHIFT:shift> %2"
- [(set_attr "v8type" "logic_shift")
- (set_attr "type" "logic_shift_imm")
+ [(set_attr "type" "logic_shift_imm")
(set_attr "mode" "<MODE>")])
;; zero_extend version of above
(match_operand:SI 3 "register_operand" "r"))))]
""
"<LOGICAL:logical>\\t%w0, %w3, %w1, <SHIFT:shift> %2"
- [(set_attr "v8type" "logic_shift")
- (set_attr "type" "logic_shift_imm")
+ [(set_attr "type" "logic_shift_imm")
(set_attr "mode" "SI")])
(define_insn "one_cmpl<mode>2"
(not:GPI (match_operand:GPI 1 "register_operand" "r")))]
""
"mvn\\t%<w>0, %<w>1"
- [(set_attr "v8type" "logic")
- (set_attr "type" "logic_reg")
+ [(set_attr "type" "logic_reg")
(set_attr "mode" "<MODE>")])
(define_insn "*one_cmpl_<optab><mode>2"
(match_operand:QI 2 "aarch64_shift_imm_<mode>" "n"))))]
""
"mvn\\t%<w>0, %<w>1, <shift> %2"
- [(set_attr "v8type" "logic_shift")
- (set_attr "type" "logic_shift_imm")
+ [(set_attr "type" "logic_shift_imm")
(set_attr "mode" "<MODE>")])
(define_insn "*<LOGICAL:optab>_one_cmpl<mode>3"
(match_operand:GPI 2 "register_operand" "r")))]
""
"<LOGICAL:nlogical>\\t%<w>0, %<w>2, %<w>1"
- [(set_attr "v8type" "logic")
- (set_attr "type" "logic_reg")
+ [(set_attr "type" "logic_reg")
(set_attr "mode" "<MODE>")])
(define_insn "*and_one_cmpl<mode>3_compare0"
(and:GPI (not:GPI (match_dup 1)) (match_dup 2)))]
""
"bics\\t%<w>0, %<w>2, %<w>1"
- [(set_attr "v8type" "logics")
- (set_attr "type" "logics_reg")
+ [(set_attr "type" "logics_reg")
(set_attr "mode" "<MODE>")])
;; zero_extend version of above
(zero_extend:DI (and:SI (not:SI (match_dup 1)) (match_dup 2))))]
""
"bics\\t%w0, %w2, %w1"
- [(set_attr "v8type" "logics")
- (set_attr "type" "logics_reg")
+ [(set_attr "type" "logics_reg")
(set_attr "mode" "SI")])
(define_insn "*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3"
(match_operand:GPI 3 "register_operand" "r")))]
""
"<LOGICAL:nlogical>\\t%<w>0, %<w>3, %<w>1, <SHIFT:shift> %2"
- [(set_attr "v8type" "logic_shift")
- (set_attr "type" "logics_shift_imm")
+ [(set_attr "type" "logics_shift_imm")
(set_attr "mode" "<MODE>")])
(define_insn "*and_one_cmpl_<SHIFT:optab><mode>3_compare0"
(match_dup 1) (match_dup 2))) (match_dup 3)))]
""
"bics\\t%<w>0, %<w>3, %<w>1, <SHIFT:shift> %2"
- [(set_attr "v8type" "logics_shift")
- (set_attr "type" "logics_shift_imm")
+ [(set_attr "type" "logics_shift_imm")
(set_attr "mode" "<MODE>")])
;; zero_extend version of above
(SHIFT:SI (match_dup 1) (match_dup 2))) (match_dup 3))))]
""
"bics\\t%w0, %w3, %w1, <SHIFT:shift> %2"
- [(set_attr "v8type" "logics_shift")
- (set_attr "type" "logics_shift_imm")
+ [(set_attr "type" "logics_shift_imm")
(set_attr "mode" "SI")])
(define_insn "clz<mode>2"
(clz:GPI (match_operand:GPI 1 "register_operand" "r")))]
""
"clz\\t%<w>0, %<w>1"
- [(set_attr "v8type" "clz")
- (set_attr "type" "clz")
+ [(set_attr "type" "clz")
(set_attr "mode" "<MODE>")])
(define_expand "ffs<mode>2"
(unspec:GPI [(match_operand:GPI 1 "register_operand" "r")] UNSPEC_CLS))]
""
"cls\\t%<w>0, %<w>1"
- [(set_attr "v8type" "clz")
- (set_attr "type" "clz")
+ [(set_attr "type" "clz")
(set_attr "mode" "<MODE>")])
(define_insn "rbit<mode>2"
(unspec:GPI [(match_operand:GPI 1 "register_operand" "r")] UNSPEC_RBIT))]
""
"rbit\\t%<w>0, %<w>1"
- [(set_attr "v8type" "rbit")
- (set_attr "type" "rbit")
+ [(set_attr "type" "rbit")
(set_attr "mode" "<MODE>")])
(define_expand "ctz<mode>2"
(const_int 0)))]
""
"tst\\t%<w>0, %<w>1"
- [(set_attr "v8type" "logics")
- (set_attr "type" "logics_reg")
+ [(set_attr "type" "logics_reg")
(set_attr "mode" "<MODE>")])
(define_insn "*and_<SHIFT:optab><mode>3nr_compare0"
(const_int 0)))]
""
"tst\\t%<w>2, %<w>0, <SHIFT:shift> %1"
- [(set_attr "v8type" "logics_shift")
- (set_attr "type" "logics_shift_imm")
+ [(set_attr "type" "logics_shift_imm")
(set_attr "mode" "<MODE>")])
;; -------------------------------------------------------------------
ushl\t%<rtn>0<vas>, %<rtn>1<vas>, %<rtn>2<vas>
lsl\t%<w>0, %<w>1, %<w>2"
[(set_attr "simd" "yes,yes,no")
- (set_attr "v8type" "*,*,shift")
(set_attr "type" "neon_shift_imm<q>, neon_shift_reg<q>,shift_reg")
(set_attr "mode" "*,*,<MODE>")]
)
#
lsr\t%<w>0, %<w>1, %<w>2"
[(set_attr "simd" "yes,yes,no")
- (set_attr "v8type" "*,*,shift")
(set_attr "type" "neon_shift_imm<q>,neon_shift_reg<q>,shift_reg")
(set_attr "mode" "*,*,<MODE>")]
)
#
asr\t%<w>0, %<w>1, %<w>2"
[(set_attr "simd" "yes,yes,no")
- (set_attr "v8type" "*,*,shift")
(set_attr "type" "neon_shift_imm<q>,neon_shift_reg<q>,shift_reg")
(set_attr "mode" "*,*,<MODE>")]
)
(match_operand:QI 2 "aarch64_reg_or_shift_imm_<mode>" "rUs<cmode>")))]
""
"ror\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "shift")
- (set_attr "type" "shift_reg")
+ [(set_attr "type" "shift_reg")
(set_attr "mode" "<MODE>")]
)
(match_operand:QI 2 "aarch64_reg_or_shift_imm_si" "rUss"))))]
""
"<shift>\\t%w0, %w1, %w2"
- [(set_attr "v8type" "shift")
- (set_attr "type" "shift_reg")
+ [(set_attr "type" "shift_reg")
(set_attr "mode" "SI")]
)
(match_operand:QI 2 "aarch64_reg_or_shift_imm_si" "rUss")))]
""
"lsl\\t%<w>0, %<w>1, %<w>2"
- [(set_attr "v8type" "shift")
- (set_attr "type" "shift_reg")
+ [(set_attr "type" "shift_reg")
(set_attr "mode" "<MODE>")]
)
operands[3] = GEN_INT (<sizen> - UINTVAL (operands[2]));
return "<bfshift>\t%w0, %w1, %2, %3";
}
- [(set_attr "v8type" "bfm")
- (set_attr "type" "bfm")
+ [(set_attr "type" "bfm")
(set_attr "mode" "<MODE>")]
)
"UINTVAL (operands[3]) < GET_MODE_BITSIZE (<MODE>mode) &&
(UINTVAL (operands[3]) + UINTVAL (operands[4]) == GET_MODE_BITSIZE (<MODE>mode))"
"extr\\t%<w>0, %<w>1, %<w>2, %4"
- [(set_attr "v8type" "shift")
- (set_attr "type" "shift_imm")
+ [(set_attr "type" "shift_imm")
(set_attr "mode" "<MODE>")]
)
"UINTVAL (operands[3]) < 32 &&
(UINTVAL (operands[3]) + UINTVAL (operands[4]) == 32)"
"extr\\t%w0, %w1, %w2, %4"
- [(set_attr "v8type" "shift")
- (set_attr "type" "shift_imm")
+ [(set_attr "type" "shift_imm")
(set_attr "mode" "SI")]
)
operands[3] = GEN_INT (<sizen> - UINTVAL (operands[2]));
return "ror\\t%<w>0, %<w>1, %3";
}
- [(set_attr "v8type" "shift")
- (set_attr "type" "shift_imm")
+ [(set_attr "type" "shift_imm")
(set_attr "mode" "<MODE>")]
)
operands[3] = GEN_INT (32 - UINTVAL (operands[2]));
return "ror\\t%w0, %w1, %3";
}
- [(set_attr "v8type" "shift")
- (set_attr "type" "shift_imm")
+ [(set_attr "type" "shift_imm")
(set_attr "mode" "SI")]
)
operands[3] = GEN_INT (<SHORT:sizen> - UINTVAL (operands[2]));
return "<su>bfiz\t%<GPI:w>0, %<GPI:w>1, %2, %3";
}
- [(set_attr "v8type" "bfm")
- (set_attr "type" "bfm")
+ [(set_attr "type" "bfm")
(set_attr "mode" "<GPI:MODE>")]
)
operands[3] = GEN_INT (<SHORT:sizen> - UINTVAL (operands[2]));
return "ubfx\t%<GPI:w>0, %<GPI:w>1, %2, %3";
}
- [(set_attr "v8type" "bfm")
- (set_attr "type" "bfm")
+ [(set_attr "type" "bfm")
(set_attr "mode" "<GPI:MODE>")]
)
operands[3] = GEN_INT (<SHORT:sizen> - UINTVAL (operands[2]));
return "sbfx\\t%<GPI:w>0, %<GPI:w>1, %2, %3";
}
- [(set_attr "v8type" "bfm")
- (set_attr "type" "bfm")
+ [(set_attr "type" "bfm")
(set_attr "mode" "<GPI:MODE>")]
)
(match_operand 3 "const_int_operand" "n")))]
""
"<su>bfx\\t%<w>0, %<w>1, %3, %2"
- [(set_attr "v8type" "bfm")
- (set_attr "type" "bfm")
+ [(set_attr "type" "bfm")
(set_attr "mode" "<MODE>")]
)
|| (UINTVAL (operands[2]) + UINTVAL (operands[1])
> GET_MODE_BITSIZE (<MODE>mode)))"
"bfi\\t%<w>0, %<w>3, %2, %1"
- [(set_attr "v8type" "bfm")
- (set_attr "type" "bfm")
+ [(set_attr "type" "bfm")
(set_attr "mode" "<MODE>")]
)
|| (UINTVAL (operands[3]) + UINTVAL (operands[1])
> GET_MODE_BITSIZE (<MODE>mode)))"
"bfxil\\t%<w>0, %<w>2, %3, %1"
- [(set_attr "v8type" "bfm")
- (set_attr "type" "bfm")
+ [(set_attr "type" "bfm")
(set_attr "mode" "<MODE>")]
)
: GEN_INT (<GPI:sizen> - UINTVAL (operands[2]));
return "<su>bfiz\t%<GPI:w>0, %<GPI:w>1, %2, %3";
}
- [(set_attr "v8type" "bfm")
- (set_attr "type" "bfm")
+ [(set_attr "type" "bfm")
(set_attr "mode" "<GPI:MODE>")]
)
"exact_log2 ((INTVAL (operands[3]) >> INTVAL (operands[2])) + 1) >= 0
&& (INTVAL (operands[3]) & ((1 << INTVAL (operands[2])) - 1)) == 0"
"ubfiz\\t%<w>0, %<w>1, %2, %P3"
- [(set_attr "v8type" "bfm")
- (set_attr "type" "bfm")
+ [(set_attr "type" "bfm")
(set_attr "mode" "<MODE>")]
)
(bswap:GPI (match_operand:GPI 1 "register_operand" "r")))]
""
"rev\\t%<w>0, %<w>1"
- [(set_attr "v8type" "rev")
- (set_attr "type" "rev")
+ [(set_attr "type" "rev")
(set_attr "mode" "<MODE>")]
)
(bswap:HI (match_operand:HI 1 "register_operand" "r")))]
""
"rev16\\t%w0, %w1"
- [(set_attr "v8type" "rev")
- (set_attr "type" "rev")
+ [(set_attr "type" "rev")
(set_attr "mode" "HI")]
)
(zero_extend:DI (bswap:SI (match_operand:SI 1 "register_operand" "r"))))]
""
"rev\\t%w0, %w1"
- [(set_attr "v8type" "rev")
- (set_attr "type" "rev")
+ [(set_attr "type" "rev")
(set_attr "mode" "SI")]
)
FRINT))]
"TARGET_FLOAT"
"frint<frint_suffix>\\t%<s>0, %<s>1"
- [(set_attr "v8type" "frint")
- (set_attr "type" "f_rint<s>")
+ [(set_attr "type" "f_rint<s>")
(set_attr "mode" "<MODE>")]
)
FCVT)))]
"TARGET_FLOAT"
"fcvt<frint_suffix><su>\\t%<GPI:w>0, %<GPF:s>1"
- [(set_attr "v8type" "fcvtf2i")
- (set_attr "type" "f_cvtf2i")
+ [(set_attr "type" "f_cvtf2i")
(set_attr "mode" "<GPF:MODE>")
(set_attr "mode2" "<GPI:MODE>")]
)
(match_operand:GPF 3 "register_operand" "w")))]
"TARGET_FLOAT"
"fmadd\\t%<s>0, %<s>1, %<s>2, %<s>3"
- [(set_attr "v8type" "fmadd")
- (set_attr "type" "fmac<s>")
+ [(set_attr "type" "fmac<s>")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPF 3 "register_operand" "w")))]
"TARGET_FLOAT"
"fmsub\\t%<s>0, %<s>1, %<s>2, %<s>3"
- [(set_attr "v8type" "fmadd")
- (set_attr "type" "fmac<s>")
+ [(set_attr "type" "fmac<s>")
(set_attr "mode" "<MODE>")]
)
(neg:GPF (match_operand:GPF 3 "register_operand" "w"))))]
"TARGET_FLOAT"
"fnmsub\\t%<s>0, %<s>1, %<s>2, %<s>3"
- [(set_attr "v8type" "fmadd")
- (set_attr "type" "fmac<s>")
+ [(set_attr "type" "fmac<s>")
(set_attr "mode" "<MODE>")]
)
(neg:GPF (match_operand:GPF 3 "register_operand" "w"))))]
"TARGET_FLOAT"
"fnmadd\\t%<s>0, %<s>1, %<s>2, %<s>3"
- [(set_attr "v8type" "fmadd")
- (set_attr "type" "fmac<s>")
+ [(set_attr "type" "fmac<s>")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPF 3 "register_operand" "w"))))]
"!HONOR_SIGNED_ZEROS (<MODE>mode) && TARGET_FLOAT"
"fnmadd\\t%<s>0, %<s>1, %<s>2, %<s>3"
- [(set_attr "v8type" "fmadd")
- (set_attr "type" "fmac<s>")
+ [(set_attr "type" "fmac<s>")
(set_attr "mode" "<MODE>")]
)
(float_extend:DF (match_operand:SF 1 "register_operand" "w")))]
"TARGET_FLOAT"
"fcvt\\t%d0, %s1"
- [(set_attr "v8type" "fcvt")
- (set_attr "type" "f_cvt")
+ [(set_attr "type" "f_cvt")
(set_attr "mode" "DF")
(set_attr "mode2" "SF")]
)
(float_truncate:SF (match_operand:DF 1 "register_operand" "w")))]
"TARGET_FLOAT"
"fcvt\\t%s0, %d1"
- [(set_attr "v8type" "fcvt")
- (set_attr "type" "f_cvt")
+ [(set_attr "type" "f_cvt")
(set_attr "mode" "SF")
(set_attr "mode2" "DF")]
)
(fix:GPI (match_operand:GPF 1 "register_operand" "w")))]
"TARGET_FLOAT"
"fcvtzs\\t%<GPI:w>0, %<GPF:s>1"
- [(set_attr "v8type" "fcvtf2i")
- (set_attr "type" "f_cvtf2i")
+ [(set_attr "type" "f_cvtf2i")
(set_attr "mode" "<GPF:MODE>")
(set_attr "mode2" "<GPI:MODE>")]
)
(unsigned_fix:GPI (match_operand:GPF 1 "register_operand" "w")))]
"TARGET_FLOAT"
"fcvtzu\\t%<GPI:w>0, %<GPF:s>1"
- [(set_attr "v8type" "fcvtf2i")
- (set_attr "type" "f_cvtf2i")
+ [(set_attr "type" "f_cvtf2i")
(set_attr "mode" "<GPF:MODE>")
(set_attr "mode2" "<GPI:MODE>")]
)
(float:GPF (match_operand:GPI 1 "register_operand" "r")))]
"TARGET_FLOAT"
"scvtf\\t%<GPF:s>0, %<GPI:w>1"
- [(set_attr "v8type" "fcvti2f")
- (set_attr "type" "f_cvti2f")
+ [(set_attr "type" "f_cvti2f")
(set_attr "mode" "<GPF:MODE>")
(set_attr "mode2" "<GPI:MODE>")]
)
(unsigned_float:GPF (match_operand:GPI 1 "register_operand" "r")))]
"TARGET_FLOAT"
"ucvtf\\t%<GPF:s>0, %<GPI:w>1"
- [(set_attr "v8type" "fcvt")
- (set_attr "type" "f_cvt")
+ [(set_attr "type" "f_cvt")
(set_attr "mode" "<GPF:MODE>")
(set_attr "mode2" "<GPI:MODE>")]
)
(match_operand:GPF 2 "register_operand" "w")))]
"TARGET_FLOAT"
"fadd\\t%<s>0, %<s>1, %<s>2"
- [(set_attr "v8type" "fadd")
- (set_attr "type" "fadd<s>")
+ [(set_attr "type" "fadd<s>")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPF 2 "register_operand" "w")))]
"TARGET_FLOAT"
"fsub\\t%<s>0, %<s>1, %<s>2"
- [(set_attr "v8type" "fadd")
- (set_attr "type" "fadd<s>")
+ [(set_attr "type" "fadd<s>")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPF 2 "register_operand" "w")))]
"TARGET_FLOAT"
"fmul\\t%<s>0, %<s>1, %<s>2"
- [(set_attr "v8type" "fmul")
- (set_attr "type" "fmul<s>")
+ [(set_attr "type" "fmul<s>")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPF 2 "register_operand" "w")))]
"TARGET_FLOAT"
"fnmul\\t%<s>0, %<s>1, %<s>2"
- [(set_attr "v8type" "fmul")
- (set_attr "type" "fmul<s>")
+ [(set_attr "type" "fmul<s>")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPF 2 "register_operand" "w")))]
"TARGET_FLOAT"
"fdiv\\t%<s>0, %<s>1, %<s>2"
- [(set_attr "v8type" "fdiv")
- (set_attr "type" "fdiv<s>")
+ [(set_attr "type" "fdiv<s>")
(set_attr "mode" "<MODE>")]
)
(neg:GPF (match_operand:GPF 1 "register_operand" "w")))]
"TARGET_FLOAT"
"fneg\\t%<s>0, %<s>1"
- [(set_attr "v8type" "ffarith")
- (set_attr "type" "ffarith<s>")
+ [(set_attr "type" "ffarith<s>")
(set_attr "mode" "<MODE>")]
)
(sqrt:GPF (match_operand:GPF 1 "register_operand" "w")))]
"TARGET_FLOAT"
"fsqrt\\t%<s>0, %<s>1"
- [(set_attr "v8type" "fsqrt")
- (set_attr "type" "fsqrt<s>")
+ [(set_attr "type" "fsqrt<s>")
(set_attr "mode" "<MODE>")]
)
(abs:GPF (match_operand:GPF 1 "register_operand" "w")))]
"TARGET_FLOAT"
"fabs\\t%<s>0, %<s>1"
- [(set_attr "v8type" "ffarith")
- (set_attr "type" "ffarith<s>")
+ [(set_attr "type" "ffarith<s>")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPF 2 "register_operand" "w")))]
"TARGET_FLOAT"
"fmaxnm\\t%<s>0, %<s>1, %<s>2"
- [(set_attr "v8type" "fminmax")
- (set_attr "type" "f_minmax<s>")
+ [(set_attr "type" "f_minmax<s>")
(set_attr "mode" "<MODE>")]
)
(match_operand:GPF 2 "register_operand" "w")))]
"TARGET_FLOAT"
"fminnm\\t%<s>0, %<s>1, %<s>2"
- [(set_attr "v8type" "fminmax")
- (set_attr "type" "f_minmax<s>")
+ [(set_attr "type" "f_minmax<s>")
(set_attr "mode" "<MODE>")]
)
(truncate:DI (match_operand:TX 1 "register_operand" "w")))]
"reload_completed || reload_in_progress"
"fmov\\t%x0, %d1"
- [(set_attr "v8type" "fmovf2i")
- (set_attr "type" "f_mrc")
+ [(set_attr "type" "f_mrc")
(set_attr "mode" "DI")
(set_attr "length" "4")
])
(const_int 64))))]
"reload_completed || reload_in_progress"
"fmov\\t%x0, %1.d[1]"
- [(set_attr "v8type" "fmovf2i")
- (set_attr "type" "f_mrc")
+ [(set_attr "type" "f_mrc")
(set_attr "mode" "DI")
(set_attr "length" "4")
])
(zero_extend:TX (match_operand:DI 1 "register_operand" "r")))]
"reload_completed || reload_in_progress"
"fmov\\t%0.d[1], %x1"
- [(set_attr "v8type" "fmovi2f")
- (set_attr "type" "f_mcr")
+ [(set_attr "type" "f_mcr")
(set_attr "mode" "DI")
(set_attr "length" "4")
])
(zero_extend:TX (match_operand:DI 1 "register_operand" "r")))]
"reload_completed || reload_in_progress"
"fmov\\t%d0, %x1"
- [(set_attr "v8type" "fmovi2f")
- (set_attr "type" "f_mcr")
+ [(set_attr "type" "f_mcr")
(set_attr "mode" "DI")
(set_attr "length" "4")
])
(truncate:DI (match_operand:TI 1 "register_operand" "w"))))]
"reload_completed || reload_in_progress"
"fmov\\t%d0, %d1"
- [(set_attr "v8type" "fmovi2f")
- (set_attr "type" "f_mcr")
+ [(set_attr "type" "f_mcr")
(set_attr "mode" "DI")
(set_attr "length" "4")
])
(match_operand 2 "aarch64_valid_symref" "S")))]
""
"add\\t%<w>0, %<w>1, :lo12:%a2"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_reg")
+ [(set_attr "type" "alu_reg")
(set_attr "mode" "<MODE>")]
)
UNSPEC_GOTSMALLPIC))]
""
"ldr\\t%<w>0, [%1, #:got_lo12:%a2]"
- [(set_attr "v8type" "load1")
- (set_attr "type" "load1")
+ [(set_attr "type" "load1")
(set_attr "mode" "<MODE>")]
)
UNSPEC_GOTSMALLPIC)))]
"TARGET_ILP32"
"ldr\\t%w0, [%1, #:got_lo12:%a2]"
- [(set_attr "v8type" "load1")
- (set_attr "type" "load1")
+ [(set_attr "type" "load1")
(set_attr "mode" "DI")]
)
UNSPEC_GOTTINYPIC))]
""
"ldr\\t%0, %L1"
- [(set_attr "v8type" "load1")
- (set_attr "type" "load1")
+ [(set_attr "type" "load1")
(set_attr "mode" "DI")]
)
(unspec:DI [(const_int 0)] UNSPEC_TLS))]
""
"mrs\\t%0, tpidr_el0"
- [(set_attr "v8type" "mrs")
- (set_attr "type" "mrs")
+ [(set_attr "type" "mrs")
(set_attr "mode" "DI")]
)
]
""
"adrp\\tx0, %A1\;add\\tx0, x0, %L1\;bl\\t%2\;nop"
- [(set_attr "v8type" "call")
- (set_attr "type" "call")
+ [(set_attr "type" "call")
(set_attr "length" "16")])
(define_insn "tlsie_small"
UNSPEC_GOTSMALLTLS))]
""
"adrp\\t%0, %A1\;ldr\\t%0, [%0, #%L1]"
- [(set_attr "v8type" "load1")
- (set_attr "type" "load1")
+ [(set_attr "type" "load1")
(set_attr "mode" "DI")
(set_attr "length" "8")]
)
UNSPEC_GOTSMALLTLS))]
""
"add\\t%0, %1, #%G2\;add\\t%0, %0, #%L2"
- [(set_attr "v8type" "alu")
- (set_attr "type" "alu_reg")
+ [(set_attr "type" "alu_reg")
(set_attr "mode" "DI")
(set_attr "length" "8")]
)
(clobber (match_scratch:DI 1 "=r"))]
"TARGET_TLS_DESC"
"adrp\\tx0, %A0\;ldr\\t%1, [x0, #%L0]\;add\\tx0, x0, %L0\;.tlsdesccall\\t%0\;blr\\t%1"
- [(set_attr "v8type" "call")
- (set_attr "type" "call")
+ [(set_attr "type" "call")
(set_attr "length" "16")])
(define_insn "stack_tie"