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

📄 mips-dsp.md

📁 linux下编程用 编译软件
💻 MD
📖 第 1 页 / 共 3 页
字号:
    }  return "shrlv.qb\t%0,%1,%2";}  [(set_attr "type"	"shift")   (set_attr "mode"	"SI")]);; SHRA*(define_insn "mips_shra_ph"  [(set (match_operand:V2HI 0 "register_operand" "=d,d")	(unspec:V2HI [(match_operand:V2HI 1 "register_operand" "d,d")		      (match_operand:SI 2 "arith_operand" "I,d")]		     UNSPEC_SHRA_PH))]  "TARGET_DSP"{  if (which_alternative == 0)    {      if (INTVAL (operands[2]) & ~(unsigned HOST_WIDE_INT) 0xf)	operands[2] = GEN_INT (INTVAL (operands[2]) & 0xf);      return "shra.ph\t%0,%1,%2";    }  return "shrav.ph\t%0,%1,%2";}  [(set_attr "type"	"shift")   (set_attr "mode"	"SI")])(define_insn "mips_shra_r_<DSPQ:dspfmt2>"  [(set (match_operand:DSPQ 0 "register_operand" "=d,d")	(unspec:DSPQ [(match_operand:DSPQ 1 "register_operand" "d,d")		      (match_operand:SI 2 "arith_operand" "I,d")]		     UNSPEC_SHRA_R))]  "TARGET_DSP"{  if (which_alternative == 0)    {      if (INTVAL (operands[2])	  & ~(unsigned HOST_WIDE_INT) <DSPQ:dspshift_mask>)	operands[2] = GEN_INT (INTVAL (operands[2]) & <DSPQ:dspshift_mask>);      return "shra_r.<DSPQ:dspfmt2>\t%0,%1,%2";    }  return "shrav_r.<DSPQ:dspfmt2>\t%0,%1,%2";}  [(set_attr "type"	"shift")   (set_attr "mode"	"SI")]);; Table 2-3. MIPS DSP ASE Instructions: Multiply;; MULEU*(define_insn "mips_muleu_s_ph_qbl"  [(parallel    [(set (match_operand:V2HI 0 "register_operand" "=d")	  (unspec:V2HI [(match_operand:V4QI 1 "register_operand" "d")			(match_operand:V2HI 2 "register_operand" "d")]		       UNSPEC_MULEU_S_PH_QBL))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_MULEU_S_PH_QBL))     (clobber (match_scratch:DI 3 "=x"))])]  "TARGET_DSP"  "muleu_s.ph.qbl\t%0,%1,%2"  [(set_attr "type"	"imul3")   (set_attr "mode"	"SI")])(define_insn "mips_muleu_s_ph_qbr"  [(parallel    [(set (match_operand:V2HI 0 "register_operand" "=d")	  (unspec:V2HI [(match_operand:V4QI 1 "register_operand" "d")			(match_operand:V2HI 2 "register_operand" "d")]		       UNSPEC_MULEU_S_PH_QBR))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_MULEU_S_PH_QBR))     (clobber (match_scratch:DI 3 "=x"))])]  "TARGET_DSP"  "muleu_s.ph.qbr\t%0,%1,%2"  [(set_attr "type"	"imul3")   (set_attr "mode"	"SI")]);; MULQ*(define_insn "mips_mulq_rs_ph"  [(parallel    [(set (match_operand:V2HI 0 "register_operand" "=d")	  (unspec:V2HI [(match_operand:V2HI 1 "register_operand" "d")			(match_operand:V2HI 2 "register_operand" "d")]		       UNSPEC_MULQ_RS_PH))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_MULQ_RS_PH))     (clobber (match_scratch:DI 3 "=x"))])]  "TARGET_DSP"  "mulq_rs.ph\t%0,%1,%2"  [(set_attr "type"	"imul3")   (set_attr "mode"	"SI")]);; MULEQ*(define_insn "mips_muleq_s_w_phl"  [(parallel    [(set (match_operand:SI 0 "register_operand" "=d")	  (unspec:SI [(match_operand:V2HI 1 "register_operand" "d")		      (match_operand:V2HI 2 "register_operand" "d")]		     UNSPEC_MULEQ_S_W_PHL))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_MULEQ_S_W_PHL))     (clobber (match_scratch:DI 3 "=x"))])]  "TARGET_DSP"  "muleq_s.w.phl\t%0,%1,%2"  [(set_attr "type"	"imul3")   (set_attr "mode"	"SI")])(define_insn "mips_muleq_s_w_phr"  [(parallel    [(set (match_operand:SI 0 "register_operand" "=d")	  (unspec:SI [(match_operand:V2HI 1 "register_operand" "d")		      (match_operand:V2HI 2 "register_operand" "d")]		     UNSPEC_MULEQ_S_W_PHR))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_MULEQ_S_W_PHR))     (clobber (match_scratch:DI 3 "=x"))])]  "TARGET_DSP"  "muleq_s.w.phr\t%0,%1,%2"  [(set_attr "type"	"imul3")   (set_attr "mode"	"SI")]);; DPAU*(define_insn "mips_dpau_h_qbl"  [(set (match_operand:DI 0 "register_operand" "=a")	(unspec:DI [(match_operand:DI 1 "register_operand" "0")		    (match_operand:V4QI 2 "register_operand" "d")		    (match_operand:V4QI 3 "register_operand" "d")]		   UNSPEC_DPAU_H_QBL))]  "TARGET_DSP && !TARGET_64BIT"  "dpau.h.qbl\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")])(define_insn "mips_dpau_h_qbr"  [(set (match_operand:DI 0 "register_operand" "=a")	(unspec:DI [(match_operand:DI 1 "register_operand" "0")		    (match_operand:V4QI 2 "register_operand" "d")		    (match_operand:V4QI 3 "register_operand" "d")]		   UNSPEC_DPAU_H_QBR))]  "TARGET_DSP && !TARGET_64BIT"  "dpau.h.qbr\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")]);; DPSU*(define_insn "mips_dpsu_h_qbl"  [(set (match_operand:DI 0 "register_operand" "=a")	(unspec:DI [(match_operand:DI 1 "register_operand" "0")		    (match_operand:V4QI 2 "register_operand" "d")		    (match_operand:V4QI 3 "register_operand" "d")]		   UNSPEC_DPSU_H_QBL))]  "TARGET_DSP && !TARGET_64BIT"  "dpsu.h.qbl\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")])(define_insn "mips_dpsu_h_qbr"  [(set (match_operand:DI 0 "register_operand" "=a")	(unspec:DI [(match_operand:DI 1 "register_operand" "0")		    (match_operand:V4QI 2 "register_operand" "d")		    (match_operand:V4QI 3 "register_operand" "d")]		   UNSPEC_DPSU_H_QBR))]  "TARGET_DSP && !TARGET_64BIT"  "dpsu.h.qbr\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")]);; DPAQ*(define_insn "mips_dpaq_s_w_ph"  [(parallel    [(set (match_operand:DI 0 "register_operand" "=a")	  (unspec:DI [(match_operand:DI 1 "register_operand" "0")		      (match_operand:V2HI 2 "register_operand" "d")		      (match_operand:V2HI 3 "register_operand" "d")]		     UNSPEC_DPAQ_S_W_PH))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2) (match_dup 3)]			UNSPEC_DPAQ_S_W_PH))])]  "TARGET_DSP && !TARGET_64BIT"  "dpaq_s.w.ph\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")]);; DPSQ*(define_insn "mips_dpsq_s_w_ph"  [(parallel    [(set (match_operand:DI 0 "register_operand" "=a")	  (unspec:DI [(match_operand:DI 1 "register_operand" "0")		      (match_operand:V2HI 2 "register_operand" "d")		      (match_operand:V2HI 3 "register_operand" "d")]		     UNSPEC_DPSQ_S_W_PH))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2) (match_dup 3)]			UNSPEC_DPSQ_S_W_PH))])]  "TARGET_DSP && !TARGET_64BIT"  "dpsq_s.w.ph\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")]);; MULSAQ*(define_insn "mips_mulsaq_s_w_ph"  [(parallel    [(set (match_operand:DI 0 "register_operand" "=a")	  (unspec:DI [(match_operand:DI 1 "register_operand" "0")		      (match_operand:V2HI 2 "register_operand" "d")		      (match_operand:V2HI 3 "register_operand" "d")]		     UNSPEC_MULSAQ_S_W_PH))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2) (match_dup 3)]			UNSPEC_MULSAQ_S_W_PH))])]  "TARGET_DSP && !TARGET_64BIT"  "mulsaq_s.w.ph\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")]);; DPAQ*(define_insn "mips_dpaq_sa_l_w"  [(parallel    [(set (match_operand:DI 0 "register_operand" "=a")	  (unspec:DI [(match_operand:DI 1 "register_operand" "0")		      (match_operand:SI 2 "register_operand" "d")		      (match_operand:SI 3 "register_operand" "d")]		     UNSPEC_DPAQ_SA_L_W))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2) (match_dup 3)]			UNSPEC_DPAQ_SA_L_W))])]  "TARGET_DSP && !TARGET_64BIT"  "dpaq_sa.l.w\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")]);; DPSQ*(define_insn "mips_dpsq_sa_l_w"  [(parallel    [(set (match_operand:DI 0 "register_operand" "=a")	  (unspec:DI [(match_operand:DI 1 "register_operand" "0")		      (match_operand:SI 2 "register_operand" "d")		      (match_operand:SI 3 "register_operand" "d")]		     UNSPEC_DPSQ_SA_L_W))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2) (match_dup 3)]			UNSPEC_DPSQ_SA_L_W))])]  "TARGET_DSP && !TARGET_64BIT"  "dpsq_sa.l.w\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")]);; MAQ*(define_insn "mips_maq_s_w_phl"  [(parallel    [(set (match_operand:DI 0 "register_operand" "=a")	  (unspec:DI [(match_operand:DI 1 "register_operand" "0")		      (match_operand:V2HI 2 "register_operand" "d")		      (match_operand:V2HI 3 "register_operand" "d")]		     UNSPEC_MAQ_S_W_PHL))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2) (match_dup 3)]			UNSPEC_MAQ_S_W_PHL))])]  "TARGET_DSP && !TARGET_64BIT"  "maq_s.w.phl\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")])(define_insn "mips_maq_s_w_phr"  [(parallel    [(set (match_operand:DI 0 "register_operand" "=a")	  (unspec:DI [(match_operand:DI 1 "register_operand" "0")		      (match_operand:V2HI 2 "register_operand" "d")		      (match_operand:V2HI 3 "register_operand" "d")]		     UNSPEC_MAQ_S_W_PHR))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2) (match_dup 3)]			UNSPEC_MAQ_S_W_PHR))])]  "TARGET_DSP && !TARGET_64BIT"  "maq_s.w.phr\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")]);; MAQ_SA*(define_insn "mips_maq_sa_w_phl"  [(parallel    [(set (match_operand:DI 0 "register_operand" "=a")	  (unspec:DI [(match_operand:DI 1 "register_operand" "0")		      (match_operand:V2HI 2 "register_operand" "d")		      (match_operand:V2HI 3 "register_operand" "d")]		     UNSPEC_MAQ_SA_W_PHL))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2) (match_dup 3)]			UNSPEC_MAQ_SA_W_PHL))])]  "TARGET_DSP && !TARGET_64BIT"  "maq_sa.w.phl\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")])(define_insn "mips_maq_sa_w_phr"  [(parallel    [(set (match_operand:DI 0 "register_operand" "=a")	  (unspec:DI [(match_operand:DI 1 "register_operand" "0")		      (match_operand:V2HI 2 "register_operand" "d")		      (match_operand:V2HI 3 "register_operand" "d")]		     UNSPEC_MAQ_SA_W_PHR))     (set (reg:CCDSP CCDSP_OU_REGNUM)	  (unspec:CCDSP [(match_dup 1) (match_dup 2) (match_dup 3)]			UNSPEC_MAQ_SA_W_PHR))])]  "TARGET_DSP && !TARGET_64BIT"  "maq_sa.w.phr\t%q0,%2,%3"  [(set_attr "type"	"imadd")   (set_attr "mode"	"SI")]);; Table 2-4. MIPS DSP ASE Instructions: General Bit/Manipulation;; BITREV(define_insn "mips_bitrev"  [(set (match_operand:SI 0 "register_operand" "=d")	(unspec:SI [(match_operand:SI 1 "register_operand" "d")]		   UNSPEC_BITREV))]  "TARGET_DSP"  "bitrev\t%0,%1"  [(set_attr "type"	"arith")   (set_attr "mode"	"SI")]);; INSV(define_insn "mips_insv"  [(set (match_operand:SI 0 "register_operand" "=d")	(unspec:SI [(match_operand:SI 1 "register_operand" "0")		    (match_operand:SI 2 "register_operand" "d")		    (reg:CCDSP CCDSP_SC_REGNUM)		    (reg:CCDSP CCDSP_PO_REGNUM)]		   UNSPEC_INSV))]  "TARGET_DSP"  "insv\t%0,%2"  [(set_attr "type"	"arith")   (set_attr "mode"	"SI")]);; REPL*(define_insn "mips_repl_qb"  [(set (match_operand:V4QI 0 "register_operand" "=d,d")	(unspec:V4QI [(match_operand:SI 1 "arith_operand" "I,d")]		     UNSPEC_REPL_QB))]  "TARGET_DSP"{  if (which_alternative == 0)    {      if (INTVAL (operands[1]) & ~(unsigned HOST_WIDE_INT) 0xff)	operands[1] = GEN_INT (INTVAL (operands[1]) & 0xff);      return "repl.qb\t%0,%1";    }  return "replv.qb\t%0,%1";}  [(set_attr "type"	"arith")   (set_attr "mode"	"SI")])(define_insn "mips_repl_ph"  [(set (match_operand:V2HI 0 "register_operand" "=d,d")	(unspec:V2HI [(match_operand:SI 1 "reg_imm10_operand" "YB,d")]		     UNSPEC_REPL_PH))]  "TARGET_DSP"

⌨️ 快捷键说明

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