| Index: src/ia32/assembler-ia32.cc
|
| diff --git a/src/ia32/assembler-ia32.cc b/src/ia32/assembler-ia32.cc
|
| index c2e843197f674b6cccff95f2cd99f3c309c162a7..0557ed885310beb876d7946f3b1d60e1e230cfb1 100644
|
| --- a/src/ia32/assembler-ia32.cc
|
| +++ b/src/ia32/assembler-ia32.cc
|
| @@ -53,6 +53,7 @@ bool CpuFeatures::initialized_ = false;
|
| #endif
|
| uint64_t CpuFeatures::supported_ = 0;
|
| uint64_t CpuFeatures::found_by_runtime_probing_only_ = 0;
|
| +uint64_t CpuFeatures::cross_compile_ = 0;
|
|
|
|
|
| ExternalReference ExternalReference::cpu_features() {
|
| @@ -1413,7 +1414,8 @@ void Assembler::call(Handle<Code> code,
|
| TypeFeedbackId ast_id) {
|
| positions_recorder()->WriteRecordedPositions();
|
| EnsureSpace ensure_space(this);
|
| - ASSERT(RelocInfo::IsCodeTarget(rmode));
|
| + ASSERT(RelocInfo::IsCodeTarget(rmode)
|
| + || rmode == RelocInfo::CODE_AGE_SEQUENCE);
|
| EMIT(0xE8);
|
| emit(code, rmode, ast_id);
|
| }
|
| @@ -2066,6 +2068,7 @@ void Assembler::xorps(XMMRegister dst, XMMRegister src) {
|
|
|
|
|
| void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) {
|
| + ASSERT(IsEnabled(SSE2));
|
| EnsureSpace ensure_space(this);
|
| EMIT(0xF2);
|
| EMIT(0x0F);
|
| @@ -2075,6 +2078,7 @@ void Assembler::sqrtsd(XMMRegister dst, XMMRegister src) {
|
|
|
|
|
| void Assembler::andpd(XMMRegister dst, XMMRegister src) {
|
| + ASSERT(IsEnabled(SSE2));
|
| EnsureSpace ensure_space(this);
|
| EMIT(0x66);
|
| EMIT(0x0F);
|
| @@ -2084,6 +2088,7 @@ void Assembler::andpd(XMMRegister dst, XMMRegister src) {
|
|
|
|
|
| void Assembler::orpd(XMMRegister dst, XMMRegister src) {
|
| + ASSERT(IsEnabled(SSE2));
|
| EnsureSpace ensure_space(this);
|
| EMIT(0x66);
|
| EMIT(0x0F);
|
| @@ -2246,18 +2251,6 @@ void Assembler::prefetch(const Operand& src, int level) {
|
| }
|
|
|
|
|
| -void Assembler::movdbl(XMMRegister dst, const Operand& src) {
|
| - EnsureSpace ensure_space(this);
|
| - movsd(dst, src);
|
| -}
|
| -
|
| -
|
| -void Assembler::movdbl(const Operand& dst, XMMRegister src) {
|
| - EnsureSpace ensure_space(this);
|
| - movsd(dst, src);
|
| -}
|
| -
|
| -
|
| void Assembler::movsd(const Operand& dst, XMMRegister src ) {
|
| ASSERT(IsEnabled(SSE2));
|
| EnsureSpace ensure_space(this);
|
| @@ -2346,11 +2339,19 @@ void Assembler::extractps(Register dst, XMMRegister src, byte imm8) {
|
| EMIT(0x0F);
|
| EMIT(0x3A);
|
| EMIT(0x17);
|
| - emit_sse_operand(dst, src);
|
| + emit_sse_operand(src, dst);
|
| EMIT(imm8);
|
| }
|
|
|
|
|
| +void Assembler::andps(XMMRegister dst, XMMRegister src) {
|
| + EnsureSpace ensure_space(this);
|
| + EMIT(0x0F);
|
| + EMIT(0x54);
|
| + emit_sse_operand(dst, src);
|
| +}
|
| +
|
| +
|
| void Assembler::pand(XMMRegister dst, XMMRegister src) {
|
| ASSERT(IsEnabled(SSE2));
|
| EnsureSpace ensure_space(this);
|
| @@ -2485,6 +2486,11 @@ void Assembler::emit_sse_operand(Register dst, XMMRegister src) {
|
| }
|
|
|
|
|
| +void Assembler::emit_sse_operand(XMMRegister dst, Register src) {
|
| + EMIT(0xC0 | (dst.code() << 3) | src.code());
|
| +}
|
| +
|
| +
|
| void Assembler::Print() {
|
| Disassembler::Decode(isolate(), stdout, buffer_, pc_);
|
| }
|
|
|