2008-12-05 Gavin Barraclough <barraclough@apple.com>
Reviewed by Geoff Garen.
Move JIT::compileOpStrictEq to MacroAssembler interface.
The rewrite also looks like a small (<1%) performance progression.
https://bugs.webkit.org/show_bug.cgi?id=22697
* jit/JIT.cpp:
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::privateCompileSlowCases):
* jit/JIT.h:
* jit/JITInlineMethods.h:
(JSC::JIT::emitJumpIfJSCell):
(JSC::JIT::emitJumpSlowCaseIfJSCell):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39053 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/JavaScriptCore/jit/JIT.h b/JavaScriptCore/jit/JIT.h
index ace7e67..57a05e3 100644
--- a/JavaScriptCore/jit/JIT.h
+++ b/JavaScriptCore/jit/JIT.h
@@ -261,6 +261,10 @@
void ctiRepatchCallByReturnAddress(void* where, void* what);
class JIT : private MacroAssembler {
+ using MacroAssembler::Jump;
+ using MacroAssembler::JumpList;
+ using MacroAssembler::Label;
+
typedef X86Assembler::RegisterID RegisterID;
typedef X86Assembler::XMMRegisterID XMMRegisterID;
typedef X86Assembler::JmpSrc JmpSrc;
@@ -433,9 +437,11 @@
JSValue* getConstantImmediateNumericArg(unsigned src);
unsigned getDeTaggedConstantImmediate(JSValue* imm);
- bool linkSlowCaseIfNotJSCell(const Vector<SlowCaseEntry>::iterator&, int vReg);
+ Jump emitJumpIfJSCell(RegisterID reg);
+ void emitJumpSlowCaseIfJSCell(RegisterID reg, unsigned bytecodeIndex);
void emitJumpSlowCaseIfNotJSCell(RegisterID, unsigned bytecodeIndex);
void emitJumpSlowCaseIfNotJSCell(RegisterID, unsigned bytecodeIndex, int VReg);
+ bool linkSlowCaseIfNotJSCell(const Vector<SlowCaseEntry>::iterator&, int vReg);
void emitJumpSlowCaseIfNotImmNum(RegisterID, unsigned bytecodeIndex);
void emitJumpSlowCaseIfNotImmNums(RegisterID, RegisterID, RegisterID, unsigned bytecodeIndex);