| Index: src/x64/assembler-x64.cc
|
| ===================================================================
|
| --- src/x64/assembler-x64.cc (revision 7180)
|
| +++ src/x64/assembler-x64.cc (working copy)
|
| @@ -1,4 +1,4 @@
|
| -// Copyright 2010 the V8 project authors. All rights reserved.
|
| +// Copyright 2011 the V8 project authors. All rights reserved.
|
| // Redistribution and use in source and binary forms, with or without
|
| // modification, are permitted provided that the following conditions are
|
| // met:
|
| @@ -190,13 +190,13 @@
|
| // -----------------------------------------------------------------------------
|
| // Register constants.
|
|
|
| -const int Register::registerCodeByAllocationIndex[kNumAllocatableRegisters] = {
|
| - // rax, rbx, rdx, rcx, rdi, r8, r9, r11, r14, r12
|
| - 0, 3, 2, 1, 7, 8, 9, 11, 14, 12
|
| +const int Register::kRegisterCodeByAllocationIndex[kNumAllocatableRegisters] = {
|
| + // rax, rbx, rdx, rcx, rdi, r8, r9, r11, r14, r15
|
| + 0, 3, 2, 1, 7, 8, 9, 11, 14, 15
|
| };
|
|
|
| -const int Register::allocationIndexByRegisterCode[kNumRegisters] = {
|
| - 0, 3, 2, 1, -1, -1, -1, 4, 5, 6, -1, 7, 9, -1, 8, -1
|
| +const int Register::kAllocationIndexByRegisterCode[kNumRegisters] = {
|
| + 0, 3, 2, 1, -1, -1, -1, 4, 5, 6, -1, 7, -1, -1, 8, 9
|
| };
|
|
|
|
|
| @@ -338,7 +338,9 @@
|
| byte* Assembler::spare_buffer_ = NULL;
|
|
|
| Assembler::Assembler(void* buffer, int buffer_size)
|
| - : code_targets_(100), positions_recorder_(this) {
|
| + : code_targets_(100),
|
| + positions_recorder_(this),
|
| + emit_debug_code_(FLAG_debug_code) {
|
| if (buffer == NULL) {
|
| // Do our own buffer management.
|
| if (buffer_size <= kMinimalBufferSize) {
|
| @@ -2995,6 +2997,28 @@
|
| }
|
|
|
|
|
| +void Assembler::andpd(XMMRegister dst, XMMRegister src) {
|
| + EnsureSpace ensure_space(this);
|
| + last_pc_ = pc_;
|
| + emit(0x66);
|
| + emit_optional_rex_32(dst, src);
|
| + emit(0x0F);
|
| + emit(0x54);
|
| + emit_sse_operand(dst, src);
|
| +}
|
| +
|
| +
|
| +void Assembler::orpd(XMMRegister dst, XMMRegister src) {
|
| + EnsureSpace ensure_space(this);
|
| + last_pc_ = pc_;
|
| + emit(0x66);
|
| + emit_optional_rex_32(dst, src);
|
| + emit(0x0F);
|
| + emit(0x56);
|
| + emit_sse_operand(dst, src);
|
| +}
|
| +
|
| +
|
| void Assembler::xorpd(XMMRegister dst, XMMRegister src) {
|
| EnsureSpace ensure_space(this);
|
| last_pc_ = pc_;
|
| @@ -3092,7 +3116,7 @@
|
| Serializer::TooLateToEnableNow();
|
| }
|
| #endif
|
| - if (!Serializer::enabled() && !FLAG_debug_code) {
|
| + if (!Serializer::enabled() && !emit_debug_code()) {
|
| return;
|
| }
|
| }
|
| @@ -3114,8 +3138,8 @@
|
| }
|
|
|
|
|
| -void Assembler::RecordComment(const char* msg) {
|
| - if (FLAG_code_comments) {
|
| +void Assembler::RecordComment(const char* msg, bool force) {
|
| + if (FLAG_code_comments || force) {
|
| EnsureSpace ensure_space(this);
|
| RecordRelocInfo(RelocInfo::COMMENT, reinterpret_cast<intptr_t>(msg));
|
| }
|
|
|