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

📄 pj.md

📁 gcc3.2.1源代码
💻 MD
📖 第 1 页 / 共 2 页
字号:
;; Machine description for GNU compiler, picoJava Version;; Copyright (C) 2000 Free Software Foundation, Inc.;; Contributed by Steve Chamberlain, of Transmeta (sac@pobox.com).;; This file is part of GNU CC.;; GNU CC is free software; you can redistribute it and/or modify;; it under the terms of the GNU General Public License as published by;; the Free Software Foundation; either version 2, or (at your option);; any later version.;; GNU CC is distributed in the hope that it will be useful,;; but WITHOUT ANY WARRANTY; without even the implied warranty of;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the;; GNU General Public License for more details.;; You should have received a copy of the GNU General Public License;; along with GNU CC; see the file COPYING.  If not, write to;; the Free Software Foundation, 59 Temple Place - Suite 330,;; Boston, MA 02111-1307, USA.;; Move instructions.(define_insn "movsi"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (match_operand:SI 1 "pj_source_operand" "gS"))]  ""  "%S1%R0")(define_insn "movhi"  [(set (match_operand:HI 0 "nonimmediate_operand" "=gD")        (match_operand:HI 1 "pj_source_operand" "gS"))]  ""  "%S1%R0")(define_insn "movqi"  [(set (match_operand:QI 0 "nonimmediate_operand" "=gD")        (match_operand:QI 1 "pj_source_operand" "gS"))]  ""  "%S1%R0")(define_insn "movdi"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (match_operand:DI 1 "pj_source_operand" "gS"))]  ""  "%D1%*%R0")(define_insn "movdf"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")        (match_operand:DF 1 "pj_source_operand" "gS"))]  ""  "%D1%R0")(define_insn "movsf"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")        (match_operand:SF 1 "pj_source_operand" "gS"))]  ""  "%S1%R0");; Arithmetic.(define_insn "addsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (plus:SI (match_operand:SI 1 "pj_source_operand" "%gS")                 (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "* return pj_output_addsi3 (operands);")(define_insn "adddi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (plus:DI (match_operand:DI 1 "pj_source_operand" "%gS")                 (match_operand:DI 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*ladd%R0")(define_insn "addsf3"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")        (plus:SF (match_operand:SF 1 "pj_source_operand" "%gS")                 (match_operand:SF 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*fadd%R0")(define_insn "adddf3"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")        (plus:DF (match_operand:DF 1 "pj_source_operand" "%gS")                 (match_operand:DF 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*dadd%R0")(define_insn "negsi2"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (neg:SI (match_operand:SI 1 "pj_source_operand" "gS")))]  ""  "%S1%*ineg%R0")(define_insn "negdi2"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (neg:DI (match_operand:DI 1 "pj_source_operand" "gS")))]  ""  "%S1%*lneg%R0")(define_insn "negsf2"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")        (neg:SF (match_operand:SF 1 "pj_source_operand" "gS")))]  ""  "%S1%*fneg%R0")(define_insn "negdf2"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")        (neg:DF (match_operand:DF 1 "pj_source_operand" "gS")))]  ""  "%D1%*dneg%R0")(define_insn "subsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (minus:SI (match_operand:SI 1 "pj_source_operand" "gS")                  (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*isub%R0")(define_insn "subdi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (minus:DI (match_operand:DI 1 "pj_source_operand" "gS")                  (match_operand:DI 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*lsub%R0")(define_insn "subsf3"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")        (minus:SF (match_operand:SF 1 "pj_source_operand" "gS")                 (match_operand:SF 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*fsub%R0")(define_insn "subdf3"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")        (minus:DF (match_operand:DF 1 "pj_source_operand" "gS")                 (match_operand:DF 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*dsub%R0")(define_insn "divsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (div:SI (match_operand:SI 1 "pj_source_operand" "gS")                (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*idiv%R0")(define_insn "divdi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (div:DI (match_operand:DI 1 "pj_source_operand" "gS")                (match_operand:DI 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*ldiv%R0")(define_insn "divsf3"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")        (div:SF (match_operand:SF 1 "pj_source_operand" "gS")		(match_operand:SF 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*fdiv%R0")(define_insn "divdf3"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")        (div:DF (match_operand:DF 1 "pj_source_operand" "gS")		(match_operand:DF 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*ddiv%R0")(define_insn "udivsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (udiv:SI (match_operand:SI 1 "pj_source_operand" "gS")                (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%P1%P2%*ldiv%*l2i%R0")(define_insn "mulsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (mult:SI (match_operand:SI 1 "pj_source_operand" "gS")                 (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*imul%R0")(define_insn "muldi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (mult:DI (match_operand:DI 1 "pj_source_operand" "gS")                 (match_operand:DI 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*lmul%R0")(define_insn "muldf3"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")        (mult:DF (match_operand:DF 1 "pj_source_operand" "%gS")		(match_operand:DF 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*dmul%R0")(define_insn "mulsf3"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")        (mult:SF (match_operand:SF 1 "pj_source_operand" "%gS")		(match_operand:SF 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*fmul%R0")(define_insn "modsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (mod:SI (match_operand:SI 1 "pj_source_operand" "gS")                (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*irem%R0")(define_insn "moddi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (mod:DI (match_operand:DI 1 "pj_source_operand" "gS")                (match_operand:DI 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*lrem%R0")(define_insn "moddf3"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")        (mod:DF (match_operand:DF 1 "pj_source_operand" "gS")		(match_operand:DF 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*drem%R0")(define_insn "modsf3"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")        (mod:SF (match_operand:SF 1 "pj_source_operand" "gS")		(match_operand:SF 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*frem%R0")(define_insn "umodsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (umod:SI (match_operand:SI 1 "pj_source_operand" "gS")                (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%P1%P2%*lrem%*l2i%R0");; Logical operations.(define_insn "andsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (and:SI (match_operand:SI 1 "pj_source_operand" "%gS")                (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*iand%R0")(define_insn "anddi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (and:DI (match_operand:DI 1 "pj_source_operand" "%gS")                (match_operand:DI 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*land%R0")(define_insn "iorsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (ior:SI (match_operand:SI 1 "pj_source_operand" "%gS")                (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*ior%R0")(define_insn "iordi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (ior:DI (match_operand:DI 1 "pj_source_operand" "%gS")                (match_operand:DI 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*lor%R0")(define_insn "xorsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (xor:SI (match_operand:SI 1 "pj_source_operand" "%gS")                (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*ixor%R0")(define_insn "xordi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (xor:DI (match_operand:DI 1 "pj_source_operand" "%gS")                (match_operand:DI 2 "pj_source_operand" "gS")))]  ""  "%D1%D2%*lxor%R0")(define_insn "one_cmplsi2"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (not:SI (match_operand:SI 1 "pj_source_operand" "gS")))]  ""  "%S1%*iconst_m1%*ixor%R0")(define_insn "one_cmpldi2"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (not:DI (match_operand:DI 1 "pj_source_operand" "gS")))]  ""  "%S1%*iconst_m1%*iconst_m1%*lxor%R0");; Shift instructions.(define_insn "ashlsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (ashift:SI (match_operand:SI 1 "pj_source_operand" "gS")                   (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*ishl%R0")(define_insn "ashldi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (ashift:DI (match_operand:DI 1 "pj_source_operand" "gS")                   (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%D1%S2%*lshl%R0")(define_insn "ashrsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (ashiftrt:SI (match_operand:SI 1 "pj_source_operand" "gS")                     (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*ishr%R0")(define_insn "ashrdi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (ashiftrt:DI (match_operand:DI 1 "pj_source_operand" "gS")                     (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%D1%S2%*lshr%R0")(define_insn "lshrsi3"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (lshiftrt:SI (match_operand:SI 1 "pj_source_operand" "gS")                     (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%S1%S2%*iushr%R0")(define_insn "lshrdi3"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (lshiftrt:DI (match_operand:DI 1 "pj_source_operand" "gS")                     (match_operand:SI 2 "pj_source_operand" "gS")))]  ""  "%D1%S2%*lushr%R0");; Comparisons.(define_expand "cmpsi"  [(set (cc0) (compare (match_operand:SI 0 "pj_source_operand" "gS")                       (match_operand:SI 1 "pj_source_operand" "gS")))]  ""  "{      pj_cmp_op0 = operands[0];     pj_cmp_op1 = operands[1];     pj_cmp_mode = SImode;     DONE;   }")(define_expand "cmpdi"  [(set (cc0) (compare (match_operand:DI 0 "pj_source_operand" "gS")                       (match_operand:DI 1 "pj_source_operand" "gS")))]  ""  "{      pj_cmp_op0 = operands[0];     pj_cmp_op1 = operands[1];     pj_cmp_mode = DImode;      DONE;   }")(define_expand "cmpsf"  [(set (cc0) (compare (match_operand:SF 0 "pj_source_operand" "gS")                       (match_operand:SF 1 "pj_source_operand" "gS")))]  ""  "{      pj_cmp_op0 = operands[0];     pj_cmp_op1 = operands[1];     pj_cmp_mode = SFmode;     DONE;   }")(define_expand "cmpdf"  [(set (cc0) (compare (match_operand:DF 0 "pj_source_operand" "gS")                       (match_operand:DF 1 "pj_source_operand" "gS")))]  ""  "{      pj_cmp_op0 = operands[0];     pj_cmp_op1 = operands[1];     pj_cmp_mode = DFmode;     DONE;   }");; Conversions.(define_insn "truncsiqi2"  [(set (match_operand:QI 0 "nonimmediate_operand" "=gD")        (truncate:QI (match_operand:SI 1 "pj_source_operand" "gS")))]  ""  "%S1%*%R0")(define_insn "truncsihi2"  [(set (match_operand:HI 0 "nonimmediate_operand" "=gD")        (truncate:HI (match_operand:SI 1 "pj_source_operand" "gS")))]  ""  "%S1%*i2c%R0")(define_insn "truncdisi2"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (truncate:SI (match_operand:DI 1 "pj_source_operand" "gS")))]  ""  "%D1%*l2i%R0")(define_insn "fix_truncsfsi2"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")	(fix:SI (match_operand:SF 1 "pj_source_operand" "gS")))]  ""  "%S1%*f2i%R0")(define_insn "fix_truncsfdi2"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")	(fix:DI (match_operand:SF 1 "pj_source_operand" "gS")))]  ""  "%S1%*f2l%R0")(define_insn "truncdfsf2"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")	(float_truncate:SF (match_operand:DF  1 "pj_source_operand" "gS")))]  ""  "%D1%*d2f%R0")(define_insn "fix_truncdfsi2"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")	(fix:SI (match_operand:DF 1 "pj_source_operand" "gS")))]  ""  "%D1%*d2i%R0")(define_insn "fix_truncdfdi2"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")	(fix:DI (match_operand:DF 1 "pj_source_operand" "gS")))]  ""  "%D1%*d2l%R0")(define_insn "floatsisf2"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")	(float:SF (match_operand:SI 1 "pj_source_operand" "gS")))]  ""  "%S1%*i2f%R0")(define_insn "floatsidf2"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")	(float:DF (match_operand:SI 1 "pj_source_operand" "gS")))]  ""  "%S1%*i2d%R0")(define_insn "floatdisf2"  [(set (match_operand:SF 0 "nonimmediate_operand" "=gD")	(float:SF (match_operand:DI 1 "pj_source_operand" "gS")))]  ""  "%D1%*l2f%R0")(define_insn "floatdidf2"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")	(float:DF (match_operand:DI 1 "pj_source_operand" "gS")))]  ""  "%D1%*l2d%R0");; Zero-extend move instructions.(define_insn "zero_extendsidi2"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (zero_extend:DI (match_operand:SI 1 "pj_source_operand" "gS")))]  ""  "%P1%R0")(define_insn "zero_extendhisi2"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (zero_extend:SI (match_operand:HI 1 "pj_source_operand" "gS")))]  ""  "%S1%*i2c%R0")(define_insn "zero_extendqisi2"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (zero_extend:SI (match_operand:QI 1 "pj_source_operand" "gS")))]  ""  "%S1%*sipush 0xff%*iand%R0");; Conditional branch instructions.(define_expand "beq"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])

⌨️ 快捷键说明

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