aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/test-assembler-arm.cc
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2015-06-19 13:23:56 +0200
committerRod Vagg <rod@vagg.org>2015-08-04 11:56:14 -0700
commit70d1f32f5605465a1a630a64f6f0d35f96c7709d (patch)
tree0a349040a686eafcb0a09943ebc733477dce2781 /deps/v8/test/cctest/test-assembler-arm.cc
parent4643b8b6671607a7aff60cbbd0b384dcf2f6959e (diff)
downloadandroid-node-v8-70d1f32f5605465a1a630a64f6f0d35f96c7709d.tar.gz
android-node-v8-70d1f32f5605465a1a630a64f6f0d35f96c7709d.tar.bz2
android-node-v8-70d1f32f5605465a1a630a64f6f0d35f96c7709d.zip
deps: update v8 to 4.4.63.9
Upgrade the bundled V8 and update code in src/ and lib/ to the new API. Notable backwards incompatible changes are the removal of the smalloc module and dropped support for CESU-8 decoding. CESU-8 support can be brought back if necessary by doing UTF-8 decoding ourselves. This commit includes https://codereview.chromium.org/1192973004 to fix a build error on python 2.6 systems. The original commit log follows: Use optparse in js2c.py for python compatibility Without this change, V8 won't build on RHEL/CentOS 6 because the distro python is too old to know about the argparse module. PR-URL: https://github.com/nodejs/io.js/pull/2022 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Diffstat (limited to 'deps/v8/test/cctest/test-assembler-arm.cc')
-rw-r--r--deps/v8/test/cctest/test-assembler-arm.cc167
1 files changed, 1 insertions, 166 deletions
diff --git a/deps/v8/test/cctest/test-assembler-arm.cc b/deps/v8/test/cctest/test-assembler-arm.cc
index 526d4567fa..cb89577991 100644
--- a/deps/v8/test/cctest/test-assembler-arm.cc
+++ b/deps/v8/test/cctest/test-assembler-arm.cc
@@ -32,6 +32,7 @@
#include "src/arm/assembler-arm-inl.h"
#include "src/arm/simulator-arm.h"
+#include "src/base/utils/random-number-generator.h"
#include "src/disassembler.h"
#include "src/factory.h"
#include "src/ostreams.h"
@@ -1885,172 +1886,6 @@ TEST(code_relative_offset) {
}
-TEST(jump_tables1) {
- // Test jump tables with forward jumps.
- CcTest::InitializeVM();
- Isolate* isolate = CcTest::i_isolate();
- HandleScope scope(isolate);
- Assembler assm(isolate, nullptr, 0);
-
- const int kNumCases = 512;
- int values[kNumCases];
- isolate->random_number_generator()->NextBytes(values, sizeof(values));
- Label labels[kNumCases];
-
- __ stm(db_w, sp, lr.bit());
-
- Label done;
- __ BlockConstPoolFor(kNumCases + 2);
- {
- PredictableCodeSizeScope predictable(
- &assm, (kNumCases + 2) * Assembler::kInstrSize);
- __ ldr(pc, MemOperand(pc, r0, LSL, 2));
- __ nop();
- for (int i = 0; i < kNumCases; ++i) {
- __ dd(&labels[i]);
- }
- }
-
- for (int i = 0; i < kNumCases; ++i) {
- __ bind(&labels[i]);
- __ mov(r0, Operand(values[i]));
- __ b(&done);
- }
-
- __ bind(&done);
- __ ldm(ia_w, sp, pc.bit());
-
- CodeDesc desc;
- assm.GetCode(&desc);
- Handle<Code> code = isolate->factory()->NewCode(
- desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
-#ifdef OBJECT_PRINT
- code->Print(std::cout);
-#endif
- F1 f = FUNCTION_CAST<F1>(code->entry());
- for (int i = 0; i < kNumCases; ++i) {
- int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, i, 0, 0, 0, 0));
- ::printf("f(%d) = %d\n", i, res);
- CHECK_EQ(values[i], res);
- }
-}
-
-
-TEST(jump_tables2) {
- // Test jump tables with backward jumps.
- CcTest::InitializeVM();
- Isolate* isolate = CcTest::i_isolate();
- HandleScope scope(isolate);
- Assembler assm(isolate, nullptr, 0);
-
- const int kNumCases = 512;
- int values[kNumCases];
- isolate->random_number_generator()->NextBytes(values, sizeof(values));
- Label labels[kNumCases];
-
- __ stm(db_w, sp, lr.bit());
-
- Label done, dispatch;
- __ b(&dispatch);
-
- for (int i = 0; i < kNumCases; ++i) {
- __ bind(&labels[i]);
- __ mov(r0, Operand(values[i]));
- __ b(&done);
- }
-
- __ bind(&dispatch);
- __ BlockConstPoolFor(kNumCases + 2);
- {
- PredictableCodeSizeScope predictable(
- &assm, (kNumCases + 2) * Assembler::kInstrSize);
- __ ldr(pc, MemOperand(pc, r0, LSL, 2));
- __ nop();
- for (int i = 0; i < kNumCases; ++i) {
- __ dd(&labels[i]);
- }
- }
-
- __ bind(&done);
- __ ldm(ia_w, sp, pc.bit());
-
- CodeDesc desc;
- assm.GetCode(&desc);
- Handle<Code> code = isolate->factory()->NewCode(
- desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
-#ifdef OBJECT_PRINT
- code->Print(std::cout);
-#endif
- F1 f = FUNCTION_CAST<F1>(code->entry());
- for (int i = 0; i < kNumCases; ++i) {
- int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, i, 0, 0, 0, 0));
- ::printf("f(%d) = %d\n", i, res);
- CHECK_EQ(values[i], res);
- }
-}
-
-
-TEST(jump_tables3) {
- // Test jump tables with backward jumps and embedded heap objects.
- CcTest::InitializeVM();
- Isolate* isolate = CcTest::i_isolate();
- HandleScope scope(isolate);
- Assembler assm(isolate, nullptr, 0);
-
- const int kNumCases = 256;
- Handle<Object> values[kNumCases];
- for (int i = 0; i < kNumCases; ++i) {
- double value = isolate->random_number_generator()->NextDouble();
- values[i] = isolate->factory()->NewHeapNumber(value, IMMUTABLE, TENURED);
- }
- Label labels[kNumCases];
-
- __ stm(db_w, sp, lr.bit());
-
- Label done, dispatch;
- __ b(&dispatch);
-
- for (int i = 0; i < kNumCases; ++i) {
- __ bind(&labels[i]);
- __ mov(r0, Operand(values[i]));
- __ b(&done);
- }
-
- __ bind(&dispatch);
- __ BlockConstPoolFor(kNumCases + 2);
- {
- PredictableCodeSizeScope predictable(
- &assm, (kNumCases + 2) * Assembler::kInstrSize);
- __ ldr(pc, MemOperand(pc, r0, LSL, 2));
- __ nop();
- for (int i = 0; i < kNumCases; ++i) {
- __ dd(&labels[i]);
- }
- }
-
- __ bind(&done);
- __ ldm(ia_w, sp, pc.bit());
-
- CodeDesc desc;
- assm.GetCode(&desc);
- Handle<Code> code = isolate->factory()->NewCode(
- desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
-#ifdef OBJECT_PRINT
- code->Print(std::cout);
-#endif
- F1 f = FUNCTION_CAST<F1>(code->entry());
- for (int i = 0; i < kNumCases; ++i) {
- Handle<Object> result(CALL_GENERATED_CODE(f, i, 0, 0, 0, 0), isolate);
-#ifdef OBJECT_PRINT
- ::printf("f(%d) = ", i);
- result->Print(std::cout);
- ::printf("\n");
-#endif
- CHECK(values[i].is_identical_to(result));
- }
-}
-
-
TEST(ARMv8_vrintX) {
// Test the vrintX floating point instructions.
CcTest::InitializeVM();