Fix clang compilation error.

TBR=yangguo@chromium.org

Review URL: https://codereview.chromium.org/659053002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent ecac8b08
...@@ -2787,14 +2787,16 @@ void CallICStub::GenerateMiss(MacroAssembler* masm) { ...@@ -2787,14 +2787,16 @@ void CallICStub::GenerateMiss(MacroAssembler* masm) {
// StringCharCodeAtGenerator // StringCharCodeAtGenerator
void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) { void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) {
// If the receiver is a smi trigger the non-string case. // If the receiver is a smi trigger the non-string case.
__ JumpIfSmi(object_, receiver_not_string_); if (check_mode_ == RECEIVER_IS_UNKNOWN) {
__ JumpIfSmi(object_, receiver_not_string_);
// Fetch the instance type of the receiver into result register.
__ ldr(result_, FieldMemOperand(object_, HeapObject::kMapOffset)); // Fetch the instance type of the receiver into result register.
__ ldrb(result_, FieldMemOperand(result_, Map::kInstanceTypeOffset)); __ ldr(result_, FieldMemOperand(object_, HeapObject::kMapOffset));
// If the receiver is not a string trigger the non-string case. __ ldrb(result_, FieldMemOperand(result_, Map::kInstanceTypeOffset));
__ tst(result_, Operand(kIsNotStringMask)); // If the receiver is not a string trigger the non-string case.
__ b(ne, receiver_not_string_); __ tst(result_, Operand(kIsNotStringMask));
__ b(ne, receiver_not_string_);
}
// If the index is non-smi trigger the non-smi case. // If the index is non-smi trigger the non-smi case.
__ JumpIfNotSmi(index_, &index_not_smi_); __ JumpIfNotSmi(index_, &index_not_smi_);
......
...@@ -3125,14 +3125,16 @@ void CallICStub::GenerateMiss(MacroAssembler* masm) { ...@@ -3125,14 +3125,16 @@ void CallICStub::GenerateMiss(MacroAssembler* masm) {
void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) { void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) {
// If the receiver is a smi trigger the non-string case. // If the receiver is a smi trigger the non-string case.
__ JumpIfSmi(object_, receiver_not_string_); if (check_mode_ == RECEIVER_IS_UNKNOWN) {
__ JumpIfSmi(object_, receiver_not_string_);
// Fetch the instance type of the receiver into result register. // Fetch the instance type of the receiver into result register.
__ Ldr(result_, FieldMemOperand(object_, HeapObject::kMapOffset)); __ Ldr(result_, FieldMemOperand(object_, HeapObject::kMapOffset));
__ Ldrb(result_, FieldMemOperand(result_, Map::kInstanceTypeOffset)); __ Ldrb(result_, FieldMemOperand(result_, Map::kInstanceTypeOffset));
// If the receiver is not a string trigger the non-string case. // If the receiver is not a string trigger the non-string case.
__ TestAndBranchIfAnySet(result_, kIsNotStringMask, receiver_not_string_); __ TestAndBranchIfAnySet(result_, kIsNotStringMask, receiver_not_string_);
}
// If the index is non-smi trigger the non-smi case. // If the index is non-smi trigger the non-smi case.
__ JumpIfNotSmi(index_, &index_not_smi_); __ JumpIfNotSmi(index_, &index_not_smi_);
......
...@@ -2937,16 +2937,17 @@ void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) { ...@@ -2937,16 +2937,17 @@ void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) {
DCHECK(!t0.is(index_)); DCHECK(!t0.is(index_));
DCHECK(!t0.is(result_)); DCHECK(!t0.is(result_));
DCHECK(!t0.is(object_)); DCHECK(!t0.is(object_));
if (check_mode_ == RECEIVER_IS_UNKNOWN) {
// If the receiver is a smi trigger the non-string case. // If the receiver is a smi trigger the non-string case.
__ JumpIfSmi(object_, receiver_not_string_); __ JumpIfSmi(object_, receiver_not_string_);
// Fetch the instance type of the receiver into result register. // Fetch the instance type of the receiver into result register.
__ lw(result_, FieldMemOperand(object_, HeapObject::kMapOffset)); __ lw(result_, FieldMemOperand(object_, HeapObject::kMapOffset));
__ lbu(result_, FieldMemOperand(result_, Map::kInstanceTypeOffset)); __ lbu(result_, FieldMemOperand(result_, Map::kInstanceTypeOffset));
// If the receiver is not a string trigger the non-string case. // If the receiver is not a string trigger the non-string case.
__ And(t0, result_, Operand(kIsNotStringMask)); __ And(t0, result_, Operand(kIsNotStringMask));
__ Branch(receiver_not_string_, ne, t0, Operand(zero_reg)); __ Branch(receiver_not_string_, ne, t0, Operand(zero_reg));
}
// If the index is non-smi trigger the non-smi case. // If the index is non-smi trigger the non-smi case.
__ JumpIfNotSmi(index_, &index_not_smi_); __ JumpIfNotSmi(index_, &index_not_smi_);
......
...@@ -2739,14 +2739,16 @@ void InstanceofStub::Generate(MacroAssembler* masm) { ...@@ -2739,14 +2739,16 @@ void InstanceofStub::Generate(MacroAssembler* masm) {
void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) { void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) {
// If the receiver is a smi trigger the non-string case. // If the receiver is a smi trigger the non-string case.
__ JumpIfSmi(object_, receiver_not_string_); if (check_mode_ == RECEIVER_IS_UNKNOWN) {
__ JumpIfSmi(object_, receiver_not_string_);
// Fetch the instance type of the receiver into result register.
__ movp(result_, FieldOperand(object_, HeapObject::kMapOffset)); // Fetch the instance type of the receiver into result register.
__ movzxbl(result_, FieldOperand(result_, Map::kInstanceTypeOffset)); __ movp(result_, FieldOperand(object_, HeapObject::kMapOffset));
// If the receiver is not a string trigger the non-string case. __ movzxbl(result_, FieldOperand(result_, Map::kInstanceTypeOffset));
__ testb(result_, Immediate(kIsNotStringMask)); // If the receiver is not a string trigger the non-string case.
__ j(not_zero, receiver_not_string_); __ testb(result_, Immediate(kIsNotStringMask));
__ j(not_zero, receiver_not_string_);
}
// If the index is non-smi trigger the non-smi case. // If the index is non-smi trigger the non-smi case.
__ JumpIfNotSmi(index_, &index_not_smi_); __ JumpIfNotSmi(index_, &index_not_smi_);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment