OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 1061 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1072 | 1072 |
1073 void psllq(XMMRegister reg, byte imm8); | 1073 void psllq(XMMRegister reg, byte imm8); |
1074 void psrlq(XMMRegister reg, byte imm8); | 1074 void psrlq(XMMRegister reg, byte imm8); |
1075 void pslld(XMMRegister reg, byte imm8); | 1075 void pslld(XMMRegister reg, byte imm8); |
1076 void psrld(XMMRegister reg, byte imm8); | 1076 void psrld(XMMRegister reg, byte imm8); |
1077 | 1077 |
1078 void cvttsd2si(Register dst, const Operand& src); | 1078 void cvttsd2si(Register dst, const Operand& src); |
1079 void cvttsd2si(Register dst, XMMRegister src); | 1079 void cvttsd2si(Register dst, XMMRegister src); |
1080 void cvttss2siq(Register dst, XMMRegister src); | 1080 void cvttss2siq(Register dst, XMMRegister src); |
1081 void cvttss2siq(Register dst, const Operand& src); | 1081 void cvttss2siq(Register dst, const Operand& src); |
| 1082 void cvtss2siq(Register dst, XMMRegister src); |
| 1083 void cvtss2siq(Register dst, const Operand& src); |
1082 void cvttsd2siq(Register dst, XMMRegister src); | 1084 void cvttsd2siq(Register dst, XMMRegister src); |
1083 void cvttsd2siq(Register dst, const Operand& src); | 1085 void cvttsd2siq(Register dst, const Operand& src); |
1084 | 1086 |
1085 void cvtlsi2sd(XMMRegister dst, const Operand& src); | 1087 void cvtlsi2sd(XMMRegister dst, const Operand& src); |
1086 void cvtlsi2sd(XMMRegister dst, Register src); | 1088 void cvtlsi2sd(XMMRegister dst, Register src); |
1087 | 1089 |
1088 void cvtqsi2ss(XMMRegister dst, const Operand& src); | 1090 void cvtqsi2ss(XMMRegister dst, const Operand& src); |
1089 void cvtqsi2ss(XMMRegister dst, Register src); | 1091 void cvtqsi2ss(XMMRegister dst, Register src); |
1090 | 1092 |
1091 void cvtqsi2sd(XMMRegister dst, const Operand& src); | 1093 void cvtqsi2sd(XMMRegister dst, const Operand& src); |
1092 void cvtqsi2sd(XMMRegister dst, Register src); | 1094 void cvtqsi2sd(XMMRegister dst, Register src); |
1093 | 1095 |
1094 | 1096 |
1095 void cvtss2sd(XMMRegister dst, XMMRegister src); | 1097 void cvtss2sd(XMMRegister dst, XMMRegister src); |
1096 void cvtss2sd(XMMRegister dst, const Operand& src); | 1098 void cvtss2sd(XMMRegister dst, const Operand& src); |
1097 void cvtsd2ss(XMMRegister dst, XMMRegister src); | 1099 void cvtsd2ss(XMMRegister dst, XMMRegister src); |
1098 void cvtsd2ss(XMMRegister dst, const Operand& src); | 1100 void cvtsd2ss(XMMRegister dst, const Operand& src); |
1099 | 1101 |
1100 void cvtsd2si(Register dst, XMMRegister src); | 1102 void cvtsd2si(Register dst, XMMRegister src); |
1101 void cvtsd2siq(Register dst, XMMRegister src); | 1103 void cvtsd2siq(Register dst, XMMRegister src); |
| 1104 void cvtsd2siq(Register dst, const Operand& src); |
1102 | 1105 |
1103 void addsd(XMMRegister dst, XMMRegister src); | 1106 void addsd(XMMRegister dst, XMMRegister src); |
1104 void addsd(XMMRegister dst, const Operand& src); | 1107 void addsd(XMMRegister dst, const Operand& src); |
1105 void subsd(XMMRegister dst, XMMRegister src); | 1108 void subsd(XMMRegister dst, XMMRegister src); |
1106 void subsd(XMMRegister dst, const Operand& src); | 1109 void subsd(XMMRegister dst, const Operand& src); |
1107 void mulsd(XMMRegister dst, XMMRegister src); | 1110 void mulsd(XMMRegister dst, XMMRegister src); |
1108 void mulsd(XMMRegister dst, const Operand& src); | 1111 void mulsd(XMMRegister dst, const Operand& src); |
1109 void divsd(XMMRegister dst, XMMRegister src); | 1112 void divsd(XMMRegister dst, XMMRegister src); |
1110 void divsd(XMMRegister dst, const Operand& src); | 1113 void divsd(XMMRegister dst, const Operand& src); |
1111 | 1114 |
(...skipping 22 matching lines...) Expand all Loading... |
1134 void extractps(Register dst, XMMRegister src, byte imm8); | 1137 void extractps(Register dst, XMMRegister src, byte imm8); |
1135 | 1138 |
1136 void pextrd(Register dst, XMMRegister src, int8_t imm8); | 1139 void pextrd(Register dst, XMMRegister src, int8_t imm8); |
1137 | 1140 |
1138 void pinsrd(XMMRegister dst, Register src, int8_t imm8); | 1141 void pinsrd(XMMRegister dst, Register src, int8_t imm8); |
1139 void pinsrd(XMMRegister dst, const Operand& src, int8_t imm8); | 1142 void pinsrd(XMMRegister dst, const Operand& src, int8_t imm8); |
1140 | 1143 |
1141 void roundss(XMMRegister dst, XMMRegister src, RoundingMode mode); | 1144 void roundss(XMMRegister dst, XMMRegister src, RoundingMode mode); |
1142 void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode); | 1145 void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode); |
1143 | 1146 |
| 1147 void ldmxcsr(const Operand& dst); |
| 1148 void stmxcsr(const Operand& dst); |
| 1149 |
1144 // AVX instruction | 1150 // AVX instruction |
1145 void vfmadd132sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { | 1151 void vfmadd132sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
1146 vfmasd(0x99, dst, src1, src2); | 1152 vfmasd(0x99, dst, src1, src2); |
1147 } | 1153 } |
1148 void vfmadd213sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { | 1154 void vfmadd213sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
1149 vfmasd(0xa9, dst, src1, src2); | 1155 vfmasd(0xa9, dst, src1, src2); |
1150 } | 1156 } |
1151 void vfmadd231sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { | 1157 void vfmadd231sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
1152 vfmasd(0xb9, dst, src1, src2); | 1158 vfmasd(0xb9, dst, src1, src2); |
1153 } | 1159 } |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1393 vsd(0x2c, idst, xmm0, src, kF2, k0F, kW0); | 1399 vsd(0x2c, idst, xmm0, src, kF2, k0F, kW0); |
1394 } | 1400 } |
1395 void vcvttss2siq(Register dst, XMMRegister src) { | 1401 void vcvttss2siq(Register dst, XMMRegister src) { |
1396 XMMRegister idst = {dst.code()}; | 1402 XMMRegister idst = {dst.code()}; |
1397 vsd(0x2c, idst, xmm0, src, kF3, k0F, kW1); | 1403 vsd(0x2c, idst, xmm0, src, kF3, k0F, kW1); |
1398 } | 1404 } |
1399 void vcvttss2siq(Register dst, const Operand& src) { | 1405 void vcvttss2siq(Register dst, const Operand& src) { |
1400 XMMRegister idst = {dst.code()}; | 1406 XMMRegister idst = {dst.code()}; |
1401 vsd(0x2c, idst, xmm0, src, kF3, k0F, kW1); | 1407 vsd(0x2c, idst, xmm0, src, kF3, k0F, kW1); |
1402 } | 1408 } |
| 1409 void vcvtss2siq(Register dst, XMMRegister src) { |
| 1410 XMMRegister idst = {dst.code()}; |
| 1411 vsd(0x2d, idst, xmm0, src, kF3, k0F, kW1); |
| 1412 } |
| 1413 void vcvtss2siq(Register dst, const Operand& src) { |
| 1414 XMMRegister idst = {dst.code()}; |
| 1415 vsd(0x2d, idst, xmm0, src, kF3, k0F, kW1); |
| 1416 } |
1403 void vcvttsd2siq(Register dst, XMMRegister src) { | 1417 void vcvttsd2siq(Register dst, XMMRegister src) { |
1404 XMMRegister idst = {dst.code()}; | 1418 XMMRegister idst = {dst.code()}; |
1405 vsd(0x2c, idst, xmm0, src, kF2, k0F, kW1); | 1419 vsd(0x2c, idst, xmm0, src, kF2, k0F, kW1); |
1406 } | 1420 } |
1407 void vcvttsd2siq(Register dst, const Operand& src) { | 1421 void vcvttsd2siq(Register dst, const Operand& src) { |
1408 XMMRegister idst = {dst.code()}; | 1422 XMMRegister idst = {dst.code()}; |
1409 vsd(0x2c, idst, xmm0, src, kF2, k0F, kW1); | 1423 vsd(0x2c, idst, xmm0, src, kF2, k0F, kW1); |
1410 } | 1424 } |
| 1425 void vcvtsd2siq(Register dst, XMMRegister src) { |
| 1426 XMMRegister idst = {dst.code()}; |
| 1427 vsd(0x2d, idst, xmm0, src, kF2, k0F, kW1); |
| 1428 } |
| 1429 void vcvtsd2siq(Register dst, const Operand& src) { |
| 1430 XMMRegister idst = {dst.code()}; |
| 1431 vsd(0x2d, idst, xmm0, src, kF2, k0F, kW1); |
| 1432 } |
1411 void vcvtsd2si(Register dst, XMMRegister src) { | 1433 void vcvtsd2si(Register dst, XMMRegister src) { |
1412 XMMRegister idst = {dst.code()}; | 1434 XMMRegister idst = {dst.code()}; |
1413 vsd(0x2d, idst, xmm0, src, kF2, k0F, kW0); | 1435 vsd(0x2d, idst, xmm0, src, kF2, k0F, kW0); |
1414 } | 1436 } |
1415 void vucomisd(XMMRegister dst, XMMRegister src) { | 1437 void vucomisd(XMMRegister dst, XMMRegister src) { |
1416 vsd(0x2e, dst, xmm0, src, k66, k0F, kWIG); | 1438 vsd(0x2e, dst, xmm0, src, k66, k0F, kWIG); |
1417 } | 1439 } |
1418 void vucomisd(XMMRegister dst, const Operand& src) { | 1440 void vucomisd(XMMRegister dst, const Operand& src) { |
1419 vsd(0x2e, dst, xmm0, src, k66, k0F, kWIG); | 1441 vsd(0x2e, dst, xmm0, src, k66, k0F, kWIG); |
1420 } | 1442 } |
(...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2189 Assembler* assembler_; | 2211 Assembler* assembler_; |
2190 #ifdef DEBUG | 2212 #ifdef DEBUG |
2191 int space_before_; | 2213 int space_before_; |
2192 #endif | 2214 #endif |
2193 }; | 2215 }; |
2194 | 2216 |
2195 } // namespace internal | 2217 } // namespace internal |
2196 } // namespace v8 | 2218 } // namespace v8 |
2197 | 2219 |
2198 #endif // V8_X64_ASSEMBLER_X64_H_ | 2220 #endif // V8_X64_ASSEMBLER_X64_H_ |
OLD | NEW |