Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: src/arm64/lithium-codegen-arm64.cc

Issue 313083006: Rename ReverseCondition to CommuteCondition, a more standard term. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/arm64/lithium-codegen-arm64.h" 7 #include "src/arm64/lithium-codegen-arm64.h"
8 #include "src/arm64/lithium-gap-resolver-arm64.h" 8 #include "src/arm64/lithium-gap-resolver-arm64.h"
9 #include "src/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/stub-cache.h" 10 #include "src/stub-cache.h"
(...skipping 1830 matching lines...) Expand 10 before | Expand all | Expand 10 after
1841 1841
1842 1842
1843 void LCodeGen::DoBoundsCheck(LBoundsCheck *instr) { 1843 void LCodeGen::DoBoundsCheck(LBoundsCheck *instr) {
1844 Condition cond = instr->hydrogen()->allow_equality() ? hi : hs; 1844 Condition cond = instr->hydrogen()->allow_equality() ? hi : hs;
1845 ASSERT(instr->hydrogen()->index()->representation().IsInteger32()); 1845 ASSERT(instr->hydrogen()->index()->representation().IsInteger32());
1846 ASSERT(instr->hydrogen()->length()->representation().IsInteger32()); 1846 ASSERT(instr->hydrogen()->length()->representation().IsInteger32());
1847 if (instr->index()->IsConstantOperand()) { 1847 if (instr->index()->IsConstantOperand()) {
1848 Operand index = ToOperand32I(instr->index()); 1848 Operand index = ToOperand32I(instr->index());
1849 Register length = ToRegister32(instr->length()); 1849 Register length = ToRegister32(instr->length());
1850 __ Cmp(length, index); 1850 __ Cmp(length, index);
1851 cond = ReverseCondition(cond); 1851 cond = CommuteCondition(cond);
1852 } else { 1852 } else {
1853 Register index = ToRegister32(instr->index()); 1853 Register index = ToRegister32(instr->index());
1854 Operand length = ToOperand32I(instr->length()); 1854 Operand length = ToOperand32I(instr->length());
1855 __ Cmp(index, length); 1855 __ Cmp(index, length);
1856 } 1856 }
1857 if (FLAG_debug_code && instr->hydrogen()->skip_check()) { 1857 if (FLAG_debug_code && instr->hydrogen()->skip_check()) {
1858 __ Assert(NegateCondition(cond), kEliminatedBoundsCheckFailed); 1858 __ Assert(NegateCondition(cond), kEliminatedBoundsCheckFailed);
1859 } else { 1859 } else {
1860 DeoptimizeIf(cond, instr->environment()); 1860 DeoptimizeIf(cond, instr->environment());
1861 } 1861 }
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after
2479 double right_val = ToDouble(LConstantOperand::cast(right)); 2479 double right_val = ToDouble(LConstantOperand::cast(right));
2480 int next_block = EvalComparison(instr->op(), left_val, right_val) ? 2480 int next_block = EvalComparison(instr->op(), left_val, right_val) ?
2481 instr->TrueDestination(chunk_) : instr->FalseDestination(chunk_); 2481 instr->TrueDestination(chunk_) : instr->FalseDestination(chunk_);
2482 EmitGoto(next_block); 2482 EmitGoto(next_block);
2483 } else { 2483 } else {
2484 if (instr->is_double()) { 2484 if (instr->is_double()) {
2485 if (right->IsConstantOperand()) { 2485 if (right->IsConstantOperand()) {
2486 __ Fcmp(ToDoubleRegister(left), 2486 __ Fcmp(ToDoubleRegister(left),
2487 ToDouble(LConstantOperand::cast(right))); 2487 ToDouble(LConstantOperand::cast(right)));
2488 } else if (left->IsConstantOperand()) { 2488 } else if (left->IsConstantOperand()) {
2489 // Transpose the operands and reverse the condition. 2489 // Commute the operands and the condition.
2490 __ Fcmp(ToDoubleRegister(right), 2490 __ Fcmp(ToDoubleRegister(right),
2491 ToDouble(LConstantOperand::cast(left))); 2491 ToDouble(LConstantOperand::cast(left)));
2492 cond = ReverseCondition(cond); 2492 cond = CommuteCondition(cond);
2493 } else { 2493 } else {
2494 __ Fcmp(ToDoubleRegister(left), ToDoubleRegister(right)); 2494 __ Fcmp(ToDoubleRegister(left), ToDoubleRegister(right));
2495 } 2495 }
2496 2496
2497 // If a NaN is involved, i.e. the result is unordered (V set), 2497 // If a NaN is involved, i.e. the result is unordered (V set),
2498 // jump to false block label. 2498 // jump to false block label.
2499 __ B(vs, instr->FalseLabel(chunk_)); 2499 __ B(vs, instr->FalseLabel(chunk_));
2500 EmitBranch(instr, cond); 2500 EmitBranch(instr, cond);
2501 } else { 2501 } else {
2502 if (instr->hydrogen_value()->representation().IsInteger32()) { 2502 if (instr->hydrogen_value()->representation().IsInteger32()) {
2503 if (right->IsConstantOperand()) { 2503 if (right->IsConstantOperand()) {
2504 EmitCompareAndBranch(instr, 2504 EmitCompareAndBranch(instr,
2505 cond, 2505 cond,
2506 ToRegister32(left), 2506 ToRegister32(left),
2507 ToOperand32I(right)); 2507 ToOperand32I(right));
2508 } else { 2508 } else {
2509 // Transpose the operands and reverse the condition. 2509 // Commute the operands and the condition.
2510 EmitCompareAndBranch(instr, 2510 EmitCompareAndBranch(instr,
2511 ReverseCondition(cond), 2511 CommuteCondition(cond),
2512 ToRegister32(right), 2512 ToRegister32(right),
2513 ToOperand32I(left)); 2513 ToOperand32I(left));
2514 } 2514 }
2515 } else { 2515 } else {
2516 ASSERT(instr->hydrogen_value()->representation().IsSmi()); 2516 ASSERT(instr->hydrogen_value()->representation().IsSmi());
2517 if (right->IsConstantOperand()) { 2517 if (right->IsConstantOperand()) {
2518 int32_t value = ToInteger32(LConstantOperand::cast(right)); 2518 int32_t value = ToInteger32(LConstantOperand::cast(right));
2519 EmitCompareAndBranch(instr, 2519 EmitCompareAndBranch(instr,
2520 cond, 2520 cond,
2521 ToRegister(left), 2521 ToRegister(left),
2522 Operand(Smi::FromInt(value))); 2522 Operand(Smi::FromInt(value)));
2523 } else if (left->IsConstantOperand()) { 2523 } else if (left->IsConstantOperand()) {
2524 // Transpose the operands and reverse the condition. 2524 // Commute the operands and the condition.
2525 int32_t value = ToInteger32(LConstantOperand::cast(left)); 2525 int32_t value = ToInteger32(LConstantOperand::cast(left));
2526 EmitCompareAndBranch(instr, 2526 EmitCompareAndBranch(instr,
2527 ReverseCondition(cond), 2527 CommuteCondition(cond),
2528 ToRegister(right), 2528 ToRegister(right),
2529 Operand(Smi::FromInt(value))); 2529 Operand(Smi::FromInt(value)));
2530 } else { 2530 } else {
2531 EmitCompareAndBranch(instr, 2531 EmitCompareAndBranch(instr,
2532 cond, 2532 cond,
2533 ToRegister(left), 2533 ToRegister(left),
2534 ToRegister(right)); 2534 ToRegister(right));
2535 } 2535 }
2536 } 2536 }
2537 } 2537 }
(...skipping 3495 matching lines...) Expand 10 before | Expand all | Expand 10 after
6033 __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset)); 6033 __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset));
6034 // Index is equal to negated out of object property index plus 1. 6034 // Index is equal to negated out of object property index plus 1.
6035 __ Sub(result, result, Operand::UntagSmiAndScale(index, kPointerSizeLog2)); 6035 __ Sub(result, result, Operand::UntagSmiAndScale(index, kPointerSizeLog2));
6036 __ Ldr(result, FieldMemOperand(result, 6036 __ Ldr(result, FieldMemOperand(result,
6037 FixedArray::kHeaderSize - kPointerSize)); 6037 FixedArray::kHeaderSize - kPointerSize));
6038 __ Bind(deferred->exit()); 6038 __ Bind(deferred->exit());
6039 __ Bind(&done); 6039 __ Bind(&done);
6040 } 6040 }
6041 6041
6042 } } // namespace v8::internal 6042 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698