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 910 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 void fnclex(); | 921 void fnclex(); |
922 | 922 |
923 void frndint(); | 923 void frndint(); |
924 | 924 |
925 void sahf(); | 925 void sahf(); |
926 void setcc(Condition cc, Register reg); | 926 void setcc(Condition cc, Register reg); |
927 | 927 |
928 void cpuid(); | 928 void cpuid(); |
929 | 929 |
930 // SSE instructions | 930 // SSE instructions |
| 931 void addss(XMMRegister dst, XMMRegister src) { addss(dst, Operand(src)); } |
| 932 void addss(XMMRegister dst, const Operand& src); |
| 933 void subss(XMMRegister dst, XMMRegister src) { subss(dst, Operand(src)); } |
| 934 void subss(XMMRegister dst, const Operand& src); |
| 935 void mulss(XMMRegister dst, XMMRegister src) { mulss(dst, Operand(src)); } |
| 936 void mulss(XMMRegister dst, const Operand& src); |
| 937 void divss(XMMRegister dst, XMMRegister src) { divss(dst, Operand(src)); } |
| 938 void divss(XMMRegister dst, const Operand& src); |
| 939 |
| 940 void ucomiss(XMMRegister dst, XMMRegister src) { ucomiss(dst, Operand(src)); } |
| 941 void ucomiss(XMMRegister dst, const Operand& src); |
931 void movaps(XMMRegister dst, XMMRegister src); | 942 void movaps(XMMRegister dst, XMMRegister src); |
932 void shufps(XMMRegister dst, XMMRegister src, byte imm8); | 943 void shufps(XMMRegister dst, XMMRegister src, byte imm8); |
933 | 944 |
934 void andps(XMMRegister dst, const Operand& src); | 945 void andps(XMMRegister dst, const Operand& src); |
935 void andps(XMMRegister dst, XMMRegister src) { andps(dst, Operand(src)); } | 946 void andps(XMMRegister dst, XMMRegister src) { andps(dst, Operand(src)); } |
936 void xorps(XMMRegister dst, const Operand& src); | 947 void xorps(XMMRegister dst, const Operand& src); |
937 void xorps(XMMRegister dst, XMMRegister src) { xorps(dst, Operand(src)); } | 948 void xorps(XMMRegister dst, XMMRegister src) { xorps(dst, Operand(src)); } |
938 void orps(XMMRegister dst, const Operand& src); | 949 void orps(XMMRegister dst, const Operand& src); |
939 void orps(XMMRegister dst, XMMRegister src) { orps(dst, Operand(src)); } | 950 void orps(XMMRegister dst, XMMRegister src) { orps(dst, Operand(src)); } |
940 | 951 |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1046 void pinsrd(XMMRegister dst, Register src, int8_t offset) { | 1057 void pinsrd(XMMRegister dst, Register src, int8_t offset) { |
1047 pinsrd(dst, Operand(src), offset); | 1058 pinsrd(dst, Operand(src), offset); |
1048 } | 1059 } |
1049 void pinsrd(XMMRegister dst, const Operand& src, int8_t offset); | 1060 void pinsrd(XMMRegister dst, const Operand& src, int8_t offset); |
1050 | 1061 |
1051 // Parallel XMM operations. | 1062 // Parallel XMM operations. |
1052 void movntdqa(XMMRegister dst, const Operand& src); | 1063 void movntdqa(XMMRegister dst, const Operand& src); |
1053 void movntdq(const Operand& dst, XMMRegister src); | 1064 void movntdq(const Operand& dst, XMMRegister src); |
1054 | 1065 |
1055 // AVX instructions | 1066 // AVX instructions |
| 1067 void vfmadd132sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1068 vfmadd132sd(dst, src1, Operand(src2)); |
| 1069 } |
| 1070 void vfmadd213sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1071 vfmadd213sd(dst, src1, Operand(src2)); |
| 1072 } |
| 1073 void vfmadd231sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1074 vfmadd231sd(dst, src1, Operand(src2)); |
| 1075 } |
| 1076 void vfmadd132sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1077 vfmasd(0x99, dst, src1, src2); |
| 1078 } |
| 1079 void vfmadd213sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1080 vfmasd(0xa9, dst, src1, src2); |
| 1081 } |
| 1082 void vfmadd231sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1083 vfmasd(0xb9, dst, src1, src2); |
| 1084 } |
| 1085 void vfmsub132sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1086 vfmsub132sd(dst, src1, Operand(src2)); |
| 1087 } |
| 1088 void vfmsub213sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1089 vfmsub213sd(dst, src1, Operand(src2)); |
| 1090 } |
| 1091 void vfmsub231sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1092 vfmsub231sd(dst, src1, Operand(src2)); |
| 1093 } |
| 1094 void vfmsub132sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1095 vfmasd(0x9b, dst, src1, src2); |
| 1096 } |
| 1097 void vfmsub213sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1098 vfmasd(0xab, dst, src1, src2); |
| 1099 } |
| 1100 void vfmsub231sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1101 vfmasd(0xbb, dst, src1, src2); |
| 1102 } |
| 1103 void vfnmadd132sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1104 vfnmadd132sd(dst, src1, Operand(src2)); |
| 1105 } |
| 1106 void vfnmadd213sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1107 vfnmadd213sd(dst, src1, Operand(src2)); |
| 1108 } |
| 1109 void vfnmadd231sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1110 vfnmadd231sd(dst, src1, Operand(src2)); |
| 1111 } |
| 1112 void vfnmadd132sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1113 vfmasd(0x9d, dst, src1, src2); |
| 1114 } |
| 1115 void vfnmadd213sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1116 vfmasd(0xad, dst, src1, src2); |
| 1117 } |
| 1118 void vfnmadd231sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1119 vfmasd(0xbd, dst, src1, src2); |
| 1120 } |
| 1121 void vfnmsub132sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1122 vfnmsub132sd(dst, src1, Operand(src2)); |
| 1123 } |
| 1124 void vfnmsub213sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1125 vfnmsub213sd(dst, src1, Operand(src2)); |
| 1126 } |
| 1127 void vfnmsub231sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1128 vfnmsub231sd(dst, src1, Operand(src2)); |
| 1129 } |
| 1130 void vfnmsub132sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1131 vfmasd(0x9f, dst, src1, src2); |
| 1132 } |
| 1133 void vfnmsub213sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1134 vfmasd(0xaf, dst, src1, src2); |
| 1135 } |
| 1136 void vfnmsub231sd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1137 vfmasd(0xbf, dst, src1, src2); |
| 1138 } |
| 1139 void vfmasd(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); |
| 1140 |
| 1141 void vfmadd132ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1142 vfmadd132ss(dst, src1, Operand(src2)); |
| 1143 } |
| 1144 void vfmadd213ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1145 vfmadd213ss(dst, src1, Operand(src2)); |
| 1146 } |
| 1147 void vfmadd231ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1148 vfmadd231ss(dst, src1, Operand(src2)); |
| 1149 } |
| 1150 void vfmadd132ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1151 vfmass(0x99, dst, src1, src2); |
| 1152 } |
| 1153 void vfmadd213ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1154 vfmass(0xa9, dst, src1, src2); |
| 1155 } |
| 1156 void vfmadd231ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1157 vfmass(0xb9, dst, src1, src2); |
| 1158 } |
| 1159 void vfmsub132ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1160 vfmsub132ss(dst, src1, Operand(src2)); |
| 1161 } |
| 1162 void vfmsub213ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1163 vfmsub213ss(dst, src1, Operand(src2)); |
| 1164 } |
| 1165 void vfmsub231ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1166 vfmsub231ss(dst, src1, Operand(src2)); |
| 1167 } |
| 1168 void vfmsub132ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1169 vfmass(0x9b, dst, src1, src2); |
| 1170 } |
| 1171 void vfmsub213ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1172 vfmass(0xab, dst, src1, src2); |
| 1173 } |
| 1174 void vfmsub231ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1175 vfmass(0xbb, dst, src1, src2); |
| 1176 } |
| 1177 void vfnmadd132ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1178 vfnmadd132ss(dst, src1, Operand(src2)); |
| 1179 } |
| 1180 void vfnmadd213ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1181 vfnmadd213ss(dst, src1, Operand(src2)); |
| 1182 } |
| 1183 void vfnmadd231ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1184 vfnmadd231ss(dst, src1, Operand(src2)); |
| 1185 } |
| 1186 void vfnmadd132ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1187 vfmass(0x9d, dst, src1, src2); |
| 1188 } |
| 1189 void vfnmadd213ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1190 vfmass(0xad, dst, src1, src2); |
| 1191 } |
| 1192 void vfnmadd231ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1193 vfmass(0xbd, dst, src1, src2); |
| 1194 } |
| 1195 void vfnmsub132ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1196 vfnmsub132ss(dst, src1, Operand(src2)); |
| 1197 } |
| 1198 void vfnmsub213ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1199 vfnmsub213ss(dst, src1, Operand(src2)); |
| 1200 } |
| 1201 void vfnmsub231ss(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
| 1202 vfnmsub231ss(dst, src1, Operand(src2)); |
| 1203 } |
| 1204 void vfnmsub132ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1205 vfmass(0x9f, dst, src1, src2); |
| 1206 } |
| 1207 void vfnmsub213ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1208 vfmass(0xaf, dst, src1, src2); |
| 1209 } |
| 1210 void vfnmsub231ss(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
| 1211 vfmass(0xbf, dst, src1, src2); |
| 1212 } |
| 1213 void vfmass(byte op, XMMRegister dst, XMMRegister src1, const Operand& src2); |
| 1214 |
1056 void vaddsd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { | 1215 void vaddsd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
1057 vaddsd(dst, src1, Operand(src2)); | 1216 vaddsd(dst, src1, Operand(src2)); |
1058 } | 1217 } |
1059 void vaddsd(XMMRegister dst, XMMRegister src1, const Operand& src2) { | 1218 void vaddsd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
1060 vsd(0x58, dst, src1, src2); | 1219 vsd(0x58, dst, src1, src2); |
1061 } | 1220 } |
1062 void vsubsd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { | 1221 void vsubsd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { |
1063 vsubsd(dst, src1, Operand(src2)); | 1222 vsubsd(dst, src1, Operand(src2)); |
1064 } | 1223 } |
1065 void vsubsd(XMMRegister dst, XMMRegister src1, const Operand& src2) { | 1224 void vsubsd(XMMRegister dst, XMMRegister src1, const Operand& src2) { |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1237 private: | 1396 private: |
1238 Assembler* assembler_; | 1397 Assembler* assembler_; |
1239 #ifdef DEBUG | 1398 #ifdef DEBUG |
1240 int space_before_; | 1399 int space_before_; |
1241 #endif | 1400 #endif |
1242 }; | 1401 }; |
1243 | 1402 |
1244 } } // namespace v8::internal | 1403 } } // namespace v8::internal |
1245 | 1404 |
1246 #endif // V8_IA32_ASSEMBLER_IA32_H_ | 1405 #endif // V8_IA32_ASSEMBLER_IA32_H_ |
OLD | NEW |