| Index: src/x64/assembler-x64.h
|
| ===================================================================
|
| --- src/x64/assembler-x64.h (revision 7031)
|
| +++ src/x64/assembler-x64.h (working copy)
|
| @@ -30,7 +30,7 @@
|
|
|
| // The original source code covered by the above license above has been
|
| // modified significantly by Google Inc.
|
| -// Copyright 2010 the V8 project authors. All rights reserved.
|
| +// Copyright 2011 the V8 project authors. All rights reserved.
|
|
|
| // A lightweight X64 Assembler.
|
|
|
| @@ -99,12 +99,12 @@
|
| static const int kNumAllocatableRegisters = 10;
|
|
|
| static int ToAllocationIndex(Register reg) {
|
| - return allocationIndexByRegisterCode[reg.code()];
|
| + return kAllocationIndexByRegisterCode[reg.code()];
|
| }
|
|
|
| static Register FromAllocationIndex(int index) {
|
| ASSERT(index >= 0 && index < kNumAllocatableRegisters);
|
| - Register result = { registerCodeByAllocationIndex[index] };
|
| + Register result = { kRegisterCodeByAllocationIndex[index] };
|
| return result;
|
| }
|
|
|
| @@ -155,8 +155,8 @@
|
| int code_;
|
|
|
| private:
|
| - static const int registerCodeByAllocationIndex[kNumAllocatableRegisters];
|
| - static const int allocationIndexByRegisterCode[kNumRegisters];
|
| + static const int kRegisterCodeByAllocationIndex[kNumAllocatableRegisters];
|
| + static const int kAllocationIndexByRegisterCode[kNumRegisters];
|
| };
|
|
|
| const Register rax = { 0 };
|
| @@ -585,7 +585,16 @@
|
| static const byte kTestEaxByte = 0xA9;
|
| // One byte opcode for test al, 0xXX.
|
| static const byte kTestAlByte = 0xA8;
|
| + // One byte opcode for nop.
|
| + static const byte kNopByte = 0x90;
|
|
|
| + // One byte prefix for a short conditional jump.
|
| + static const byte kJccShortPrefix = 0x70;
|
| + static const byte kJncShortOpcode = kJccShortPrefix | not_carry;
|
| + static const byte kJcShortOpcode = kJccShortPrefix | carry;
|
| +
|
| +
|
| +
|
| // ---------------------------------------------------------------------------
|
| // Code generation
|
| //
|
| @@ -1293,6 +1302,8 @@
|
| void mulsd(XMMRegister dst, XMMRegister src);
|
| void divsd(XMMRegister dst, XMMRegister src);
|
|
|
| + void andpd(XMMRegister dst, XMMRegister src);
|
| + void orpd(XMMRegister dst, XMMRegister src);
|
| void xorpd(XMMRegister dst, XMMRegister src);
|
| void sqrtsd(XMMRegister dst, XMMRegister src);
|
|
|
| @@ -1321,7 +1332,7 @@
|
|
|
| // Record a comment relocation entry that can be used by a disassembler.
|
| // Use --code-comments to enable.
|
| - void RecordComment(const char* msg);
|
| + void RecordComment(const char* msg, bool force = false);
|
|
|
| // Writes a single word of data in the code stream.
|
| // Used for inline tables, e.g., jump-tables.
|
|
|