Fix the ambigous Operand(0) for newer C++ compilers.
Review URL: http://codereview.chromium.org/3351010/show Committed for Thiago Farina <tfarina@chromium.org> git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
983ed89a14
commit
7368ce808e
@ -125,7 +125,7 @@ static void AllocateEmptyJSArray(MacroAssembler* masm,
|
||||
__ LoadRoot(scratch1, Heap::kEmptyFixedArrayRootIndex);
|
||||
__ str(scratch1, FieldMemOperand(result, JSArray::kPropertiesOffset));
|
||||
// Field JSArray::kElementsOffset is initialized later.
|
||||
__ mov(scratch3, Operand(0));
|
||||
__ mov(scratch3, Operand(0, RelocInfo::NONE));
|
||||
__ str(scratch3, FieldMemOperand(result, JSArray::kLengthOffset));
|
||||
|
||||
// Calculate the location of the elements array and set elements array member
|
||||
@ -311,7 +311,7 @@ static void ArrayNativeCode(MacroAssembler* masm,
|
||||
Label argc_one_or_more, argc_two_or_more;
|
||||
|
||||
// Check for array construction with zero arguments or one.
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
__ b(ne, &argc_one_or_more);
|
||||
|
||||
// Handle construction of an empty array.
|
||||
@ -513,7 +513,7 @@ void Builtins::Generate_JSConstructCall(MacroAssembler* masm) {
|
||||
// r1: called object
|
||||
__ bind(&non_function_call);
|
||||
// Set expected number of arguments to zero (not changing r0).
|
||||
__ mov(r2, Operand(0));
|
||||
__ mov(r2, Operand(0, RelocInfo::NONE));
|
||||
__ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION_AS_CONSTRUCTOR);
|
||||
__ Jump(Handle<Code>(builtin(ArgumentsAdaptorTrampoline)),
|
||||
RelocInfo::CODE_TARGET);
|
||||
@ -843,7 +843,7 @@ static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
|
||||
// r5-r7, cp may be clobbered
|
||||
|
||||
// Clear the context before we push it when entering the JS frame.
|
||||
__ mov(cp, Operand(0));
|
||||
__ mov(cp, Operand(0, RelocInfo::NONE));
|
||||
|
||||
// Enter an internal frame.
|
||||
__ EnterInternalFrame();
|
||||
@ -1030,7 +1030,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
|
||||
__ add(r2, sp, Operand(r0, LSL, kPointerSizeLog2));
|
||||
__ str(r1, MemOperand(r2, -kPointerSize));
|
||||
// Clear r1 to indicate a non-function being called.
|
||||
__ mov(r1, Operand(0));
|
||||
__ mov(r1, Operand(0, RelocInfo::NONE));
|
||||
|
||||
// 4. Shift arguments and return address one slot down on the stack
|
||||
// (overwriting the original receiver). Adjust argument count to make
|
||||
@ -1060,7 +1060,8 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
|
||||
{ Label function;
|
||||
__ tst(r1, r1);
|
||||
__ b(ne, &function);
|
||||
__ mov(r2, Operand(0)); // expected arguments is 0 for CALL_NON_FUNCTION
|
||||
// Expected number of arguments is 0 for CALL_NON_FUNCTION.
|
||||
__ mov(r2, Operand(0, RelocInfo::NONE));
|
||||
__ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION);
|
||||
__ Jump(Handle<Code>(builtin(ArgumentsAdaptorTrampoline)),
|
||||
RelocInfo::CODE_TARGET);
|
||||
@ -1123,7 +1124,7 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) {
|
||||
// Push current limit and index.
|
||||
__ bind(&okay);
|
||||
__ push(r0); // limit
|
||||
__ mov(r1, Operand(0)); // initial index
|
||||
__ mov(r1, Operand(0, RelocInfo::NONE)); // initial index
|
||||
__ push(r1);
|
||||
|
||||
// Change context eagerly to get the right global object if necessary.
|
||||
|
@ -296,7 +296,7 @@ void ConvertToDoubleStub::Generate(MacroAssembler* masm) {
|
||||
STATIC_ASSERT(HeapNumber::kSignMask == 0x80000000u);
|
||||
__ and_(exponent, source_, Operand(HeapNumber::kSignMask), SetCC);
|
||||
// Subtract from 0 if source was negative.
|
||||
__ rsb(source_, source_, Operand(0), LeaveCC, ne);
|
||||
__ rsb(source_, source_, Operand(0, RelocInfo::NONE), LeaveCC, ne);
|
||||
|
||||
// We have -1, 0 or 1, which we treat specially. Register source_ contains
|
||||
// absolute value: it is either equal to 1 (special case of -1 and 1),
|
||||
@ -309,7 +309,7 @@ void ConvertToDoubleStub::Generate(MacroAssembler* masm) {
|
||||
HeapNumber::kExponentBias << HeapNumber::kExponentShift;
|
||||
__ orr(exponent, exponent, Operand(exponent_word_for_1), LeaveCC, eq);
|
||||
// 1, 0 and -1 all have 0 for the second word.
|
||||
__ mov(mantissa, Operand(0));
|
||||
__ mov(mantissa, Operand(0, RelocInfo::NONE));
|
||||
__ Ret();
|
||||
|
||||
__ bind(¬_special);
|
||||
@ -357,7 +357,7 @@ void WriteInt32ToHeapNumberStub::Generate(MacroAssembler* masm) {
|
||||
// Set the sign bit in scratch_ if the value was negative.
|
||||
__ orr(scratch_, scratch_, Operand(HeapNumber::kSignMask), LeaveCC, cs);
|
||||
// Subtract from 0 if the value was negative.
|
||||
__ rsb(the_int_, the_int_, Operand(0), LeaveCC, cs);
|
||||
__ rsb(the_int_, the_int_, Operand(0, RelocInfo::NONE), LeaveCC, cs);
|
||||
// We should be masking the implict first digit of the mantissa away here,
|
||||
// but it just ends up combining harmlessly with the last digit of the
|
||||
// exponent that happens to be 1. The sign bit is 0 so we shift 10 to get
|
||||
@ -380,7 +380,7 @@ void WriteInt32ToHeapNumberStub::Generate(MacroAssembler* masm) {
|
||||
non_smi_exponent += 1 << HeapNumber::kExponentShift;
|
||||
__ mov(ip, Operand(HeapNumber::kSignMask | non_smi_exponent));
|
||||
__ str(ip, FieldMemOperand(the_heap_number_, HeapNumber::kExponentOffset));
|
||||
__ mov(ip, Operand(0));
|
||||
__ mov(ip, Operand(0, RelocInfo::NONE));
|
||||
__ str(ip, FieldMemOperand(the_heap_number_, HeapNumber::kMantissaOffset));
|
||||
__ Ret();
|
||||
}
|
||||
@ -604,7 +604,7 @@ void EmitNanCheck(MacroAssembler* masm, Label* lhs_not_nan, Condition cc) {
|
||||
Operand(lhs_exponent, LSL, HeapNumber::kNonMantissaBitsInTopWord),
|
||||
SetCC);
|
||||
__ b(ne, &one_is_nan);
|
||||
__ cmp(lhs_mantissa, Operand(0));
|
||||
__ cmp(lhs_mantissa, Operand(0, RelocInfo::NONE));
|
||||
__ b(ne, &one_is_nan);
|
||||
|
||||
__ bind(lhs_not_nan);
|
||||
@ -619,7 +619,7 @@ void EmitNanCheck(MacroAssembler* masm, Label* lhs_not_nan, Condition cc) {
|
||||
Operand(rhs_exponent, LSL, HeapNumber::kNonMantissaBitsInTopWord),
|
||||
SetCC);
|
||||
__ b(ne, &one_is_nan);
|
||||
__ cmp(rhs_mantissa, Operand(0));
|
||||
__ cmp(rhs_mantissa, Operand(0, RelocInfo::NONE));
|
||||
__ b(eq, &neither_is_nan);
|
||||
|
||||
__ bind(&one_is_nan);
|
||||
@ -1085,8 +1085,8 @@ void ToBooleanStub::Generate(MacroAssembler* masm) {
|
||||
// "tos_" is a register, and contains a non zero value by default.
|
||||
// Hence we only need to overwrite "tos_" with zero to return false for
|
||||
// FP_ZERO or FP_NAN cases. Otherwise, by default it returns true.
|
||||
__ mov(tos_, Operand(0), LeaveCC, eq); // for FP_ZERO
|
||||
__ mov(tos_, Operand(0), LeaveCC, vs); // for FP_NAN
|
||||
__ mov(tos_, Operand(0, RelocInfo::NONE), LeaveCC, eq); // for FP_ZERO
|
||||
__ mov(tos_, Operand(0, RelocInfo::NONE), LeaveCC, vs); // for FP_NAN
|
||||
__ Ret();
|
||||
|
||||
__ bind(¬_heap_number);
|
||||
@ -1131,7 +1131,7 @@ void ToBooleanStub::Generate(MacroAssembler* masm) {
|
||||
|
||||
// Return 0 in "tos_" for false .
|
||||
__ bind(&false_result);
|
||||
__ mov(tos_, Operand(0));
|
||||
__ mov(tos_, Operand(0, RelocInfo::NONE));
|
||||
__ Ret();
|
||||
}
|
||||
|
||||
@ -2231,7 +2231,7 @@ void TranscendentalCacheStub::Generate(MacroAssembler* masm) {
|
||||
__ ldr(r0, MemOperand(r0, type_ * sizeof(TranscendentalCache::caches_[0])));
|
||||
// r0 points to the cache for the type type_.
|
||||
// If NULL, the cache hasn't been initialized yet, so go through runtime.
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
__ b(eq, &runtime_call);
|
||||
|
||||
#ifdef DEBUG
|
||||
@ -2311,12 +2311,12 @@ void GenericUnaryOpStub::Generate(MacroAssembler* masm) {
|
||||
// smi while we are at it.
|
||||
__ bic(ip, r0, Operand(0x80000000), SetCC);
|
||||
__ b(eq, &slow);
|
||||
__ rsb(r0, r0, Operand(0));
|
||||
__ rsb(r0, r0, Operand(0, RelocInfo::NONE));
|
||||
__ StubReturn(1);
|
||||
} else {
|
||||
// The value of the expression is a smi and 0 is OK for -0. Try
|
||||
// optimistic subtraction '0 - value'.
|
||||
__ rsb(r0, r0, Operand(0), SetCC);
|
||||
__ rsb(r0, r0, Operand(0, RelocInfo::NONE), SetCC);
|
||||
__ StubReturn(1, vc);
|
||||
// We don't have to reverse the optimistic neg since the only case
|
||||
// where we fall through is the minimum negative Smi, which is the case
|
||||
@ -2429,9 +2429,9 @@ void CEntryStub::GenerateThrowTOS(MacroAssembler* masm) {
|
||||
// Before returning we restore the context from the frame pointer if
|
||||
// not NULL. The frame pointer is NULL in the exception handler of a
|
||||
// JS entry frame.
|
||||
__ cmp(fp, Operand(0));
|
||||
__ cmp(fp, Operand(0, RelocInfo::NONE));
|
||||
// Set cp to NULL if fp is NULL.
|
||||
__ mov(cp, Operand(0), LeaveCC, eq);
|
||||
__ mov(cp, Operand(0, RelocInfo::NONE), LeaveCC, eq);
|
||||
// Restore cp otherwise.
|
||||
__ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset), ne);
|
||||
#ifdef DEBUG
|
||||
@ -2497,9 +2497,9 @@ void CEntryStub::GenerateThrowUncatchable(MacroAssembler* masm,
|
||||
// Before returning we restore the context from the frame pointer if
|
||||
// not NULL. The frame pointer is NULL in the exception handler of a
|
||||
// JS entry frame.
|
||||
__ cmp(fp, Operand(0));
|
||||
__ cmp(fp, Operand(0, RelocInfo::NONE));
|
||||
// Set cp to NULL if fp is NULL.
|
||||
__ mov(cp, Operand(0), LeaveCC, eq);
|
||||
__ mov(cp, Operand(0, RelocInfo::NONE), LeaveCC, eq);
|
||||
// Restore cp otherwise.
|
||||
__ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset), ne);
|
||||
#ifdef DEBUG
|
||||
@ -2567,7 +2567,7 @@ void CEntryStub::GenerateCore(MacroAssembler* masm,
|
||||
(frame_alignment_skew + kPointerSize) & frame_alignment_mask;
|
||||
if (alignment_before_call > 0) {
|
||||
// Push until the alignment before the call is met.
|
||||
__ mov(r2, Operand(0));
|
||||
__ mov(r2, Operand(0, RelocInfo::NONE));
|
||||
for (int i = alignment_before_call;
|
||||
(i & frame_alignment_mask) != 0;
|
||||
i += kPointerSize) {
|
||||
@ -2991,7 +2991,7 @@ void ArgumentsAccessStub::GenerateNewObject(MacroAssembler* masm) {
|
||||
// of the arguments object and the elements array in words.
|
||||
Label add_arguments_object;
|
||||
__ bind(&try_allocate);
|
||||
__ cmp(r1, Operand(0));
|
||||
__ cmp(r1, Operand(0, RelocInfo::NONE));
|
||||
__ b(eq, &add_arguments_object);
|
||||
__ mov(r1, Operand(r1, LSR, kSmiTagSize));
|
||||
__ add(r1, r1, Operand(FixedArray::kHeaderSize / kPointerSize));
|
||||
@ -3028,7 +3028,7 @@ void ArgumentsAccessStub::GenerateNewObject(MacroAssembler* masm) {
|
||||
|
||||
// If there are no actual arguments, we're done.
|
||||
Label done;
|
||||
__ cmp(r1, Operand(0));
|
||||
__ cmp(r1, Operand(0, RelocInfo::NONE));
|
||||
__ b(eq, &done);
|
||||
|
||||
// Get the parameters pointer from the stack.
|
||||
@ -3054,7 +3054,7 @@ void ArgumentsAccessStub::GenerateNewObject(MacroAssembler* masm) {
|
||||
// Post-increment r4 with kPointerSize on each iteration.
|
||||
__ str(r3, MemOperand(r4, kPointerSize, PostIndex));
|
||||
__ sub(r1, r1, Operand(1));
|
||||
__ cmp(r1, Operand(0));
|
||||
__ cmp(r1, Operand(0, RelocInfo::NONE));
|
||||
__ b(ne, &loop);
|
||||
|
||||
// Return and remove the on-stack parameters.
|
||||
@ -3452,7 +3452,7 @@ void CallFunctionStub::Generate(MacroAssembler* masm) {
|
||||
// of the original receiver from the call site).
|
||||
__ str(r1, MemOperand(sp, argc_ * kPointerSize));
|
||||
__ mov(r0, Operand(argc_)); // Setup the number of arguments.
|
||||
__ mov(r2, Operand(0));
|
||||
__ mov(r2, Operand(0, RelocInfo::NONE));
|
||||
__ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION);
|
||||
__ Jump(Handle<Code>(Builtins::builtin(Builtins::ArgumentsAdaptorTrampoline)),
|
||||
RelocInfo::CODE_TARGET);
|
||||
@ -3794,7 +3794,7 @@ void StringHelper::GenerateCopyCharacters(MacroAssembler* masm,
|
||||
if (!ascii) {
|
||||
__ add(count, count, Operand(count), SetCC);
|
||||
} else {
|
||||
__ cmp(count, Operand(0));
|
||||
__ cmp(count, Operand(0, RelocInfo::NONE));
|
||||
}
|
||||
__ b(eq, &done);
|
||||
|
||||
@ -3849,7 +3849,7 @@ void StringHelper::GenerateCopyCharactersLong(MacroAssembler* masm,
|
||||
if (!ascii) {
|
||||
__ add(count, count, Operand(count), SetCC);
|
||||
} else {
|
||||
__ cmp(count, Operand(0));
|
||||
__ cmp(count, Operand(0, RelocInfo::NONE));
|
||||
}
|
||||
__ b(eq, &done);
|
||||
|
||||
|
@ -770,7 +770,7 @@ void CodeGenerator::ToBoolean(JumpTarget* true_target,
|
||||
ToBooleanStub stub(tos);
|
||||
frame_->CallStub(&stub, 0);
|
||||
// Convert the result in "tos" to a condition code.
|
||||
__ cmp(tos, Operand(0));
|
||||
__ cmp(tos, Operand(0, RelocInfo::NONE));
|
||||
} else {
|
||||
// Implements slow case by calling the runtime.
|
||||
frame_->EmitPush(tos);
|
||||
@ -1129,7 +1129,7 @@ void DeferredInlineSmiOperation::GenerateNonSmiInput() {
|
||||
__ mov(int32, Operand(int32, LSR, shift_value), SetCC);
|
||||
} else {
|
||||
// SHR is special because it is required to produce a positive answer.
|
||||
__ cmp(int32, Operand(0));
|
||||
__ cmp(int32, Operand(0, RelocInfo::NONE));
|
||||
}
|
||||
if (CpuFeatures::IsSupported(VFP3)) {
|
||||
__ b(mi, &result_not_a_smi);
|
||||
@ -1513,7 +1513,7 @@ void CodeGenerator::SmiOperation(Token::Value op,
|
||||
}
|
||||
__ mov(tos, Operand(tos, LSL, kSmiTagSize));
|
||||
} else {
|
||||
__ cmp(tos, Operand(0));
|
||||
__ cmp(tos, Operand(0, RelocInfo::NONE));
|
||||
deferred->JumpToAnswerOutOfRange(mi);
|
||||
}
|
||||
break;
|
||||
@ -1653,7 +1653,7 @@ void CodeGenerator::Comparison(Condition cc,
|
||||
// We call with 0 args because there are 0 on the stack.
|
||||
CompareStub stub(cc, strict, kBothCouldBeNaN, true, lhs, rhs);
|
||||
frame_->CallStub(&stub, 0);
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
exit.Jump();
|
||||
|
||||
smi.Bind();
|
||||
@ -1817,7 +1817,7 @@ void CodeGenerator::CallApplyLazy(Expression* applicand,
|
||||
// frame.
|
||||
Label loop;
|
||||
// r3 is a small non-negative integer, due to the test above.
|
||||
__ cmp(r3, Operand(0));
|
||||
__ cmp(r3, Operand(0, RelocInfo::NONE));
|
||||
__ b(eq, &invoke);
|
||||
// Compute the address of the first argument.
|
||||
__ add(r2, r2, Operand(r3, LSL, kPointerSizeLog2));
|
||||
@ -1975,7 +1975,7 @@ void CodeGenerator::VisitDeclaration(Declaration* node) {
|
||||
} else if (node->fun() != NULL) {
|
||||
Load(node->fun());
|
||||
} else {
|
||||
frame_->EmitPush(Operand(0));
|
||||
frame_->EmitPush(Operand(0, RelocInfo::NONE));
|
||||
}
|
||||
|
||||
frame_->CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
@ -4612,7 +4612,8 @@ void CodeGenerator::GenerateMathPow(ZoneList<Expression*>* args) {
|
||||
// Get the absolute untagged value of the exponent and use that for the
|
||||
// calculation.
|
||||
__ mov(scratch1, Operand(exponent, ASR, kSmiTagSize), SetCC);
|
||||
__ rsb(scratch1, scratch1, Operand(0), LeaveCC, mi); // Negate if negative.
|
||||
// Negate if negative.
|
||||
__ rsb(scratch1, scratch1, Operand(0, RelocInfo::NONE), LeaveCC, mi);
|
||||
__ vmov(d2, d0, mi); // 1.0 needed in d2 later if exponent is negative.
|
||||
|
||||
// Run through all the bits in the exponent. The result is calculated in d0
|
||||
@ -4625,14 +4626,14 @@ void CodeGenerator::GenerateMathPow(ZoneList<Expression*>* args) {
|
||||
__ b(ne, &more_bits);
|
||||
|
||||
// If exponent is positive we are done.
|
||||
__ cmp(exponent, Operand(0));
|
||||
__ cmp(exponent, Operand(0, RelocInfo::NONE));
|
||||
__ b(ge, &allocate_return);
|
||||
|
||||
// If exponent is negative result is 1/result (d2 already holds 1.0 in that
|
||||
// case). However if d0 has reached infinity this will not provide the
|
||||
// correct result, so call runtime if that is the case.
|
||||
__ mov(scratch2, Operand(0x7FF00000));
|
||||
__ mov(scratch1, Operand(0));
|
||||
__ mov(scratch1, Operand(0, RelocInfo::NONE));
|
||||
__ vmov(d1, scratch1, scratch2); // Load infinity into d1.
|
||||
__ vcmp(d0, d1);
|
||||
__ vmrs(pc);
|
||||
@ -5135,7 +5136,7 @@ class DeferredIsStringWrapperSafeForDefaultValueOf : public DeferredCode {
|
||||
__ jmp(exit_label());
|
||||
__ bind(&false_result);
|
||||
// Set false result.
|
||||
__ mov(map_result_, Operand(0));
|
||||
__ mov(map_result_, Operand(0, RelocInfo::NONE));
|
||||
}
|
||||
|
||||
private:
|
||||
@ -5309,7 +5310,7 @@ void CodeGenerator::GenerateRandomHeapNumber(
|
||||
// Move 0x41300000xxxxxxxx (x = random bits) to VFP.
|
||||
__ vmov(d7, r0, r1);
|
||||
// Move 0x4130000000000000 to VFP.
|
||||
__ mov(r0, Operand(0));
|
||||
__ mov(r0, Operand(0, RelocInfo::NONE));
|
||||
__ vmov(d8, r0, r1);
|
||||
// Subtract and store the result in the heap number.
|
||||
__ vsub(d7, d7, d8);
|
||||
|
@ -158,7 +158,7 @@ static void Generate_DebugBreakCallHelper(MacroAssembler* masm,
|
||||
#ifdef DEBUG
|
||||
__ RecordComment("// Calling from debug break to runtime - come in - over");
|
||||
#endif
|
||||
__ mov(r0, Operand(0)); // no arguments
|
||||
__ mov(r0, Operand(0, RelocInfo::NONE)); // no arguments
|
||||
__ mov(r1, Operand(ExternalReference::debug_break()));
|
||||
|
||||
CEntryStub ceb(1);
|
||||
|
@ -688,7 +688,7 @@ void FullCodeGenerator::VisitSwitchStatement(SwitchStatement* stmt) {
|
||||
|
||||
CompareStub stub(eq, true, kBothCouldBeNaN, true, r1, r0);
|
||||
__ CallStub(&stub);
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
__ b(ne, &next_test);
|
||||
__ Drop(1); // Switch value is no longer needed.
|
||||
__ b(clause->body_target()->entry_label());
|
||||
@ -2132,7 +2132,7 @@ void FullCodeGenerator::EmitRandomHeapNumber(ZoneList<Expression*>* args) {
|
||||
// Move 0x41300000xxxxxxxx (x = random bits) to VFP.
|
||||
__ vmov(d7, r0, r1);
|
||||
// Move 0x4130000000000000 to VFP.
|
||||
__ mov(r0, Operand(0));
|
||||
__ mov(r0, Operand(0, RelocInfo::NONE));
|
||||
__ vmov(d8, r0, r1);
|
||||
// Subtract and store the result in the heap number.
|
||||
__ vsub(d7, d7, d8);
|
||||
@ -3125,7 +3125,7 @@ void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
|
||||
|
||||
CompareStub stub(cc, strict, kBothCouldBeNaN, true, r1, r0);
|
||||
__ CallStub(&stub);
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
Split(cc, if_true, if_false, fall_through);
|
||||
}
|
||||
}
|
||||
|
@ -1292,7 +1292,7 @@ static void GenerateUInt2Double(MacroAssembler* masm,
|
||||
__ mov(loword, Operand(hiword, LSL, mantissa_shift_for_lo_word));
|
||||
__ orr(hiword, scratch, Operand(hiword, LSR, mantissa_shift_for_hi_word));
|
||||
} else {
|
||||
__ mov(loword, Operand(0));
|
||||
__ mov(loword, Operand(0, RelocInfo::NONE));
|
||||
__ orr(hiword, scratch, Operand(hiword, LSL, mantissa_shift_for_hi_word));
|
||||
}
|
||||
|
||||
@ -1790,7 +1790,7 @@ static void StoreIntAsFloat(MacroAssembler* masm,
|
||||
|
||||
__ and_(fval, ival, Operand(kBinary32SignMask), SetCC);
|
||||
// Negate value if it is negative.
|
||||
__ rsb(ival, ival, Operand(0), LeaveCC, ne);
|
||||
__ rsb(ival, ival, Operand(0, RelocInfo::NONE), LeaveCC, ne);
|
||||
|
||||
// We have -1, 0 or 1, which we treat specially. Register ival contains
|
||||
// absolute value: it is either equal to 1 (special case of -1 and 1),
|
||||
@ -2075,18 +2075,18 @@ void KeyedStoreIC::GenerateExternalArray(MacroAssembler* masm,
|
||||
// and infinities. All these should be converted to 0.
|
||||
__ mov(r7, Operand(HeapNumber::kExponentMask));
|
||||
__ and_(r9, r5, Operand(r7), SetCC);
|
||||
__ mov(r5, Operand(0), LeaveCC, eq);
|
||||
__ mov(r5, Operand(0, RelocInfo::NONE), LeaveCC, eq);
|
||||
__ b(eq, &done);
|
||||
|
||||
__ teq(r9, Operand(r7));
|
||||
__ mov(r5, Operand(0), LeaveCC, eq);
|
||||
__ mov(r5, Operand(0, RelocInfo::NONE), LeaveCC, eq);
|
||||
__ b(eq, &done);
|
||||
|
||||
// Unbias exponent.
|
||||
__ mov(r9, Operand(r9, LSR, HeapNumber::kExponentShift));
|
||||
__ sub(r9, r9, Operand(HeapNumber::kExponentBias), SetCC);
|
||||
// If exponent is negative than result is 0.
|
||||
__ mov(r5, Operand(0), LeaveCC, mi);
|
||||
__ mov(r5, Operand(0, RelocInfo::NONE), LeaveCC, mi);
|
||||
__ b(mi, &done);
|
||||
|
||||
// If exponent is too big than result is minimal value.
|
||||
@ -2102,14 +2102,14 @@ void KeyedStoreIC::GenerateExternalArray(MacroAssembler* masm,
|
||||
__ mov(r5, Operand(r5, LSR, r9), LeaveCC, pl);
|
||||
__ b(pl, &sign);
|
||||
|
||||
__ rsb(r9, r9, Operand(0));
|
||||
__ rsb(r9, r9, Operand(0, RelocInfo::NONE));
|
||||
__ mov(r5, Operand(r5, LSL, r9));
|
||||
__ rsb(r9, r9, Operand(meaningfull_bits));
|
||||
__ orr(r5, r5, Operand(r6, LSR, r9));
|
||||
|
||||
__ bind(&sign);
|
||||
__ teq(r7, Operand(0));
|
||||
__ rsb(r5, r5, Operand(0), LeaveCC, ne);
|
||||
__ teq(r7, Operand(0, RelocInfo::NONE));
|
||||
__ rsb(r5, r5, Operand(0, RelocInfo::NONE), LeaveCC, ne);
|
||||
|
||||
__ bind(&done);
|
||||
switch (array_type) {
|
||||
|
@ -226,7 +226,7 @@ void MacroAssembler::And(Register dst, Register src1, const Operand& src2,
|
||||
}
|
||||
int32_t immediate = src2.immediate();
|
||||
if (immediate == 0) {
|
||||
mov(dst, Operand(0), LeaveCC, cond);
|
||||
mov(dst, Operand(0, RelocInfo::NONE), LeaveCC, cond);
|
||||
return;
|
||||
}
|
||||
if (IsPowerOf2(immediate + 1) && ((immediate & 1) != 0)) {
|
||||
@ -305,7 +305,7 @@ void MacroAssembler::Usat(Register dst, int satpos, const Operand& src,
|
||||
}
|
||||
tst(dst, Operand(~satval));
|
||||
b(eq, &done);
|
||||
mov(dst, Operand(0), LeaveCC, mi); // 0 if negative.
|
||||
mov(dst, Operand(0, RelocInfo::NONE), LeaveCC, mi); // 0 if negative.
|
||||
mov(dst, Operand(satval), LeaveCC, pl); // satval if positive.
|
||||
bind(&done);
|
||||
} else {
|
||||
@ -594,7 +594,7 @@ int MacroAssembler::ActivationFrameAlignment() {
|
||||
|
||||
void MacroAssembler::LeaveExitFrame() {
|
||||
// Clear top frame.
|
||||
mov(r3, Operand(0));
|
||||
mov(r3, Operand(0, RelocInfo::NONE));
|
||||
mov(ip, Operand(ExternalReference(Top::k_c_entry_fp_address)));
|
||||
str(r3, MemOperand(ip));
|
||||
|
||||
@ -763,7 +763,7 @@ void MacroAssembler::InvokeFunction(JSFunction* function,
|
||||
#ifdef ENABLE_DEBUGGER_SUPPORT
|
||||
void MacroAssembler::DebugBreak() {
|
||||
ASSERT(allow_stub_calls());
|
||||
mov(r0, Operand(0));
|
||||
mov(r0, Operand(0, RelocInfo::NONE));
|
||||
mov(r1, Operand(ExternalReference(Runtime::kDebugBreak)));
|
||||
CEntryStub ces(1);
|
||||
Call(ces.GetCode(), RelocInfo::DEBUG_BREAK);
|
||||
@ -799,7 +799,7 @@ void MacroAssembler::PushTryHandler(CodeLocation try_location,
|
||||
// The frame pointer does not point to a JS frame so we save NULL
|
||||
// for fp. We expect the code throwing an exception to check fp
|
||||
// before dereferencing it to restore the context.
|
||||
mov(ip, Operand(0)); // To save a NULL frame pointer.
|
||||
mov(ip, Operand(0, RelocInfo::NONE)); // To save a NULL frame pointer.
|
||||
mov(r6, Operand(StackHandler::ENTRY));
|
||||
ASSERT(StackHandlerConstants::kStateOffset == 1 * kPointerSize
|
||||
&& StackHandlerConstants::kFPOffset == 2 * kPointerSize
|
||||
@ -838,7 +838,7 @@ void MacroAssembler::CheckAccessGlobalProxy(Register holder_reg,
|
||||
ldr(scratch, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
// In debug mode, make sure the lexical context is set.
|
||||
#ifdef DEBUG
|
||||
cmp(scratch, Operand(0));
|
||||
cmp(scratch, Operand(0, RelocInfo::NONE));
|
||||
Check(ne, "we should not have an empty lexical context");
|
||||
#endif
|
||||
|
||||
@ -1373,7 +1373,7 @@ void MacroAssembler::ConvertToInt32(Register source,
|
||||
HeapNumber::kExponentBits);
|
||||
// Load dest with zero. We use this either for the final shift or
|
||||
// for the answer.
|
||||
mov(dest, Operand(0));
|
||||
mov(dest, Operand(0, RelocInfo::NONE));
|
||||
// Check whether the exponent matches a 32 bit signed int that is not a Smi.
|
||||
// A non-Smi integer is 1.xxx * 2^30 so the exponent is 30 (biased). This is
|
||||
// the exponent that we are fastest at and also the highest exponent we can
|
||||
@ -1427,7 +1427,7 @@ void MacroAssembler::ConvertToInt32(Register source,
|
||||
// Move down according to the exponent.
|
||||
mov(dest, Operand(scratch, LSR, dest));
|
||||
// Fix sign if sign bit was set.
|
||||
rsb(dest, dest, Operand(0), LeaveCC, ne);
|
||||
rsb(dest, dest, Operand(0, RelocInfo::NONE), LeaveCC, ne);
|
||||
bind(&done);
|
||||
}
|
||||
}
|
||||
@ -1818,7 +1818,7 @@ void MacroAssembler::CountLeadingZeros(Register zeros, // Answer.
|
||||
#ifdef CAN_USE_ARMV5_INSTRUCTIONS
|
||||
clz(zeros, source); // This instruction is only supported after ARM5.
|
||||
#else
|
||||
mov(zeros, Operand(0));
|
||||
mov(zeros, Operand(0, RelocInfo::NONE));
|
||||
Move(scratch, source);
|
||||
// Top 16.
|
||||
tst(scratch, Operand(0xffff0000));
|
||||
|
@ -189,7 +189,7 @@ void RegExpMacroAssemblerARM::CheckAtStart(Label* on_at_start) {
|
||||
Label not_at_start;
|
||||
// Did we start the match at the start of the string at all?
|
||||
__ ldr(r0, MemOperand(frame_pointer(), kAtStart));
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
BranchOrBacktrack(eq, ¬_at_start);
|
||||
|
||||
// If we did, are we still at the start of the input?
|
||||
@ -204,7 +204,7 @@ void RegExpMacroAssemblerARM::CheckAtStart(Label* on_at_start) {
|
||||
void RegExpMacroAssemblerARM::CheckNotAtStart(Label* on_not_at_start) {
|
||||
// Did we start the match at the start of the string at all?
|
||||
__ ldr(r0, MemOperand(frame_pointer(), kAtStart));
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
BranchOrBacktrack(eq, on_not_at_start);
|
||||
// If we did, are we still at the start of the input?
|
||||
__ ldr(r1, MemOperand(frame_pointer(), kInputStart));
|
||||
@ -364,7 +364,7 @@ void RegExpMacroAssemblerARM::CheckNotBackReferenceIgnoreCase(
|
||||
__ CallCFunction(function, argument_count);
|
||||
|
||||
// Check if function returned non-zero for success or zero for failure.
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
BranchOrBacktrack(eq, on_no_match);
|
||||
// On success, increment position by length of capture.
|
||||
__ add(current_input_offset(), current_input_offset(), Operand(r4));
|
||||
@ -634,7 +634,7 @@ Handle<Object> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
||||
|
||||
__ bind(&stack_limit_hit);
|
||||
CallCheckStackGuardState(r0);
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
// If returned value is non-zero, we exit with the returned value as result.
|
||||
__ b(ne, &exit_label_);
|
||||
|
||||
@ -661,7 +661,7 @@ Handle<Object> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
||||
// string, and store that value in a local variable.
|
||||
__ tst(r1, Operand(r1));
|
||||
__ mov(r1, Operand(1), LeaveCC, eq);
|
||||
__ mov(r1, Operand(0), LeaveCC, ne);
|
||||
__ mov(r1, Operand(0, RelocInfo::NONE), LeaveCC, ne);
|
||||
__ str(r1, MemOperand(frame_pointer(), kAtStart));
|
||||
|
||||
if (num_saved_registers_ > 0) { // Always is, if generated from a regexp.
|
||||
@ -684,7 +684,7 @@ Handle<Object> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
||||
// Load previous char as initial value of current character register.
|
||||
Label at_start;
|
||||
__ ldr(r0, MemOperand(frame_pointer(), kAtStart));
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
__ b(ne, &at_start);
|
||||
LoadCurrentCharacterUnchecked(-1, 1); // Load previous char.
|
||||
__ jmp(&start_label_);
|
||||
@ -751,7 +751,7 @@ Handle<Object> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
||||
SafeCallTarget(&check_preempt_label_);
|
||||
|
||||
CallCheckStackGuardState(r0);
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
// If returning non-zero, we should end execution with the given
|
||||
// result as return value.
|
||||
__ b(ne, &exit_label_);
|
||||
@ -778,7 +778,7 @@ Handle<Object> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
||||
__ CallCFunction(grow_stack, num_arguments);
|
||||
// If return NULL, we have failed to grow the stack, and
|
||||
// must exit with a stack-overflow exception.
|
||||
__ cmp(r0, Operand(0));
|
||||
__ cmp(r0, Operand(0, RelocInfo::NONE));
|
||||
__ b(eq, &exit_with_exception);
|
||||
// Otherwise use return value as new stack pointer.
|
||||
__ mov(backtrack_stackpointer(), r0);
|
||||
|
@ -94,7 +94,7 @@ static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
|
||||
// args
|
||||
|
||||
// Clear the context before we push it when entering the JS frame.
|
||||
__ li(cp, Operand(0));
|
||||
__ li(cp, Operand(0, RelocInfo::NONE));
|
||||
|
||||
// Enter an internal frame.
|
||||
__ EnterInternalFrame();
|
||||
|
@ -91,7 +91,7 @@ TEST(1) {
|
||||
Label L, C;
|
||||
|
||||
__ mov(r1, Operand(r0));
|
||||
__ mov(r0, Operand(0));
|
||||
__ mov(r0, Operand(0, RelocInfo::NONE));
|
||||
__ b(&C);
|
||||
|
||||
__ bind(&L);
|
||||
@ -99,7 +99,7 @@ TEST(1) {
|
||||
__ sub(r1, r1, Operand(1));
|
||||
|
||||
__ bind(&C);
|
||||
__ teq(r1, Operand(0));
|
||||
__ teq(r1, Operand(0, RelocInfo::NONE));
|
||||
__ b(ne, &L);
|
||||
__ mov(pc, Operand(lr));
|
||||
|
||||
@ -135,7 +135,7 @@ TEST(2) {
|
||||
__ sub(r1, r1, Operand(1));
|
||||
|
||||
__ bind(&C);
|
||||
__ teq(r1, Operand(0));
|
||||
__ teq(r1, Operand(0, RelocInfo::NONE));
|
||||
__ b(ne, &L);
|
||||
__ mov(pc, Operand(lr));
|
||||
|
||||
|
@ -109,7 +109,7 @@ TEST(MIPS1) {
|
||||
|
||||
__ bind(&C);
|
||||
__ xori(v1, a1, 0);
|
||||
__ Branch(ne, &L, v1, Operand(0));
|
||||
__ Branch(ne, &L, v1, Operand(0, RelocInfo::NONE));
|
||||
__ nop();
|
||||
|
||||
__ jr(ra);
|
||||
|
Loading…
Reference in New Issue
Block a user