⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s390.md

📁 linux下的gcc编译器
💻 MD
📖 第 1 页 / 共 5 页
字号:
  [(set_attr "op_type" "RI")])(define_insn "*tmhi_full"  [(set (reg 33)        (compare (match_operand:HI 0 "register_operand" "d")                 (match_operand:HI 1 "immediate_operand" "n")))]  "s390_match_ccmode (insn, s390_tm_ccmode (GEN_INT (-1), operands[1], 1))"  "tml\\t%0,65535"  [(set_attr "op_type" "RX")])(define_insn "*tmqi_full"  [(set (reg 33)        (compare (match_operand:QI 0 "register_operand" "d")                 (match_operand:QI 1 "immediate_operand" "n")))]  "s390_match_ccmode (insn, s390_tm_ccmode (GEN_INT (-1), operands[1], 1))"  "tml\\t%0,255"  [(set_attr "op_type" "RI")]); Load-and-Test instructions(define_insn "*tstdi_sign"  [(set (reg 33)        (compare (ashiftrt:DI (ashift:DI (subreg:DI (match_operand:SI 0 "register_operand" "d") 0)					 (const_int 32)) (const_int 32))                 (match_operand:DI 1 "const0_operand" "")))   (set (match_operand:DI 2 "register_operand" "=d")        (sign_extend:DI (match_dup 0)))]  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT"  "ltgfr\\t%2,%0"  [(set_attr "op_type" "RRE")])(define_insn "*tstdi"  [(set (reg 33)        (compare (match_operand:DI 0 "register_operand" "d")                 (match_operand:DI 1 "const0_operand" "")))   (set (match_operand:DI 2 "register_operand" "=d")        (match_dup 0))]  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT"  "ltgr\\t%2,%0"  [(set_attr "op_type" "RRE")])(define_insn "*tstdi_cconly"  [(set (reg 33)        (compare (match_operand:DI 0 "register_operand" "d")                 (match_operand:DI 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT"  "ltgr\\t%0,%0"  [(set_attr "op_type" "RRE")])(define_insn "*tstdi_cconly_31"  [(set (reg 33)        (compare (match_operand:DI 0 "register_operand" "d")                 (match_operand:DI 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCSmode) && !TARGET_64BIT"  "srda\\t%0,0"  [(set_attr "op_type" "RS")])(define_insn "*tstsi"  [(set (reg 33)        (compare (match_operand:SI 0 "nonimmediate_operand" "d,Q")                 (match_operand:SI 1 "const0_operand" "")))   (set (match_operand:SI 2 "register_operand" "=d,d")        (match_dup 0))]  "s390_match_ccmode(insn, CCSmode)"  "@   ltr\\t%2,%0   icm\\t%2,15,%0"  [(set_attr "op_type" "RR,RS")   (set_attr "atype"   "reg,mem")])(define_insn "*tstsi_cconly"  [(set (reg 33)        (compare (match_operand:SI 0 "nonimmediate_operand" "d,Q")                 (match_operand:SI 1 "const0_operand" "")))   (clobber (match_scratch:SI 2 "=X,d"))]  "s390_match_ccmode(insn, CCSmode)"  "@   ltr\\t%0,%0   icm\\t%2,15,%0"  [(set_attr "op_type" "RR,RS")   (set_attr "atype"   "reg,mem")])(define_insn "*tstsi_cconly2"  [(set (reg 33)        (compare (match_operand:SI 0 "register_operand" "d")                 (match_operand:SI 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCSmode)"  "ltr\\t%0,%0"  [(set_attr "op_type" "RR")])(define_insn "*tsthiCCT"  [(set (reg 33)        (compare (match_operand:HI 0 "nonimmediate_operand" "?Q,d")                 (match_operand:HI 1 "const0_operand" "")))   (set (match_operand:HI 2 "register_operand" "=d,0")        (match_dup 0))]  "s390_match_ccmode(insn, CCTmode)"  "@   icm\\t%2,3,%0   tml\\t%0,65535"  [(set_attr "op_type" "RS,RI")   (set_attr "atype"   "mem,reg")])(define_insn "*tsthiCCT_cconly"  [(set (reg 33)        (compare (match_operand:HI 0 "nonimmediate_operand" "Q,d")                 (match_operand:HI 1 "const0_operand" "")))   (clobber (match_scratch:HI 2 "=d,X"))]  "s390_match_ccmode(insn, CCTmode)"  "@   icm\\t%2,3,%0   tml\\t%0,65535"  [(set_attr "op_type" "RS,RI")   (set_attr "atype"   "mem,reg")])(define_insn "*tsthi"  [(set (reg 33)        (compare (match_operand:HI 0 "s_operand" "Q")                 (match_operand:HI 1 "const0_operand" "")))   (set (match_operand:HI 2 "register_operand" "=d")        (match_dup 0))]  "s390_match_ccmode(insn, CCSmode)"  "icm\\t%2,3,%0"  [(set_attr "op_type" "RS")   (set_attr "atype"   "mem")])(define_insn "*tsthi_cconly"  [(set (reg 33)        (compare (match_operand:HI 0 "s_operand" "Q")                 (match_operand:HI 1 "const0_operand" "")))   (clobber (match_scratch:HI 2 "=d"))]  "s390_match_ccmode(insn, CCSmode)"  "icm\\t%2,3,%0"  [(set_attr "op_type" "RS")   (set_attr "atype"   "mem")])(define_insn "*tstqiCCT"  [(set (reg 33)        (compare (match_operand:QI 0 "nonimmediate_operand" "?Q,d")                 (match_operand:QI 1 "const0_operand" "")))   (set (match_operand:QI 2 "register_operand" "=d,0")        (match_dup 0))]  "s390_match_ccmode(insn, CCTmode)"  "@   icm\\t%2,1,%0   tml\\t%0,255"  [(set_attr "op_type" "RS,RI")   (set_attr "atype"   "mem,reg")])(define_insn "*tstqiCCT_cconly"  [(set (reg 33)        (compare (match_operand:QI 0 "nonimmediate_operand" "?Q,d")                 (match_operand:QI 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCTmode)"  "@   cli\\t%0,0   tml\\t%0,255"  [(set_attr "op_type" "SI,RI")   (set_attr "atype"   "mem,reg")])(define_insn "*tstqi"  [(set (reg 33)        (compare (match_operand:QI 0 "s_operand" "Q")                 (match_operand:QI 1 "const0_operand" "")))   (set (match_operand:QI 2 "register_operand" "=d")        (match_dup 0))]  "s390_match_ccmode(insn, CCSmode)"  "icm\\t%2,1,%0"  [(set_attr "op_type" "RS")   (set_attr "atype"   "mem")])(define_insn "*tstqi_cconly"  [(set (reg 33)        (compare (match_operand:QI 0 "s_operand" "Q")                 (match_operand:QI 1 "const0_operand" "")))   (clobber (match_scratch:QI 2 "=d"))]  "s390_match_ccmode(insn, CCSmode)"  "icm\\t%2,1,%0"  [(set_attr "op_type" "RS")   (set_attr "atype"   "mem")]); Compare (signed) instructions(define_insn "*cmpdi_ccs_sign"  [(set (reg 33)        (compare (sign_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,m"))                 (match_operand:DI 0 "register_operand" "d,d")))]  "s390_match_ccmode(insn, CCSRmode) && TARGET_64BIT"  "@   cgfr\\t%0,%1   cgf\\t%0,%1"  [(set_attr "op_type" "RRE,RXE")   (set_attr "atype"   "reg,mem")])(define_insn "*cmpdi_ccs"  [(set (reg 33)        (compare (match_operand:DI 0 "register_operand" "d,d,d")                 (match_operand:DI 1 "general_operand" "d,K,m")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT"  "@   cgr\\t%0,%1   cghi\\t%0,%c1   cg\\t%0,%1"  [(set_attr "op_type" "RRE,RI,RXE")   (set_attr "atype"    "reg,reg,mem")])   (define_insn "*cmpsi_ccs_sign"  [(set (reg 33)        (compare (sign_extend:SI (match_operand:HI 1 "memory_operand" "m"))                 (match_operand:SI 0 "register_operand" "d")))]  "s390_match_ccmode(insn, CCSRmode)"  "ch\\t%0,%1"  [(set_attr "op_type" "RX")   (set_attr "atype"   "mem")])(define_insn "*cmpsi_ccs"  [(set (reg 33)        (compare (match_operand:SI 0 "register_operand" "d,d,d")                 (match_operand:SI 1 "general_operand" "d,K,m")))]  "s390_match_ccmode(insn, CCSmode)"  "@   cr\\t%0,%1   chi\\t%0,%c1   c\\t%0,%1"  [(set_attr "op_type" "RR,RI,RX")   (set_attr "atype"   "reg,reg,mem")])   ; Compare (unsigned) instructions(define_insn "*cmpdi_ccu_zero"  [(set (reg 33)        (compare (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "d,m"))                 (match_operand:DI 0 "register_operand" "d,d")))]  "s390_match_ccmode(insn, CCURmode) && TARGET_64BIT"  "@   clgfr\\t%0,%1   clgf\\t%0,%1"  [(set_attr "op_type" "RRE,RXE")   (set_attr "atype"   "reg,mem")])(define_insn "*cmpdi_ccu"  [(set (reg 33)        (compare (match_operand:DI 0 "register_operand" "d,d")                 (match_operand:DI 1 "general_operand" "d,m")))]  "s390_match_ccmode(insn, CCUmode) && TARGET_64BIT"  "@   clgr\\t%0,%1   clg\\t%0,%1"  [(set_attr "op_type" "RRE,RXE")   (set_attr "atype"   "reg,mem")])(define_insn "*cmpsi_ccu"  [(set (reg 33)        (compare (match_operand:SI 0 "register_operand" "d,d")                 (match_operand:SI 1 "general_operand" "d,m")))]  "s390_match_ccmode(insn, CCUmode)"  "@   clr\\t%0,%1   cl\\t%0,%1"  [(set_attr "op_type" "RR,RX")   (set_attr "atype"   "reg,mem")])(define_insn "*cmphi_ccu"  [(set (reg 33)        (compare (match_operand:HI 0 "register_operand" "d")                 (match_operand:HI 1 "s_imm_operand" "Q")))]  "s390_match_ccmode(insn, CCUmode)"  "clm\\t%0,3,%1"  [(set_attr "op_type" "RS")   (set_attr "atype"   "mem")])(define_insn "*cmpqi_ccu"  [(set (reg 33)        (compare (match_operand:QI 0 "register_operand" "d")                 (match_operand:QI 1 "s_imm_operand" "Q")))]  "s390_match_ccmode(insn, CCUmode)"  "clm\\t%0,1,%1"  [(set_attr "op_type" "RS")   (set_attr "atype"   "mem")])(define_insn "*cli"  [(set (reg 33)        (compare (match_operand:QI 0 "memory_operand" "Q")                 (match_operand:QI 1 "immediate_operand" "n")))]  "s390_match_ccmode (insn, CCUmode)"  "cli\\t%0,%b1"  [(set_attr "op_type" "SI")   (set_attr "atype"   "mem")])(define_insn "*cmpdi_ccu_mem"  [(set (reg 33)        (compare (match_operand:DI 0 "s_operand" "Q")                 (match_operand:DI 1 "s_imm_operand" "Q")))]  "s390_match_ccmode(insn, CCUmode)"  "clc\\t%O0(8,%R0),%1"  [(set_attr "op_type" "SS")   (set_attr "atype"   "mem")])(define_insn "*cmpsi_ccu_mem"  [(set (reg 33)        (compare (match_operand:SI 0 "s_operand" "Q")                 (match_operand:SI 1 "s_imm_operand" "Q")))]  "s390_match_ccmode(insn, CCUmode)"  "clc\\t%O0(4,%R0),%1"   [(set_attr "op_type" "SS")    (set_attr "atype"   "mem")])(define_insn "*cmphi_ccu_mem"  [(set (reg 33)        (compare (match_operand:HI 0 "s_operand" "Q")                 (match_operand:HI 1 "s_imm_operand" "Q")))]  "s390_match_ccmode(insn, CCUmode)"  "clc\\t%O0(2,%R0),%1"  [(set_attr "op_type" "SS")   (set_attr "atype"   "mem")])(define_insn "*cmpqi_ccu_mem"  [(set (reg 33)        (compare (match_operand:QI 0 "s_operand" "Q")                 (match_operand:QI 1 "s_imm_operand" "Q")))]  "s390_match_ccmode(insn, CCUmode)"  "clc\\t%O0(1,%R0),%1"  [(set_attr "op_type" "SS")   (set_attr "atype"   "mem")]); DF instructions(define_insn "*cmpdf_ccs_0"  [(set (reg 33)        (compare (match_operand:DF 0 "register_operand" "f")                 (match_operand:DF 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"  "ltdbr\\t%0,%0"   [(set_attr "op_type" "RRE")])(define_insn "*cmpdf_ccs_0_ibm"  [(set (reg 33)        (compare (match_operand:DF 0 "register_operand" "f")                 (match_operand:DF 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"  "ltdr\\t%0,%0"   [(set_attr "op_type" "RR")])(define_insn "*cmpdf_ccs"  [(set (reg 33)        (compare (match_operand:DF 0 "register_operand" "f,f")                 (match_operand:DF 1 "general_operand" "f,m")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"  "@   cdbr\\t%0,%1   cdb\\t%0,%1"   [(set_attr "op_type" "RRE,RXE")    (set_attr "atype"   "reg,mem")])  (define_insn "*cmpdf_ccs_ibm"  [(set (reg 33)        (compare (match_operand:DF 0 "register_operand" "f,f")                 (match_operand:DF 1 "general_operand" "f,m")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"  "@   cdr\\t%0,%1   cd\\t%0,%1"   [(set_attr "op_type" "RR,RX")    (set_attr "atype"   "reg,mem")])  ; SF instructions(define_insn "*cmpsf_ccs_0"  [(set (reg 33)        (compare (match_operand:SF 0 "register_operand" "f")                 (match_operand:SF 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"  "ltebr\\t%0,%0"   [(set_attr "op_type" "RRE")])(define_insn "*cmpsf_ccs_0_ibm"  [(set (reg 33)        (compare (match_operand:SF 0 "register_operand" "f")                 (match_operand:SF 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"  "lter\\t%0,%0"   [(set_attr "op_type" "RR")])(define_insn "*cmpsf_ccs"  [(set (reg 33)        (compare (match_operand:SF 0 "register_operand" "f,f")                 (match_operand:SF 1 "general_operand" "f,m")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"  "@   cebr\\t%0,%1   ceb\\t%0,%1"  [(set_attr "op_type" "RRE,RXE")   (set_attr "atype"   "reg,mem")])(define_insn "*cmpsf_ccs"  [(set (reg 33)        (compare (match_operand:SF 0 "register_operand" "f,f")                 (match_operand:SF 1 "general_operand" "f,m")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IBM_FLOAT"  "@   cer\\t%0,%1   ce\\t%0,%1"  [(set_attr "op_type" "RR,RX")   (set_attr "atype"   "reg,mem")]);;;;- Move instructions.;;;; movti instruction pattern(s).;(define_insn "movti"  [(set (match_operand:TI 0 "nonimmediate_operand" "=d,Q,d,o,Q")        (match_operand:TI 1 "general_operand" "Q,d,dKm,d,Q"))]  "TARGET_64BIT"  "@   lmg\\t%0,%N0,%1   stmg\\t%1,%N1,%0   #   #   mvc\\t%O0(16,%R0),%1"  [(set_attr "op_type" "RSE,RSE,NN,NN,SS")   (set_attr "atype"   "mem")])(define_split  [(set (match_operand:TI 0 "nonimmediate_operand" "")        (match_operand:TI 1 "general_operand" ""))]  "TARGET_64BIT && reload_completed   && s390_split_ok_p (operands[0], operands[1], TImode, 0)"  [(set (match_dup 2) (match_dup 4))   (set (match_dup 3) (match_dup 5))]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -