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 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1054 | 1054 |
1055 void movdqa(const Operand& dst, XMMRegister src); | 1055 void movdqa(const Operand& dst, XMMRegister src); |
1056 void movdqa(XMMRegister dst, const Operand& src); | 1056 void movdqa(XMMRegister dst, const Operand& src); |
1057 | 1057 |
1058 void movdqu(const Operand& dst, XMMRegister src); | 1058 void movdqu(const Operand& dst, XMMRegister src); |
1059 void movdqu(XMMRegister dst, const Operand& src); | 1059 void movdqu(XMMRegister dst, const Operand& src); |
1060 | 1060 |
1061 void movapd(XMMRegister dst, XMMRegister src); | 1061 void movapd(XMMRegister dst, XMMRegister src); |
1062 | 1062 |
1063 void psllq(XMMRegister reg, byte imm8); | 1063 void psllq(XMMRegister reg, byte imm8); |
| 1064 void psrlq(XMMRegister reg, byte imm8); |
| 1065 void pslld(XMMRegister reg, byte imm8); |
| 1066 void psrld(XMMRegister reg, byte imm8); |
1064 | 1067 |
1065 void cvttsd2si(Register dst, const Operand& src); | 1068 void cvttsd2si(Register dst, const Operand& src); |
1066 void cvttsd2si(Register dst, XMMRegister src); | 1069 void cvttsd2si(Register dst, XMMRegister src); |
1067 void cvttsd2siq(Register dst, XMMRegister src); | 1070 void cvttsd2siq(Register dst, XMMRegister src); |
1068 void cvttsd2siq(Register dst, const Operand& src); | 1071 void cvttsd2siq(Register dst, const Operand& src); |
1069 | 1072 |
1070 void cvtlsi2sd(XMMRegister dst, const Operand& src); | 1073 void cvtlsi2sd(XMMRegister dst, const Operand& src); |
1071 void cvtlsi2sd(XMMRegister dst, Register src); | 1074 void cvtlsi2sd(XMMRegister dst, Register src); |
1072 void cvtqsi2sd(XMMRegister dst, const Operand& src); | 1075 void cvtqsi2sd(XMMRegister dst, const Operand& src); |
1073 void cvtqsi2sd(XMMRegister dst, Register src); | 1076 void cvtqsi2sd(XMMRegister dst, Register src); |
(...skipping 16 matching lines...) Expand all Loading... |
1090 | 1093 |
1091 void andpd(XMMRegister dst, XMMRegister src); | 1094 void andpd(XMMRegister dst, XMMRegister src); |
1092 void orpd(XMMRegister dst, XMMRegister src); | 1095 void orpd(XMMRegister dst, XMMRegister src); |
1093 void xorpd(XMMRegister dst, XMMRegister src); | 1096 void xorpd(XMMRegister dst, XMMRegister src); |
1094 void sqrtsd(XMMRegister dst, XMMRegister src); | 1097 void sqrtsd(XMMRegister dst, XMMRegister src); |
1095 void sqrtsd(XMMRegister dst, const Operand& src); | 1098 void sqrtsd(XMMRegister dst, const Operand& src); |
1096 | 1099 |
1097 void ucomisd(XMMRegister dst, XMMRegister src); | 1100 void ucomisd(XMMRegister dst, XMMRegister src); |
1098 void ucomisd(XMMRegister dst, const Operand& src); | 1101 void ucomisd(XMMRegister dst, const Operand& src); |
1099 void cmpltsd(XMMRegister dst, XMMRegister src); | 1102 void cmpltsd(XMMRegister dst, XMMRegister src); |
| 1103 void pcmpeqd(XMMRegister dst, XMMRegister src); |
1100 | 1104 |
1101 void movmskpd(Register dst, XMMRegister src); | 1105 void movmskpd(Register dst, XMMRegister src); |
1102 | 1106 |
1103 // SSE 4.1 instruction | 1107 // SSE 4.1 instruction |
1104 void extractps(Register dst, XMMRegister src, byte imm8); | 1108 void extractps(Register dst, XMMRegister src, byte imm8); |
1105 | 1109 |
1106 enum RoundingMode { | 1110 enum RoundingMode { |
1107 kRoundToNearest = 0x0, | 1111 kRoundToNearest = 0x0, |
1108 kRoundDown = 0x1, | 1112 kRoundDown = 0x1, |
1109 kRoundUp = 0x2, | 1113 kRoundUp = 0x2, |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1264 // one of the registers is an XMM registers. | 1268 // one of the registers is an XMM registers. |
1265 inline void emit_optional_rex_32(Register reg, XMMRegister base); | 1269 inline void emit_optional_rex_32(Register reg, XMMRegister base); |
1266 | 1270 |
1267 // As for emit_optional_rex_32(Register, const Operand&), except that | 1271 // As for emit_optional_rex_32(Register, const Operand&), except that |
1268 // the register is an XMM register. | 1272 // the register is an XMM register. |
1269 inline void emit_optional_rex_32(XMMRegister reg, const Operand& op); | 1273 inline void emit_optional_rex_32(XMMRegister reg, const Operand& op); |
1270 | 1274 |
1271 // Optionally do as emit_rex_32(Register) if the register number has | 1275 // Optionally do as emit_rex_32(Register) if the register number has |
1272 // the high bit set. | 1276 // the high bit set. |
1273 inline void emit_optional_rex_32(Register rm_reg); | 1277 inline void emit_optional_rex_32(Register rm_reg); |
| 1278 inline void emit_optional_rex_32(XMMRegister rm_reg); |
1274 | 1279 |
1275 // Optionally do as emit_rex_32(const Operand&) if the operand register | 1280 // Optionally do as emit_rex_32(const Operand&) if the operand register |
1276 // numbers have a high bit set. | 1281 // numbers have a high bit set. |
1277 inline void emit_optional_rex_32(const Operand& op); | 1282 inline void emit_optional_rex_32(const Operand& op); |
1278 | 1283 |
1279 void emit_rex(int size) { | 1284 void emit_rex(int size) { |
1280 if (size == kInt64Size) { | 1285 if (size == kInt64Size) { |
1281 emit_rex_64(); | 1286 emit_rex_64(); |
1282 } else { | 1287 } else { |
1283 DCHECK(size == kInt32Size); | 1288 DCHECK(size == kInt32Size); |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1613 private: | 1618 private: |
1614 Assembler* assembler_; | 1619 Assembler* assembler_; |
1615 #ifdef DEBUG | 1620 #ifdef DEBUG |
1616 int space_before_; | 1621 int space_before_; |
1617 #endif | 1622 #endif |
1618 }; | 1623 }; |
1619 | 1624 |
1620 } } // namespace v8::internal | 1625 } } // namespace v8::internal |
1621 | 1626 |
1622 #endif // V8_X64_ASSEMBLER_X64_H_ | 1627 #endif // V8_X64_ASSEMBLER_X64_H_ |
OLD | NEW |