ARM: use existing transcendental cache stub for tagged inputs.

Review URL: http://codereview.chromium.org/6167004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
ager@chromium.org 2011-01-11 11:54:37 +00:00
parent 544d941b09
commit b3d4ea357c
2 changed files with 13 additions and 5 deletions

View File

@ -445,6 +445,10 @@ class LCallStub: public LInstruction {
public:
DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub")
DECLARE_HYDROGEN_ACCESSOR(CallStub)
TranscendentalCache::Type transcendental_type() {
return hydrogen()->transcendental_type();
}
};

View File

@ -771,7 +771,9 @@ void LCodeGen::DoCallStub(LCallStub* instr) {
break;
}
case CodeStub::TranscendentalCache: {
Abort("TranscendentalCache unimplemented.");
__ ldr(r0, MemOperand(sp, 0));
TranscendentalCacheStub stub(instr->transcendental_type());
CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
break;
}
default:
@ -1482,10 +1484,12 @@ void LCodeGen::DoCmpT(LCmpT* instr) {
condition = ReverseCondition(condition);
}
__ cmp(r0, Operand(0));
__ LoadRoot(ToRegister(instr->result()), Heap::kTrueValueRootIndex,
condition);
__ LoadRoot(ToRegister(instr->result()), Heap::kFalseValueRootIndex,
NegateCondition(condition));
__ LoadRoot(ToRegister(instr->result()),
Heap::kTrueValueRootIndex,
condition);
__ LoadRoot(ToRegister(instr->result()),
Heap::kFalseValueRootIndex,
NegateCondition(condition));
}