diff options
Diffstat (limited to 'deps/v8/test/cctest/test-macro-assembler-x64.cc')
-rw-r--r-- | deps/v8/test/cctest/test-macro-assembler-x64.cc | 575 |
1 files changed, 25 insertions, 550 deletions
diff --git a/deps/v8/test/cctest/test-macro-assembler-x64.cc b/deps/v8/test/cctest/test-macro-assembler-x64.cc index 6da2ee492f..5d94412d9b 100644 --- a/deps/v8/test/cctest/test-macro-assembler-x64.cc +++ b/deps/v8/test/cctest/test-macro-assembler-x64.cc @@ -52,7 +52,6 @@ typedef int (*F0)(); #define __ masm-> - static void EntryCode(MacroAssembler* masm) { // Smi constant register is callee save. __ pushq(kRootRegister); @@ -98,14 +97,11 @@ 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) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize, &actual_size, true)); - CHECK(buffer); Isolate* isolate = CcTest::i_isolate(); HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), + size_t allocated; + byte* buffer = AllocateAssemblerBuffer(&allocated); + MacroAssembler assembler(isolate, buffer, static_cast<int>(allocated), v8::internal::CodeObjectRequired::kYes); MacroAssembler* masm = &assembler; // Create a pointer for the __ macro. EntryCode(masm); @@ -184,14 +180,11 @@ void TestSmiCompare(MacroAssembler* masm, Label* exit, int id, int x, int y) { // Test that we can compare smis for equality (and more). TEST(SmiCompare) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize * 2, &actual_size, true)); - CHECK(buffer); Isolate* isolate = CcTest::i_isolate(); HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), + size_t allocated; + byte* buffer = AllocateAssemblerBuffer(&allocated); + MacroAssembler assembler(isolate, buffer, static_cast<int>(allocated), v8::internal::CodeObjectRequired::kYes); MacroAssembler* masm = &assembler; @@ -233,14 +226,11 @@ TEST(SmiCompare) { TEST(Integer32ToSmi) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize, &actual_size, true)); - CHECK(buffer); Isolate* isolate = CcTest::i_isolate(); HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), + size_t allocated; + byte* buffer = AllocateAssemblerBuffer(&allocated); + MacroAssembler assembler(isolate, buffer, static_cast<int>(allocated), v8::internal::CodeObjectRequired::kYes); MacroAssembler* masm = &assembler; @@ -333,14 +323,11 @@ TEST(Integer32ToSmi) { } TEST(SmiCheck) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize, &actual_size, true)); - CHECK(buffer); Isolate* isolate = CcTest::i_isolate(); HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), + size_t allocated; + byte* buffer = AllocateAssemblerBuffer(&allocated); + MacroAssembler assembler(isolate, buffer, static_cast<int>(allocated), v8::internal::CodeObjectRequired::kYes); MacroAssembler* masm = &assembler; @@ -409,443 +396,6 @@ TEST(SmiCheck) { CHECK_EQ(0, result); } -static void SmiAddTest(MacroAssembler* masm, - Label* exit, - int id, - int first, - int second) { - __ movl(rcx, Immediate(first)); - __ Integer32ToSmi(rcx, rcx); - __ movl(rdx, Immediate(second)); - __ Integer32ToSmi(rdx, rdx); - __ movl(r8, Immediate(first + second)); - __ Integer32ToSmi(r8, r8); - - __ movl(rax, Immediate(id)); // Test number. - __ SmiAdd(r9, rcx, rdx, exit); - __ cmpq(r9, r8); - __ j(not_equal, exit); - - __ incq(rax); - __ SmiAdd(rcx, rcx, rdx, exit); - __ cmpq(rcx, r8); - __ j(not_equal, exit); - - __ movl(rcx, Immediate(first)); - __ Integer32ToSmi(rcx, rcx); - - __ incq(rax); - __ SmiAddConstant(r9, rcx, Smi::FromInt(second)); - __ cmpq(r9, r8); - __ j(not_equal, exit); - - __ SmiAddConstant(rcx, rcx, Smi::FromInt(second)); - __ cmpq(rcx, r8); - __ j(not_equal, exit); - - __ movl(rcx, Immediate(first)); - __ Integer32ToSmi(rcx, rcx); - - SmiOperationConstraints constraints = - SmiOperationConstraint::kPreserveSourceRegister | - SmiOperationConstraint::kBailoutOnOverflow; - __ incq(rax); - __ SmiAddConstant(r9, rcx, Smi::FromInt(second), constraints, exit); - __ cmpq(r9, r8); - __ j(not_equal, exit); - - __ incq(rax); - __ SmiAddConstant(rcx, rcx, Smi::FromInt(second), constraints, exit); - __ cmpq(rcx, r8); - __ j(not_equal, exit); - - __ movl(rcx, Immediate(first)); - __ Integer32ToSmi(rcx, rcx); - - constraints = SmiOperationConstraint::kPreserveSourceRegister | - SmiOperationConstraint::kBailoutOnNoOverflow; - Label done; - __ incq(rax); - __ SmiAddConstant(rcx, rcx, Smi::FromInt(second), constraints, &done); - __ jmp(exit); - __ bind(&done); - __ cmpq(rcx, r8); - __ j(not_equal, exit); -} - - -static void SmiAddOverflowTest(MacroAssembler* masm, - Label* exit, - int id, - int x) { - // Adds a Smi to x so that the addition overflows. - CHECK(x != 0); // Can't overflow by adding a Smi. - int y_max = (x > 0) ? (Smi::kMaxValue + 0) : (Smi::kMinValue - x - 1); - int y_min = (x > 0) ? (Smi::kMaxValue - x + 1) : (Smi::kMinValue + 0); - - __ movl(rax, Immediate(id)); - __ Move(rcx, Smi::FromInt(x)); - __ movq(r11, rcx); // Store original Smi value of x in r11. - __ Move(rdx, Smi::FromInt(y_min)); - { - Label overflow_ok; - __ SmiAdd(r9, rcx, rdx, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - { - Label overflow_ok; - __ incq(rax); - __ SmiAdd(rcx, rcx, rdx, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - SmiOperationConstraints constraints = - SmiOperationConstraint::kPreserveSourceRegister | - SmiOperationConstraint::kBailoutOnOverflow; - __ movq(rcx, r11); - { - Label overflow_ok; - __ incq(rax); - __ SmiAddConstant(r9, rcx, Smi::FromInt(y_min), constraints, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - { - Label overflow_ok; - __ incq(rax); - __ SmiAddConstant(rcx, rcx, Smi::FromInt(y_min), constraints, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - __ Move(rdx, Smi::FromInt(y_max)); - - { - Label overflow_ok; - __ incq(rax); - __ SmiAdd(r9, rcx, rdx, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - { - Label overflow_ok; - __ incq(rax); - __ SmiAdd(rcx, rcx, rdx, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - __ movq(rcx, r11); - { - Label overflow_ok; - __ incq(rax); - __ SmiAddConstant(r9, rcx, Smi::FromInt(y_max), constraints, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - constraints = SmiOperationConstraint::kBailoutOnOverflow; - { - Label overflow_ok; - __ incq(rax); - __ SmiAddConstant(rcx, rcx, Smi::FromInt(y_max), constraints, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(equal, exit); - } -} - - -TEST(SmiAdd) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize * 3, &actual_size, true)); - CHECK(buffer); - Isolate* isolate = CcTest::i_isolate(); - HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), - v8::internal::CodeObjectRequired::kYes); - - MacroAssembler* masm = &assembler; - EntryCode(masm); - Label exit; - - // No-overflow tests. - SmiAddTest(masm, &exit, 0x10, 1, 2); - SmiAddTest(masm, &exit, 0x20, 1, -2); - SmiAddTest(masm, &exit, 0x30, -1, 2); - SmiAddTest(masm, &exit, 0x40, -1, -2); - SmiAddTest(masm, &exit, 0x50, 0x1000, 0x2000); - SmiAddTest(masm, &exit, 0x60, Smi::kMinValue, 5); - SmiAddTest(masm, &exit, 0x70, Smi::kMaxValue, -5); - SmiAddTest(masm, &exit, 0x80, Smi::kMaxValue, Smi::kMinValue); - - SmiAddOverflowTest(masm, &exit, 0x90, -1); - SmiAddOverflowTest(masm, &exit, 0xA0, 1); - SmiAddOverflowTest(masm, &exit, 0xB0, 1024); - SmiAddOverflowTest(masm, &exit, 0xC0, Smi::kMaxValue); - SmiAddOverflowTest(masm, &exit, 0xD0, -2); - SmiAddOverflowTest(masm, &exit, 0xE0, -42000); - SmiAddOverflowTest(masm, &exit, 0xF0, Smi::kMinValue); - - __ xorq(rax, rax); // Success. - __ bind(&exit); - ExitCode(masm); - __ ret(0); - - CodeDesc desc; - masm->GetCode(isolate, &desc); - // Call the function from C++. - int result = FUNCTION_CAST<F0>(buffer)(); - CHECK_EQ(0, result); -} - - -static void SmiSubTest(MacroAssembler* masm, - Label* exit, - int id, - int first, - int second) { - __ Move(rcx, Smi::FromInt(first)); - __ Move(rdx, Smi::FromInt(second)); - __ Move(r8, Smi::FromInt(first - second)); - - __ movl(rax, Immediate(id)); // Test 0. - __ SmiSub(r9, rcx, rdx, exit); - __ cmpq(r9, r8); - __ j(not_equal, exit); - - __ incq(rax); // Test 1. - __ SmiSub(rcx, rcx, rdx, exit); - __ cmpq(rcx, r8); - __ j(not_equal, exit); - - __ Move(rcx, Smi::FromInt(first)); - - __ incq(rax); // Test 2. - __ SmiSubConstant(r9, rcx, Smi::FromInt(second)); - __ cmpq(r9, r8); - __ j(not_equal, exit); - - __ incq(rax); // Test 3. - __ SmiSubConstant(rcx, rcx, Smi::FromInt(second)); - __ cmpq(rcx, r8); - __ j(not_equal, exit); - - SmiOperationConstraints constraints = - SmiOperationConstraint::kPreserveSourceRegister | - SmiOperationConstraint::kBailoutOnOverflow; - __ Move(rcx, Smi::FromInt(first)); - __ incq(rax); // Test 4. - __ SmiSubConstant(rcx, rcx, Smi::FromInt(second), constraints, exit); - __ cmpq(rcx, r8); - __ j(not_equal, exit); - - __ Move(rcx, Smi::FromInt(first)); - __ incq(rax); // Test 5. - __ SmiSubConstant(r9, rcx, Smi::FromInt(second), constraints, exit); - __ cmpq(r9, r8); - __ j(not_equal, exit); - - constraints = SmiOperationConstraint::kPreserveSourceRegister | - SmiOperationConstraint::kBailoutOnNoOverflow; - __ Move(rcx, Smi::FromInt(first)); - Label done; - __ incq(rax); // Test 6. - __ SmiSubConstant(rcx, rcx, Smi::FromInt(second), constraints, &done); - __ jmp(exit); - __ bind(&done); - __ cmpq(rcx, r8); - __ j(not_equal, exit); -} - - -static void SmiSubOverflowTest(MacroAssembler* masm, - Label* exit, - int id, - int x) { - // Subtracts a Smi from x so that the subtraction overflows. - CHECK(x != -1); // Can't overflow by subtracting a Smi. - int y_max = (x < 0) ? (Smi::kMaxValue + 0) : (Smi::kMinValue + 0); - int y_min = (x < 0) ? (Smi::kMaxValue + x + 2) : (Smi::kMinValue + x); - - __ movl(rax, Immediate(id)); - __ Move(rcx, Smi::FromInt(x)); - __ movq(r11, rcx); // Store original Smi value of x in r11. - __ Move(rdx, Smi::FromInt(y_min)); - { - Label overflow_ok; - __ SmiSub(r9, rcx, rdx, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - { - Label overflow_ok; - __ incq(rax); - __ SmiSub(rcx, rcx, rdx, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - SmiOperationConstraints constraints = - SmiOperationConstraint::kPreserveSourceRegister | - SmiOperationConstraint::kBailoutOnOverflow; - - __ movq(rcx, r11); - { - Label overflow_ok; - __ incq(rax); - __ SmiSubConstant(r9, rcx, Smi::FromInt(y_min), constraints, &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), constraints, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - __ Move(rdx, Smi::FromInt(y_max)); - - { - Label overflow_ok; - __ incq(rax); - __ SmiSub(r9, rcx, rdx, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - { - Label overflow_ok; - __ incq(rax); - __ SmiSub(rcx, rcx, rdx, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - __ movq(rcx, r11); - { - Label overflow_ok; - __ incq(rax); - __ SmiSubConstant(rcx, rcx, Smi::FromInt(y_max), constraints, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(not_equal, exit); - } - - constraints = SmiOperationConstraint::kBailoutOnOverflow; - __ movq(rcx, r11); - { - Label overflow_ok; - __ incq(rax); - __ SmiSubConstant(rcx, rcx, Smi::FromInt(y_max), constraints, &overflow_ok); - __ jmp(exit); - __ bind(&overflow_ok); - __ incq(rax); - __ cmpq(rcx, r11); - __ j(equal, exit); - } -} - - -TEST(SmiSub) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize * 4, &actual_size, true)); - CHECK(buffer); - Isolate* isolate = CcTest::i_isolate(); - HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), - v8::internal::CodeObjectRequired::kYes); - - MacroAssembler* masm = &assembler; - EntryCode(masm); - Label exit; - - SmiSubTest(masm, &exit, 0x10, 1, 2); - SmiSubTest(masm, &exit, 0x20, 1, -2); - SmiSubTest(masm, &exit, 0x30, -1, 2); - SmiSubTest(masm, &exit, 0x40, -1, -2); - SmiSubTest(masm, &exit, 0x50, 0x1000, 0x2000); - SmiSubTest(masm, &exit, 0x60, Smi::kMinValue, -5); - SmiSubTest(masm, &exit, 0x70, Smi::kMaxValue, 5); - SmiSubTest(masm, &exit, 0x80, -Smi::kMaxValue, Smi::kMinValue); - SmiSubTest(masm, &exit, 0x90, 0, Smi::kMaxValue); - - SmiSubOverflowTest(masm, &exit, 0xA0, 1); - SmiSubOverflowTest(masm, &exit, 0xB0, 1024); - SmiSubOverflowTest(masm, &exit, 0xC0, Smi::kMaxValue); - SmiSubOverflowTest(masm, &exit, 0xD0, -2); - SmiSubOverflowTest(masm, &exit, 0xE0, -42000); - SmiSubOverflowTest(masm, &exit, 0xF0, Smi::kMinValue); - SmiSubOverflowTest(masm, &exit, 0x100, 0); - - __ xorq(rax, rax); // Success. - __ bind(&exit); - ExitCode(masm); - __ ret(0); - - CodeDesc desc; - masm->GetCode(isolate, &desc); - // Call the function from C++. - int result = FUNCTION_CAST<F0>(buffer)(); - CHECK_EQ(0, result); -} - void TestSmiIndex(MacroAssembler* masm, Label* exit, int id, int x) { __ movl(rax, Immediate(id)); @@ -870,14 +420,11 @@ void TestSmiIndex(MacroAssembler* masm, Label* exit, int id, int x) { } TEST(SmiIndex) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize * 5, &actual_size, true)); - CHECK(buffer); Isolate* isolate = CcTest::i_isolate(); HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), + size_t allocated; + byte* buffer = AllocateAssemblerBuffer(&allocated); + MacroAssembler assembler(isolate, buffer, static_cast<int>(allocated), v8::internal::CodeObjectRequired::kYes); MacroAssembler* masm = &assembler; @@ -902,82 +449,15 @@ TEST(SmiIndex) { CHECK_EQ(0, result); } -void TestPositiveSmiPowerUp(MacroAssembler* masm, Label* exit, int id, int x) { - CHECK(x >= 0); - int powers[] = { 0, 1, 2, 3, 8, 16, 24, 31 }; - int power_count = 8; - __ movl(rax, Immediate(id)); - for (int i = 0; i < power_count; i++) { - int power = powers[i]; - intptr_t result = static_cast<intptr_t>(x) << power; - __ Set(r8, result); - __ Move(rcx, Smi::FromInt(x)); - __ movq(r11, rcx); - __ PositiveSmiTimesPowerOfTwoToInteger64(rdx, rcx, power); - __ cmpq(rdx, r8); - __ j(not_equal, exit); - __ incq(rax); - __ cmpq(r11, rcx); // rcx unchanged. - __ j(not_equal, exit); - __ incq(rax); - __ PositiveSmiTimesPowerOfTwoToInteger64(rcx, rcx, power); - __ cmpq(rdx, r8); - __ j(not_equal, exit); - __ incq(rax); - } -} - - -TEST(PositiveSmiTimesPowerOfTwoToInteger64) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize * 4, &actual_size, true)); - CHECK(buffer); - Isolate* isolate = CcTest::i_isolate(); - HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), - v8::internal::CodeObjectRequired::kYes); - - MacroAssembler* masm = &assembler; - EntryCode(masm); - Label exit; - - TestPositiveSmiPowerUp(masm, &exit, 0x20, 0); - TestPositiveSmiPowerUp(masm, &exit, 0x40, 1); - TestPositiveSmiPowerUp(masm, &exit, 0x60, 127); - TestPositiveSmiPowerUp(masm, &exit, 0x80, 128); - TestPositiveSmiPowerUp(masm, &exit, 0xA0, 255); - TestPositiveSmiPowerUp(masm, &exit, 0xC0, 256); - TestPositiveSmiPowerUp(masm, &exit, 0x100, 65535); - TestPositiveSmiPowerUp(masm, &exit, 0x120, 65536); - TestPositiveSmiPowerUp(masm, &exit, 0x140, Smi::kMaxValue); - - __ xorq(rax, rax); // Success. - __ bind(&exit); - ExitCode(masm); - __ ret(0); - - CodeDesc desc; - masm->GetCode(isolate, &desc); - // Call the function from C++. - int result = FUNCTION_CAST<F0>(buffer)(); - CHECK_EQ(0, result); -} - - TEST(OperandOffset) { uint32_t data[256]; for (uint32_t i = 0; i < 256; i++) { data[i] = i * 0x01010101; } - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize * 2, &actual_size, true)); - CHECK(buffer); Isolate* isolate = CcTest::i_isolate(); HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), + size_t allocated; + byte* buffer = AllocateAssemblerBuffer(&allocated); + MacroAssembler assembler(isolate, buffer, static_cast<int>(allocated), v8::internal::CodeObjectRequired::kYes); MacroAssembler* masm = &assembler; @@ -1321,15 +801,13 @@ TEST(OperandOffset) { TEST(LoadAndStoreWithRepresentation) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize, &actual_size, true)); - CHECK(buffer); Isolate* isolate = CcTest::i_isolate(); HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), + size_t allocated; + byte* buffer = AllocateAssemblerBuffer(&allocated); + MacroAssembler assembler(isolate, buffer, static_cast<int>(allocated), v8::internal::CodeObjectRequired::kYes); + MacroAssembler* masm = &assembler; // Create a pointer for the __ macro. EntryCode(masm); __ subq(rsp, Immediate(1 * kPointerSize)); @@ -1590,14 +1068,11 @@ void TestFloat64x2Neg(MacroAssembler* masm, Label* exit, double x, double y) { } TEST(SIMDMacros) { - // Allocate an executable page of memory. - size_t actual_size; - byte* buffer = static_cast<byte*>(v8::base::OS::Allocate( - Assembler::kMinimalBufferSize * 2, &actual_size, true)); - CHECK(buffer); Isolate* isolate = CcTest::i_isolate(); HandleScope handles(isolate); - MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size), + size_t allocated; + byte* buffer = AllocateAssemblerBuffer(&allocated); + MacroAssembler assembler(isolate, buffer, static_cast<int>(allocated), v8::internal::CodeObjectRequired::kYes); MacroAssembler* masm = &assembler; |