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

📄 s390.md

📁 linux下编程用 编译软件
💻 MD
📖 第 1 页 / 共 5 页
字号:
                 (match_operand:QI 2 "immediate_operand" "n,n")))]  "s390_match_ccmode (insn, s390_tm_ccmode (operands[1], operands[2], false))"  "@   tm\t%S0,%b1   tmy\t%S0,%b1"  [(set_attr "op_type" "SI,SIY")])(define_insn "*tmdi_reg"  [(set (reg CC_REGNUM)        (compare (and:DI (match_operand:DI 0 "nonimmediate_operand" "d,d,d,d")                         (match_operand:DI 1 "immediate_operand"					     "N0HD0,N1HD0,N2HD0,N3HD0"))                 (match_operand:DI 2 "immediate_operand" "n,n,n,n")))]  "TARGET_64BIT   && s390_match_ccmode (insn, s390_tm_ccmode (operands[1], operands[2], true))   && s390_single_part (operands[1], DImode, HImode, 0) >= 0"  "@   tmhh\t%0,%i1   tmhl\t%0,%i1   tmlh\t%0,%i1   tmll\t%0,%i1"  [(set_attr "op_type" "RI")])(define_insn "*tmsi_reg"  [(set (reg CC_REGNUM)        (compare (and:SI (match_operand:SI 0 "nonimmediate_operand" "d,d")                         (match_operand:SI 1 "immediate_operand" "N0HS0,N1HS0"))                 (match_operand:SI 2 "immediate_operand" "n,n")))]  "s390_match_ccmode (insn, s390_tm_ccmode (operands[1], operands[2], true))   && s390_single_part (operands[1], SImode, HImode, 0) >= 0"  "@   tmh\t%0,%i1   tml\t%0,%i1"  [(set_attr "op_type" "RI")])(define_insn "*tm<mode>_full"  [(set (reg CC_REGNUM)        (compare (match_operand:HQI 0 "register_operand" "d")                 (match_operand:HQI 1 "immediate_operand" "n")))]  "s390_match_ccmode (insn, s390_tm_ccmode (constm1_rtx, operands[1], true))"  "tml\t%0,<max_uint>"  [(set_attr "op_type" "RI")]); Load-and-Test instructions(define_insn "*tstdi_sign"  [(set (reg CC_REGNUM)        (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_extimm"  [(set (reg CC_REGNUM)        (compare (match_operand:DI 0 "nonimmediate_operand" "d,m")                 (match_operand:DI 1 "const0_operand" "")))   (set (match_operand:DI 2 "register_operand" "=d,d")        (match_dup 0))]  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT && TARGET_EXTIMM"  "@   ltgr\t%2,%0   ltg\t%2,%0"  [(set_attr "op_type" "RRE,RXY")])(define_insn "*tstdi_cconly_extimm"  [(set (reg CC_REGNUM)        (compare (match_operand:DI 0 "nonimmediate_operand" "d,m")                 (match_operand:DI 1 "const0_operand" "")))   (clobber (match_scratch:DI 2 "=X,d"))]  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT && TARGET_EXTIMM"  "@   ltgr\t%0,%0   ltg\t%2,%0"  [(set_attr "op_type" "RRE,RXY")])(define_insn "*tstdi"  [(set (reg CC_REGNUM)        (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 && !TARGET_EXTIMM"  "ltgr\t%2,%0"  [(set_attr "op_type" "RRE")])(define_insn "*tstdi_cconly"  [(set (reg CC_REGNUM)        (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 CC_REGNUM)        (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")   (set_attr "atype"   "reg")])(define_insn "*tstsi_extimm"  [(set (reg CC_REGNUM)        (compare (match_operand:SI 0 "nonimmediate_operand" "d,m")                 (match_operand:SI 1 "const0_operand" "")))   (set (match_operand:SI 2 "register_operand" "=d,d")        (match_dup 0))]  "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM"  "@   ltr\t%2,%0   lt\t%2,%0"  [(set_attr "op_type" "RR,RXY")])(define_insn "*tstsi_cconly_extimm"  [(set (reg CC_REGNUM)        (compare (match_operand:SI 0 "nonimmediate_operand" "d,m")                 (match_operand:SI 1 "const0_operand" "")))   (clobber (match_scratch:SI 2 "=X,d"))]  "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM"  "@   ltr\t%0,%0   lt\t%2,%0"  [(set_attr "op_type" "RR,RXY")])(define_insn "*tstsi"  [(set (reg CC_REGNUM)        (compare (match_operand:SI 0 "nonimmediate_operand" "d,Q,S")                 (match_operand:SI 1 "const0_operand" "")))   (set (match_operand:SI 2 "register_operand" "=d,d,d")        (match_dup 0))]  "s390_match_ccmode(insn, CCSmode) && !TARGET_EXTIMM"  "@   ltr\t%2,%0   icm\t%2,15,%S0   icmy\t%2,15,%S0"  [(set_attr "op_type" "RR,RS,RSY")])(define_insn "*tstsi_cconly"  [(set (reg CC_REGNUM)        (compare (match_operand:SI 0 "nonimmediate_operand" "d,Q,S")                 (match_operand:SI 1 "const0_operand" "")))   (clobber (match_scratch:SI 2 "=X,d,d"))]  "s390_match_ccmode(insn, CCSmode)"  "@   ltr\t%0,%0   icm\t%2,15,%S0   icmy\t%2,15,%S0"  [(set_attr "op_type" "RR,RS,RSY")])(define_insn "*tstsi_cconly2"  [(set (reg CC_REGNUM)        (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 "*tst<mode>CCT"  [(set (reg CC_REGNUM)        (compare (match_operand:HQI 0 "nonimmediate_operand" "?Q,?S,d")                 (match_operand:HQI 1 "const0_operand" "")))   (set (match_operand:HQI 2 "register_operand" "=d,d,0")        (match_dup 0))]  "s390_match_ccmode(insn, CCTmode)"  "@   icm\t%2,<icm_lo>,%S0   icmy\t%2,<icm_lo>,%S0   tml\t%0,<max_uint>"  [(set_attr "op_type" "RS,RSY,RI")])(define_insn "*tsthiCCT_cconly"  [(set (reg CC_REGNUM)        (compare (match_operand:HI 0 "nonimmediate_operand" "Q,S,d")                 (match_operand:HI 1 "const0_operand" "")))   (clobber (match_scratch:HI 2 "=d,d,X"))]  "s390_match_ccmode(insn, CCTmode)"  "@   icm\t%2,3,%S0   icmy\t%2,3,%S0   tml\t%0,65535"  [(set_attr "op_type" "RS,RSY,RI")])(define_insn "*tstqiCCT_cconly"  [(set (reg CC_REGNUM)        (compare (match_operand:QI 0 "nonimmediate_operand" "?Q,?S,d")                 (match_operand:QI 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCTmode)"  "@   cli\t%S0,0   cliy\t%S0,0   tml\t%0,255"  [(set_attr "op_type" "SI,SIY,RI")])(define_insn "*tst<mode>"  [(set (reg CC_REGNUM)        (compare (match_operand:HQI 0 "s_operand" "Q,S")                 (match_operand:HQI 1 "const0_operand" "")))   (set (match_operand:HQI 2 "register_operand" "=d,d")        (match_dup 0))]  "s390_match_ccmode(insn, CCSmode)"  "@   icm\t%2,<icm_lo>,%S0   icmy\t%2,<icm_lo>,%S0"  [(set_attr "op_type" "RS,RSY")])(define_insn "*tst<mode>_cconly"  [(set (reg CC_REGNUM)        (compare (match_operand:HQI 0 "s_operand" "Q,S")                 (match_operand:HQI 1 "const0_operand" "")))   (clobber (match_scratch:HQI 2 "=d,d"))]  "s390_match_ccmode(insn, CCSmode)"  "@   icm\t%2,<icm_lo>,%S0   icmy\t%2,<icm_lo>,%S0"  [(set_attr "op_type" "RS,RSY")]); Compare (equality) instructions(define_insn "*cmpdi_cct"  [(set (reg CC_REGNUM)        (compare (match_operand:DI 0 "nonimmediate_operand" "%d,d,d,d,Q")                 (match_operand:DI 1 "general_operand" "d,K,Os,m,BQ")))]  "s390_match_ccmode (insn, CCTmode) && TARGET_64BIT"  "@   cgr\t%0,%1   cghi\t%0,%h1   cgfi\t%0,%1   cg\t%0,%1   #"  [(set_attr "op_type" "RRE,RI,RIL,RXY,SS")])(define_insn "*cmpsi_cct"  [(set (reg CC_REGNUM)        (compare (match_operand:SI 0 "nonimmediate_operand" "%d,d,d,d,d,Q")                 (match_operand:SI 1 "general_operand" "d,K,Os,R,T,BQ")))]  "s390_match_ccmode (insn, CCTmode)"  "@   cr\t%0,%1   chi\t%0,%h1   cfi\t%0,%1   c\t%0,%1   cy\t%0,%1   #"  [(set_attr "op_type" "RR,RI,RIL,RX,RXY,SS")]); Compare (signed) instructions(define_insn "*cmpdi_ccs_sign"  [(set (reg CC_REGNUM)        (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,RXY")])(define_insn "*cmpdi_ccs"  [(set (reg CC_REGNUM)	(compare (match_operand:DI 0 "register_operand" "d,d,d,d")		 (match_operand:DI 1 "general_operand" "d,K,Os,m")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT"  "@   cgr\t%0,%1   cghi\t%0,%h1   cgfi\t%0,%1   cg\t%0,%1"  [(set_attr "op_type" "RRE,RI,RIL,RXY")])(define_insn "*cmpsi_ccs_sign"  [(set (reg CC_REGNUM)        (compare (sign_extend:SI (match_operand:HI 1 "memory_operand" "R,T"))                 (match_operand:SI 0 "register_operand" "d,d")))]  "s390_match_ccmode(insn, CCSRmode)"  "@   ch\t%0,%1   chy\t%0,%1"  [(set_attr "op_type" "RX,RXY")])(define_insn "*cmpsi_ccs"  [(set (reg CC_REGNUM)        (compare (match_operand:SI 0 "register_operand" "d,d,d,d,d")                 (match_operand:SI 1 "general_operand" "d,K,Os,R,T")))]  "s390_match_ccmode(insn, CCSmode)"  "@   cr\t%0,%1   chi\t%0,%h1   cfi\t%0,%1   c\t%0,%1   cy\t%0,%1"  [(set_attr "op_type" "RR,RI,RIL,RX,RXY")]); Compare (unsigned) instructions(define_insn "*cmpdi_ccu_zero"  [(set (reg CC_REGNUM)        (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,RXY")])(define_insn "*cmpdi_ccu"  [(set (reg CC_REGNUM)        (compare (match_operand:DI 0 "nonimmediate_operand" "d,d,d,Q,BQ")                 (match_operand:DI 1 "general_operand" "d,Op,m,BQ,Q")))]  "s390_match_ccmode (insn, CCUmode) && TARGET_64BIT"  "@   clgr\t%0,%1   clgfi\t%0,%1   clg\t%0,%1   #   #"  [(set_attr "op_type" "RRE,RIL,RXY,SS,SS")])(define_insn "*cmpsi_ccu"  [(set (reg CC_REGNUM)        (compare (match_operand:SI 0 "nonimmediate_operand" "d,d,d,d,Q,BQ")                 (match_operand:SI 1 "general_operand" "d,Os,R,T,BQ,Q")))]  "s390_match_ccmode (insn, CCUmode)"  "@   clr\t%0,%1   clfi\t%0,%o1   cl\t%0,%1   cly\t%0,%1   #   #"  [(set_attr "op_type" "RR,RIL,RX,RXY,SS,SS")])(define_insn "*cmphi_ccu"  [(set (reg CC_REGNUM)        (compare (match_operand:HI 0 "nonimmediate_operand" "d,d,Q,BQ")                 (match_operand:HI 1 "general_operand" "Q,S,BQ,Q")))]  "s390_match_ccmode (insn, CCUmode)   && !register_operand (operands[1], HImode)"  "@   clm\t%0,3,%S1   clmy\t%0,3,%S1   #   #"  [(set_attr "op_type" "RS,RSY,SS,SS")])(define_insn "*cmpqi_ccu"  [(set (reg CC_REGNUM)        (compare (match_operand:QI 0 "nonimmediate_operand" "d,d,Q,S,Q,BQ")                 (match_operand:QI 1 "general_operand" "Q,S,n,n,BQ,Q")))]  "s390_match_ccmode (insn, CCUmode)   && !register_operand (operands[1], QImode)"  "@   clm\t%0,1,%S1   clmy\t%0,1,%S1   cli\t%S0,%b1   cliy\t%S0,%b1   #   #"  [(set_attr "op_type" "RS,RSY,SI,SIY,SS,SS")]); Block compare (CLC) instruction patterns.(define_insn "*clc"  [(set (reg CC_REGNUM)        (compare (match_operand:BLK 0 "memory_operand" "Q")                 (match_operand:BLK 1 "memory_operand" "Q")))   (use (match_operand 2 "const_int_operand" "n"))]  "s390_match_ccmode (insn, CCUmode)   && INTVAL (operands[2]) >= 1 && INTVAL (operands[2]) <= 256"  "clc\t%O0(%2,%R0),%S1"  [(set_attr "op_type" "SS")])(define_split  [(set (reg CC_REGNUM)        (compare (match_operand 0 "memory_operand" "")                 (match_operand 1 "memory_operand" "")))]  "reload_completed   && s390_match_ccmode (insn, CCUmode)   && GET_MODE (operands[0]) == GET_MODE (operands[1])   && GET_MODE_SIZE (GET_MODE (operands[0])) > 0"  [(parallel    [(set (match_dup 0) (match_dup 1))     (use (match_dup 2))])]{  operands[2] = GEN_INT (GET_MODE_SIZE (GET_MODE (operands[0])));  operands[0] = adjust_address (operands[0], BLKmode, 0);  operands[1] = adjust_address (operands[1], BLKmode, 0);  operands[1] = gen_rtx_COMPARE (GET_MODE (SET_DEST (PATTERN (curr_insn))),				 operands[0], operands[1]);  operands[0] = SET_DEST (PATTERN (curr_insn));}); (DF|SF) instructions(define_insn "*cmp<mode>_ccs_0"  [(set (reg CC_REGNUM)        (compare (match_operand:FPR 0 "register_operand" "f")                 (match_operand:FPR 1 "const0_operand" "")))]  "s390_match_ccmode(insn, CCSmode) && TARGET_HARD_FLOAT && TARGET_IEEE_FLOAT"  "lt<xde>br\t%0,%0"   [(set_attr "op_type" "RRE")    (set_attr "type"  "fsimp<mode>")])(define_insn "*cmp<mode>_ccs_0_ibm"  [(set (reg CC_REGNUM)        (compare (match_operand:FPR 0 "register_operand" "f")                 (match_operand:FPR 1 "const0_operand" "")))]

⌨️ 快捷键说明

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