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 999 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1010 void fwait(); | 1010 void fwait(); |
1011 void fnclex(); | 1011 void fnclex(); |
1012 | 1012 |
1013 void frndint(); | 1013 void frndint(); |
1014 | 1014 |
1015 void sahf(); | 1015 void sahf(); |
1016 void setcc(Condition cc, Register reg); | 1016 void setcc(Condition cc, Register reg); |
1017 | 1017 |
1018 void cpuid(); | 1018 void cpuid(); |
1019 | 1019 |
| 1020 // SSE instructions |
| 1021 void andps(XMMRegister dst, XMMRegister src); |
| 1022 void xorps(XMMRegister dst, XMMRegister src); |
| 1023 |
1020 // SSE2 instructions | 1024 // SSE2 instructions |
1021 void cvttss2si(Register dst, const Operand& src); | 1025 void cvttss2si(Register dst, const Operand& src); |
1022 void cvttsd2si(Register dst, const Operand& src); | 1026 void cvttsd2si(Register dst, const Operand& src); |
1023 void cvtsd2si(Register dst, XMMRegister src); | 1027 void cvtsd2si(Register dst, XMMRegister src); |
1024 | 1028 |
1025 void cvtsi2sd(XMMRegister dst, Register src) { cvtsi2sd(dst, Operand(src)); } | 1029 void cvtsi2sd(XMMRegister dst, Register src) { cvtsi2sd(dst, Operand(src)); } |
1026 void cvtsi2sd(XMMRegister dst, const Operand& src); | 1030 void cvtsi2sd(XMMRegister dst, const Operand& src); |
1027 void cvtss2sd(XMMRegister dst, XMMRegister src); | 1031 void cvtss2sd(XMMRegister dst, XMMRegister src); |
1028 void cvtsd2ss(XMMRegister dst, XMMRegister src); | 1032 void cvtsd2ss(XMMRegister dst, XMMRegister src); |
1029 | 1033 |
1030 void addsd(XMMRegister dst, XMMRegister src); | 1034 void addsd(XMMRegister dst, XMMRegister src); |
1031 void addsd(XMMRegister dst, const Operand& src); | 1035 void addsd(XMMRegister dst, const Operand& src); |
1032 void subsd(XMMRegister dst, XMMRegister src); | 1036 void subsd(XMMRegister dst, XMMRegister src); |
1033 void mulsd(XMMRegister dst, XMMRegister src); | 1037 void mulsd(XMMRegister dst, XMMRegister src); |
1034 void mulsd(XMMRegister dst, const Operand& src); | 1038 void mulsd(XMMRegister dst, const Operand& src); |
1035 void divsd(XMMRegister dst, XMMRegister src); | 1039 void divsd(XMMRegister dst, XMMRegister src); |
1036 void xorpd(XMMRegister dst, XMMRegister src); | 1040 void xorpd(XMMRegister dst, XMMRegister src); |
1037 void xorps(XMMRegister dst, XMMRegister src); | |
1038 void sqrtsd(XMMRegister dst, XMMRegister src); | 1041 void sqrtsd(XMMRegister dst, XMMRegister src); |
1039 | 1042 |
1040 void andpd(XMMRegister dst, XMMRegister src); | 1043 void andpd(XMMRegister dst, XMMRegister src); |
1041 void orpd(XMMRegister dst, XMMRegister src); | 1044 void orpd(XMMRegister dst, XMMRegister src); |
1042 | 1045 |
1043 void ucomisd(XMMRegister dst, XMMRegister src); | 1046 void ucomisd(XMMRegister dst, XMMRegister src); |
1044 void ucomisd(XMMRegister dst, const Operand& src); | 1047 void ucomisd(XMMRegister dst, const Operand& src); |
1045 | 1048 |
1046 enum RoundingMode { | 1049 enum RoundingMode { |
1047 kRoundToNearest = 0x0, | 1050 kRoundToNearest = 0x0, |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1150 | 1153 |
1151 PositionsRecorder* positions_recorder() { return &positions_recorder_; } | 1154 PositionsRecorder* positions_recorder() { return &positions_recorder_; } |
1152 | 1155 |
1153 int relocation_writer_size() { | 1156 int relocation_writer_size() { |
1154 return (buffer_ + buffer_size_) - reloc_info_writer.pos(); | 1157 return (buffer_ + buffer_size_) - reloc_info_writer.pos(); |
1155 } | 1158 } |
1156 | 1159 |
1157 // Avoid overflows for displacements etc. | 1160 // Avoid overflows for displacements etc. |
1158 static const int kMaximalBufferSize = 512*MB; | 1161 static const int kMaximalBufferSize = 512*MB; |
1159 | 1162 |
1160 byte byte_at(int pos) { return buffer_[pos]; } | 1163 byte byte_at(int pos) { return buffer_[pos]; } |
1161 void set_byte_at(int pos, byte value) { buffer_[pos] = value; } | 1164 void set_byte_at(int pos, byte value) { buffer_[pos] = value; } |
1162 | 1165 |
1163 protected: | 1166 protected: |
1164 void emit_sse_operand(XMMRegister reg, const Operand& adr); | 1167 void emit_sse_operand(XMMRegister reg, const Operand& adr); |
1165 void emit_sse_operand(XMMRegister dst, XMMRegister src); | 1168 void emit_sse_operand(XMMRegister dst, XMMRegister src); |
1166 void emit_sse_operand(Register dst, XMMRegister src); | 1169 void emit_sse_operand(Register dst, XMMRegister src); |
1167 void emit_sse_operand(XMMRegister dst, Register src); | 1170 void emit_sse_operand(XMMRegister dst, Register src); |
1168 | 1171 |
1169 byte* addr_at(int pos) { return buffer_ + pos; } | 1172 byte* addr_at(int pos) { return buffer_ + pos; } |
1170 | 1173 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1253 private: | 1256 private: |
1254 Assembler* assembler_; | 1257 Assembler* assembler_; |
1255 #ifdef DEBUG | 1258 #ifdef DEBUG |
1256 int space_before_; | 1259 int space_before_; |
1257 #endif | 1260 #endif |
1258 }; | 1261 }; |
1259 | 1262 |
1260 } } // namespace v8::internal | 1263 } } // namespace v8::internal |
1261 | 1264 |
1262 #endif // V8_IA32_ASSEMBLER_IA32_H_ | 1265 #endif // V8_IA32_ASSEMBLER_IA32_H_ |
OLD | NEW |