Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java @ 16315:b955d649fca8
Fixing BC_i2f, BC_i2c, BC_fadd
Implementing instructions in assembler Movwtos and Fitos
author | Stefan Anzinger <stefan.anzinger@gmail.com> |
---|---|
date | Mon, 02 Jun 2014 20:40:57 +0200 |
parents | 151fe6b1e511 |
children | 4b24d2019286 |
comparison
equal
deleted
inserted
replaced
16314:f57cf459f5d3 | 16315:b955d649fca8 |
---|---|
1179 Fnmuls(0x59, "fnmuls"), | 1179 Fnmuls(0x59, "fnmuls"), |
1180 Fnmuld(0x5A, "fnmuld"), | 1180 Fnmuld(0x5A, "fnmuld"), |
1181 Fnsmuld(0x79, "fnsmuld"), | 1181 Fnsmuld(0x79, "fnsmuld"), |
1182 Fnhadds(0x71, "fnhadds"), | 1182 Fnhadds(0x71, "fnhadds"), |
1183 Fnhaddd(0x72, "fnhaddd"), | 1183 Fnhaddd(0x72, "fnhaddd"), |
1184 Movtos(0x119, "movtos"), | |
1184 // end VIS3 | 1185 // end VIS3 |
1185 | 1186 |
1186 // start CAMMELLIA | 1187 // start CAMMELLIA |
1187 CammelliaFl(0x13C, "cammelia_fl"), | 1188 CammelliaFl(0x13C, "cammelia_fl"), |
1188 CammelliaFli(0x13D, "cammellia_fli"), | 1189 CammelliaFli(0x13D, "cammellia_fli"), |
1226 Fsmuld(0x69, "fsmuld"), | 1227 Fsmuld(0x69, "fsmuld"), |
1227 Fmulq(0x6B, "fmulq"), | 1228 Fmulq(0x6B, "fmulq"), |
1228 Fdmuldq(0x6E, "fdmulq"), | 1229 Fdmuldq(0x6E, "fdmulq"), |
1229 | 1230 |
1230 Fstoi(0xD1, "fstoi"), | 1231 Fstoi(0xD1, "fstoi"), |
1231 Fdtoi(0xD2, "fdtoi"); | 1232 Fdtoi(0xD2, "fdtoi"), |
1233 Fitos(0xC4, "fitos"); | |
1232 // @formatter:on | 1234 // @formatter:on |
1233 | 1235 |
1234 private final int value; | 1236 private final int value; |
1235 private final String operator; | 1237 private final String operator; |
1236 | 1238 |
1665 /* VIS2 only */ | 1667 /* VIS2 only */ |
1666 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Bmask, src1, src2, dst); | 1668 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Bmask, src1, src2, dst); |
1667 } | 1669 } |
1668 } | 1670 } |
1669 | 1671 |
1672 public static class Movwtos extends Fmt3p { | |
1673 public Movwtos(Register src, Register dst) { | |
1674 /* VIS3 only */ | |
1675 super(Ops.ArithOp, Op3s.Impdep1, Opfs.Movtos, g0, src, dst); | |
1676 } | |
1677 } | |
1678 | |
1670 public static class Bpa extends Fmt00c { | 1679 public static class Bpa extends Fmt00c { |
1671 | 1680 |
1672 public Bpa(int simm19) { | 1681 public Bpa(int simm19) { |
1673 super(0, ConditionFlag.Always, Op2s.Bp, CC.Icc, 1, simm19); | 1682 super(0, ConditionFlag.Always, Op2s.Bp, CC.Icc, 1, simm19); |
1674 } | 1683 } |
2635 public Fdtoi(SPARCAssembler masm, Register src2, Register dst) { | 2644 public Fdtoi(SPARCAssembler masm, Register src2, Register dst) { |
2636 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fdtoi.getValue(), src2.encoding(), dst.encoding()); | 2645 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fdtoi.getValue(), src2.encoding(), dst.encoding()); |
2637 } | 2646 } |
2638 } | 2647 } |
2639 | 2648 |
2649 public static class Fitos extends Fmt3n { | |
2650 | |
2651 public Fitos(SPARCAssembler masm, Register src2, Register dst) { | |
2652 super(masm, Ops.ArithOp.getValue(), Op3s.Fpop1.getValue(), Opfs.Fitos.getValue(), src2.encoding(), dst.encoding()); | |
2653 } | |
2654 } | |
2655 | |
2640 /** | 2656 /** |
2641 * Flush register windows | 2657 * Flush register windows |
2642 */ | 2658 */ |
2643 public static class Flushw extends Fmt10 { | 2659 public static class Flushw extends Fmt10 { |
2644 | 2660 |
2860 } | 2876 } |
2861 | 2877 |
2862 public static class Ldf extends Fmt11 { | 2878 public static class Ldf extends Fmt11 { |
2863 | 2879 |
2864 public Ldf(SPARCAddress src, Register dst) { | 2880 public Ldf(SPARCAddress src, Register dst) { |
2881 super(Op3s.Ldf, src, dst); | |
2882 } | |
2883 | |
2884 public Ldf(Register src, Register dst) { | |
2865 super(Op3s.Ldf, src, dst); | 2885 super(Op3s.Ldf, src, dst); |
2866 } | 2886 } |
2867 } | 2887 } |
2868 | 2888 |
2869 public static class Ldsb extends Fmt11 { | 2889 public static class Ldsb extends Fmt11 { |