| Index: test/cctest/test-macro-assembler-x64.cc
|
| diff --git a/test/cctest/test-macro-assembler-x64.cc b/test/cctest/test-macro-assembler-x64.cc
|
| index 78bc723a7eab28cb928602f34a0c2b223e394a1c..65d46c6f1685bf65964bde75e0fb1d3bd962c494 100644
|
| --- a/test/cctest/test-macro-assembler-x64.cc
|
| +++ b/test/cctest/test-macro-assembler-x64.cc
|
| @@ -35,49 +35,50 @@
|
| #include "serialize.h"
|
| #include "cctest.h"
|
|
|
| -using v8::internal::Assembler;
|
| -using v8::internal::CodeDesc;
|
| -using v8::internal::Condition;
|
| -using v8::internal::FUNCTION_CAST;
|
| -using v8::internal::HandleScope;
|
| -using v8::internal::Immediate;
|
| -using v8::internal::Isolate;
|
| -using v8::internal::Label;
|
| -using v8::internal::MacroAssembler;
|
| -using v8::internal::OS;
|
| -using v8::internal::Operand;
|
| -using v8::internal::RelocInfo;
|
| -using v8::internal::Smi;
|
| -using v8::internal::SmiIndex;
|
| -using v8::internal::byte;
|
| -using v8::internal::carry;
|
| -using v8::internal::greater;
|
| -using v8::internal::greater_equal;
|
| -using v8::internal::kIntSize;
|
| -using v8::internal::kPointerSize;
|
| -using v8::internal::kSmiTagMask;
|
| -using v8::internal::kSmiValueSize;
|
| -using v8::internal::less_equal;
|
| -using v8::internal::negative;
|
| -using v8::internal::not_carry;
|
| -using v8::internal::not_equal;
|
| -using v8::internal::not_zero;
|
| -using v8::internal::positive;
|
| -using v8::internal::r11;
|
| -using v8::internal::r13;
|
| -using v8::internal::r14;
|
| -using v8::internal::r15;
|
| -using v8::internal::r8;
|
| -using v8::internal::r9;
|
| -using v8::internal::rax;
|
| -using v8::internal::rbp;
|
| -using v8::internal::rbx;
|
| -using v8::internal::rcx;
|
| -using v8::internal::rdi;
|
| -using v8::internal::rdx;
|
| -using v8::internal::rsi;
|
| -using v8::internal::rsp;
|
| -using v8::internal::times_pointer_size;
|
| +namespace i = v8::internal;
|
| +using i::Assembler;
|
| +using i::CodeDesc;
|
| +using i::Condition;
|
| +using i::FUNCTION_CAST;
|
| +using i::HandleScope;
|
| +using i::Immediate;
|
| +using i::Isolate;
|
| +using i::Label;
|
| +using i::MacroAssembler;
|
| +using i::OS;
|
| +using i::Operand;
|
| +using i::RelocInfo;
|
| +using i::Smi;
|
| +using i::SmiIndex;
|
| +using i::byte;
|
| +using i::carry;
|
| +using i::greater;
|
| +using i::greater_equal;
|
| +using i::kIntSize;
|
| +using i::kPointerSize;
|
| +using i::kSmiTagMask;
|
| +using i::kSmiValueSize;
|
| +using i::less_equal;
|
| +using i::negative;
|
| +using i::not_carry;
|
| +using i::not_equal;
|
| +using i::not_zero;
|
| +using i::positive;
|
| +using i::r11;
|
| +using i::r13;
|
| +using i::r14;
|
| +using i::r15;
|
| +using i::r8;
|
| +using i::r9;
|
| +using i::rax;
|
| +using i::rbp;
|
| +using i::rbx;
|
| +using i::rcx;
|
| +using i::rdi;
|
| +using i::rdx;
|
| +using i::rsi;
|
| +using i::rsp;
|
| +using i::times_pointer_size;
|
|
|
| // Test the x64 assembler by compiling some simple functions into
|
| // a buffer and executing them. These tests do not initialize the
|
| @@ -95,8 +96,8 @@ typedef int (*F0)();
|
|
|
| static void EntryCode(MacroAssembler* masm) {
|
| // Smi constant register is callee save.
|
| - __ push(v8::internal::kSmiConstantRegister);
|
| - __ push(v8::internal::kRootRegister);
|
| + __ push(i::kSmiConstantRegister);
|
| + __ push(i::kRootRegister);
|
| __ InitializeSmiConstantRegister();
|
| __ InitializeRootRegister();
|
| }
|
| @@ -105,11 +106,11 @@ static void EntryCode(MacroAssembler* masm) {
|
| static void ExitCode(MacroAssembler* masm) {
|
| // Return -1 if kSmiConstantRegister was clobbered during the test.
|
| __ Move(rdx, Smi::FromInt(1));
|
| - __ cmpq(rdx, v8::internal::kSmiConstantRegister);
|
| + __ cmpq(rdx, i::kSmiConstantRegister);
|
| __ movq(rdx, Immediate(-1));
|
| __ cmovq(not_equal, rax, rdx);
|
| - __ pop(v8::internal::kRootRegister);
|
| - __ pop(v8::internal::kSmiConstantRegister);
|
| + __ pop(i::kRootRegister);
|
| + __ pop(i::kSmiConstantRegister);
|
| }
|
|
|
|
|
| @@ -150,7 +151,7 @@ static void TestMoveSmi(MacroAssembler* masm, Label* exit, int id, Smi* value) {
|
|
|
| // Test that we can move a Smi value literally into a register.
|
| TEST(SmiMove) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer = static_cast<byte*>(OS::Allocate(Assembler::kMinimalBufferSize,
|
| @@ -238,7 +239,7 @@ void TestSmiCompare(MacroAssembler* masm, Label* exit, int id, int x, int y) {
|
|
|
| // Test that we can compare smis for equality (and more).
|
| TEST(SmiCompare) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -290,7 +291,7 @@ TEST(SmiCompare) {
|
|
|
|
|
| TEST(Integer32ToSmi) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer = static_cast<byte*>(OS::Allocate(Assembler::kMinimalBufferSize,
|
| @@ -419,7 +420,7 @@ void TestI64PlusConstantToSmi(MacroAssembler* masm,
|
|
|
|
|
| TEST(Integer64PlusConstantToSmi) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer = static_cast<byte*>(OS::Allocate(Assembler::kMinimalBufferSize,
|
| @@ -464,7 +465,7 @@ TEST(Integer64PlusConstantToSmi) {
|
|
|
|
|
| TEST(SmiCheck) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer = static_cast<byte*>(OS::Allocate(Assembler::kMinimalBufferSize,
|
| @@ -712,7 +713,7 @@ void TestSmiNeg(MacroAssembler* masm, Label* exit, int id, int x) {
|
|
|
|
|
| TEST(SmiNeg) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -803,7 +804,7 @@ static void SmiAddTest(MacroAssembler* masm,
|
|
|
|
|
| TEST(SmiAdd) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer = static_cast<byte*>(OS::Allocate(Assembler::kMinimalBufferSize,
|
| @@ -873,15 +874,22 @@ static void SmiSubTest(MacroAssembler* masm,
|
| __ cmpq(rcx, r8);
|
| __ j(not_equal, exit);
|
|
|
| + i::SmiExecutionMode mode = static_cast<i::SmiExecutionMode>(
|
| + i::SMI_NEED_RESERVE_SOURCES | i::SMI_BAILOUT_ON_OVERFLOW);
|
| __ Move(rcx, Smi::FromInt(first));
|
| -
|
| __ incq(rax); // Test 4.
|
| - __ SmiSubConstant(r9, rcx, Smi::FromInt(second), exit);
|
| - __ cmpq(r9, r8);
|
| + __ SmiSubConstant(rcx, rcx, Smi::FromInt(second), mode, exit);
|
| + __ cmpq(rcx, r8);
|
| __ j(not_equal, exit);
|
|
|
| + mode = static_cast<i::SmiExecutionMode>(
|
| + i::SMI_NEED_RESERVE_SOURCES | i::SMI_BAILOUT_ON_NO_OVERFLOW);
|
| + __ Move(rcx, Smi::FromInt(first));
|
| + Label done;
|
| __ incq(rax); // Test 5.
|
| - __ SmiSubConstant(rcx, rcx, Smi::FromInt(second), exit);
|
| + __ SmiSubConstant(rcx, rcx, Smi::FromInt(second), mode, &done);
|
| + __ jmp(exit);
|
| + __ bind(&done);
|
| __ cmpq(rcx, r8);
|
| __ j(not_equal, exit);
|
| }
|
| @@ -921,21 +929,12 @@ static void SmiSubOverflowTest(MacroAssembler* masm,
|
| }
|
|
|
| __ movq(rcx, r11);
|
| + i::SmiExecutionMode mode = static_cast<i::SmiExecutionMode>(
|
| + i::SMI_NEED_RESERVE_SOURCES | i::SMI_BAILOUT_ON_OVERFLOW);
|
| {
|
| Label overflow_ok;
|
| __ incq(rax);
|
| - __ SmiSubConstant(r9, rcx, Smi::FromInt(y_min), &overflow_ok);
|
| - __ jmp(exit);
|
| - __ bind(&overflow_ok);
|
| - __ incq(rax);
|
| - __ cmpq(rcx, r11);
|
| - __ j(not_equal, exit);
|
| - }
|
| -
|
| - {
|
| - Label overflow_ok;
|
| - __ incq(rax);
|
| - __ SmiSubConstant(rcx, rcx, Smi::FromInt(y_min), &overflow_ok);
|
| + __ SmiSubConstant(rcx, rcx, Smi::FromInt(y_min), mode, &overflow_ok);
|
| __ jmp(exit);
|
| __ bind(&overflow_ok);
|
| __ incq(rax);
|
| @@ -971,18 +970,7 @@ static void SmiSubOverflowTest(MacroAssembler* masm,
|
| {
|
| Label overflow_ok;
|
| __ incq(rax);
|
| - __ SmiSubConstant(r9, rcx, Smi::FromInt(y_max), &overflow_ok);
|
| - __ jmp(exit);
|
| - __ bind(&overflow_ok);
|
| - __ incq(rax);
|
| - __ cmpq(rcx, r11);
|
| - __ j(not_equal, exit);
|
| - }
|
| -
|
| - {
|
| - Label overflow_ok;
|
| - __ incq(rax);
|
| - __ SmiSubConstant(rcx, rcx, Smi::FromInt(y_max), &overflow_ok);
|
| + __ SmiSubConstant(rcx, rcx, Smi::FromInt(y_max), mode, &overflow_ok);
|
| __ jmp(exit);
|
| __ bind(&overflow_ok);
|
| __ incq(rax);
|
| @@ -993,7 +981,7 @@ static void SmiSubOverflowTest(MacroAssembler* masm,
|
|
|
|
|
| TEST(SmiSub) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1085,7 +1073,7 @@ void TestSmiMul(MacroAssembler* masm, Label* exit, int id, int x, int y) {
|
|
|
|
|
| TEST(SmiMul) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer = static_cast<byte*>(OS::Allocate(Assembler::kMinimalBufferSize,
|
| @@ -1191,7 +1179,7 @@ void TestSmiDiv(MacroAssembler* masm, Label* exit, int id, int x, int y) {
|
|
|
|
|
| TEST(SmiDiv) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1302,7 +1290,7 @@ void TestSmiMod(MacroAssembler* masm, Label* exit, int id, int x, int y) {
|
|
|
|
|
| TEST(SmiMod) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1400,7 +1388,7 @@ void TestSmiIndex(MacroAssembler* masm, Label* exit, int id, int x) {
|
|
|
|
|
| TEST(SmiIndex) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1470,7 +1458,7 @@ void TestSelectNonSmi(MacroAssembler* masm, Label* exit, int id, int x, int y) {
|
|
|
|
|
| TEST(SmiSelectNonSmi) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1550,7 +1538,7 @@ void TestSmiAnd(MacroAssembler* masm, Label* exit, int id, int x, int y) {
|
|
|
|
|
| TEST(SmiAnd) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1632,7 +1620,7 @@ void TestSmiOr(MacroAssembler* masm, Label* exit, int id, int x, int y) {
|
|
|
|
|
| TEST(SmiOr) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1716,7 +1704,7 @@ void TestSmiXor(MacroAssembler* masm, Label* exit, int id, int x, int y) {
|
|
|
|
|
| TEST(SmiXor) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1784,7 +1772,7 @@ void TestSmiNot(MacroAssembler* masm, Label* exit, int id, int x) {
|
|
|
|
|
| TEST(SmiNot) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1881,7 +1869,7 @@ void TestSmiShiftLeft(MacroAssembler* masm, Label* exit, int id, int x) {
|
|
|
|
|
| TEST(SmiShiftLeft) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -1988,7 +1976,7 @@ void TestSmiShiftLogicalRight(MacroAssembler* masm,
|
|
|
|
|
| TEST(SmiShiftLogicalRight) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -2058,7 +2046,7 @@ void TestSmiShiftArithmeticRight(MacroAssembler* masm,
|
|
|
|
|
| TEST(SmiShiftArithmeticRight) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -2123,7 +2111,7 @@ void TestPositiveSmiPowerUp(MacroAssembler* masm, Label* exit, int id, int x) {
|
|
|
|
|
| TEST(PositiveSmiTimesPowerOfTwoToInteger64) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| // Allocate an executable page of memory.
|
| size_t actual_size;
|
| byte* buffer =
|
| @@ -2164,7 +2152,7 @@ TEST(PositiveSmiTimesPowerOfTwoToInteger64) {
|
|
|
|
|
| TEST(OperandOffset) {
|
| - v8::internal::V8::Initialize(NULL);
|
| + i::V8::Initialize(NULL);
|
| int data[256];
|
| for (int i = 0; i < 256; i++) { data[i] = i * 0x01010101; }
|
|
|
|
|