Changeset 37845 in webkit for trunk/JavaScriptCore/VM/CTI.cpp


Ignore:
Timestamp:
Oct 24, 2008, 9:22:51 AM (17 years ago)
Author:
Darin Adler
Message:

JavaScriptCore:

2008-10-24 Darin Adler <Darin Adler>

  • API/APICast.h:
  • API/JSCallbackConstructor.h:
  • API/JSCallbackFunction.cpp:
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:
  • API/JSContextRef.cpp:
  • API/JSObjectRef.cpp:
  • API/JSValueRef.cpp:
  • VM/CTI.cpp:
  • VM/CTI.h:
  • VM/CodeBlock.cpp:
  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp:
  • VM/CodeGenerator.h:
  • VM/ExceptionHelpers.cpp:
  • VM/ExceptionHelpers.h:
  • VM/JSPropertyNameIterator.cpp:
  • VM/JSPropertyNameIterator.h:
  • VM/Machine.cpp:
  • VM/Machine.h:
  • VM/Register.h:
  • kjs/ArgList.cpp:
  • kjs/ArgList.h:
  • kjs/Arguments.cpp:
  • kjs/Arguments.h:
  • kjs/ArrayConstructor.cpp:
  • kjs/ArrayPrototype.cpp:
  • kjs/BooleanConstructor.cpp:
  • kjs/BooleanConstructor.h:
  • kjs/BooleanObject.h:
  • kjs/BooleanPrototype.cpp:
  • kjs/CallData.cpp:
  • kjs/CallData.h:
  • kjs/ConstructData.cpp:
  • kjs/ConstructData.h:
  • kjs/DateConstructor.cpp:
  • kjs/DateInstance.h:
  • kjs/DatePrototype.cpp:
  • kjs/DatePrototype.h:
  • kjs/DebuggerCallFrame.cpp:
  • kjs/DebuggerCallFrame.h:
  • kjs/ErrorConstructor.cpp:
  • kjs/ErrorPrototype.cpp:
  • kjs/ExecState.cpp:
  • kjs/ExecState.h:
  • kjs/FunctionConstructor.cpp:
  • kjs/FunctionPrototype.cpp:
  • kjs/FunctionPrototype.h:
  • kjs/GetterSetter.cpp:
  • kjs/GetterSetter.h:
  • kjs/InternalFunction.h:
  • kjs/JSActivation.cpp:
  • kjs/JSActivation.h:
  • kjs/JSArray.cpp:
  • kjs/JSArray.h:
  • kjs/JSCell.cpp:
  • kjs/JSCell.h:
  • kjs/JSFunction.cpp:
  • kjs/JSFunction.h:
  • kjs/JSGlobalData.h:
  • kjs/JSGlobalObject.cpp:
  • kjs/JSGlobalObject.h:
  • kjs/JSGlobalObjectFunctions.cpp:
  • kjs/JSGlobalObjectFunctions.h:
  • kjs/JSImmediate.cpp:
  • kjs/JSImmediate.h:
  • kjs/JSNotAnObject.cpp:
  • kjs/JSNotAnObject.h:
  • kjs/JSNumberCell.cpp:
  • kjs/JSNumberCell.h:
  • kjs/JSObject.cpp:
  • kjs/JSObject.h:
  • kjs/JSStaticScopeObject.cpp:
  • kjs/JSStaticScopeObject.h:
  • kjs/JSString.cpp:
  • kjs/JSString.h:
  • kjs/JSValue.h:
  • kjs/JSVariableObject.h:
  • kjs/JSWrapperObject.h:
  • kjs/MathObject.cpp:
  • kjs/MathObject.h:
  • kjs/NativeErrorConstructor.cpp:
  • kjs/NumberConstructor.cpp:
  • kjs/NumberConstructor.h:
  • kjs/NumberObject.cpp:
  • kjs/NumberObject.h:
  • kjs/NumberPrototype.cpp:
  • kjs/ObjectConstructor.cpp:
  • kjs/ObjectPrototype.cpp:
  • kjs/ObjectPrototype.h:
  • kjs/PropertyMap.h:
  • kjs/PropertySlot.cpp:
  • kjs/PropertySlot.h:
  • kjs/RegExpConstructor.cpp:
  • kjs/RegExpConstructor.h:
  • kjs/RegExpMatchesArray.h:
  • kjs/RegExpObject.cpp:
  • kjs/RegExpObject.h:
  • kjs/RegExpPrototype.cpp:
  • kjs/Shell.cpp:
  • kjs/StringConstructor.cpp:
  • kjs/StringObject.cpp:
  • kjs/StringObject.h:
  • kjs/StringObjectThatMasqueradesAsUndefined.h:
  • kjs/StringPrototype.cpp:
  • kjs/StructureID.cpp:
  • kjs/StructureID.h:
  • kjs/collector.cpp:
  • kjs/collector.h:
  • kjs/completion.h:
  • kjs/grammar.y:
  • kjs/interpreter.cpp:
  • kjs/interpreter.h:
  • kjs/lookup.cpp:
  • kjs/lookup.h:
  • kjs/nodes.h:
  • kjs/operations.cpp:
  • kjs/operations.h:
  • kjs/protect.h:
  • profiler/ProfileGenerator.cpp:
  • profiler/Profiler.cpp:
  • profiler/Profiler.h: Use JSValue* instead of JSValuePtr.

JavaScriptGlue:

2008-10-24 Darin Adler <Darin Adler>

  • JSObject.cpp: (nativeCallFunction):
  • JSUtils.cpp: (KJSValueToJSObject): (JSObjectKJSValue): (KJSValueToCFTypeInternal): (KJSValueToCFType):
  • JSUtils.h:
  • JSValueWrapper.cpp: (JSValueWrapper::JSValueWrapper): (JSValueWrapper::GetValue): (JSValueWrapper::JSObjectCopyProperty): (JSValueWrapper::JSObjectSetProperty): (JSValueWrapper::JSObjectCallFunction):
  • JSValueWrapper.h:
  • UserObjectImp.cpp: (UserObjectImp::callAsFunction): (UserObjectImp::userObjectGetter): (UserObjectImp::getOwnPropertySlot): (UserObjectImp::put): (UserObjectImp::toPrimitive):
  • UserObjectImp.h: (UserObjectImp::createStructureID): Use JSValue* instead of JSValuePtr.

WebCore:

2008-10-24 Darin Adler <Darin Adler>

  • bindings/js/JSAttrCustom.cpp:
  • bindings/js/JSCSSRuleCustom.cpp:
  • bindings/js/JSCSSStyleDeclarationCustom.cpp:
  • bindings/js/JSCSSValueCustom.cpp:
  • bindings/js/JSCanvasPixelArrayCustom.h:
  • bindings/js/JSCanvasRenderingContext2DCustom.cpp:
  • bindings/js/JSClipboardCustom.cpp:
  • bindings/js/JSConsoleCustom.cpp:
  • bindings/js/JSCustomSQLStatementCallback.cpp:
  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:
  • bindings/js/JSCustomSQLTransactionCallback.cpp:
  • bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
  • bindings/js/JSCustomVoidCallback.cpp:
  • bindings/js/JSCustomVoidCallback.h:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSCustomXPathNSResolver.h:
  • bindings/js/JSDOMApplicationCacheCustom.cpp:
  • bindings/js/JSDOMBinding.cpp:
  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWindowCustom.cpp:
  • bindings/js/JSDOMWindowCustom.h:
  • bindings/js/JSDOMWindowShell.cpp:
  • bindings/js/JSDOMWindowShell.h:
  • bindings/js/JSDatabaseCustom.cpp:
  • bindings/js/JSDedicatedWorkerCustom.cpp:
  • bindings/js/JSDocumentCustom.cpp:
  • bindings/js/JSElementCustom.cpp:
  • bindings/js/JSEventCustom.cpp:
  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSEventTarget.cpp:
  • bindings/js/JSEventTarget.h:
  • bindings/js/JSEventTargetBase.h:
  • bindings/js/JSEventTargetNodeCustom.cpp:
  • bindings/js/JSHTMLAllCollection.h:
  • bindings/js/JSHTMLAppletElementCustom.cpp:
  • bindings/js/JSHTMLCollectionCustom.cpp:
  • bindings/js/JSHTMLDocumentCustom.cpp:
  • bindings/js/JSHTMLEmbedElementCustom.cpp:
  • bindings/js/JSHTMLFormElementCustom.cpp:
  • bindings/js/JSHTMLFrameElementCustom.cpp:
  • bindings/js/JSHTMLFrameSetElementCustom.cpp:
  • bindings/js/JSHTMLIFrameElementCustom.cpp:
  • bindings/js/JSHTMLInputElementCustom.cpp:
  • bindings/js/JSHTMLObjectElementCustom.cpp:
  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:
  • bindings/js/JSHTMLSelectElementCustom.cpp:
  • bindings/js/JSHTMLSelectElementCustom.h:
  • bindings/js/JSHistoryCustom.cpp:
  • bindings/js/JSImageDataCustom.cpp:
  • bindings/js/JSInspectedObjectWrapper.cpp:
  • bindings/js/JSInspectedObjectWrapper.h:
  • bindings/js/JSInspectorCallbackWrapper.cpp:
  • bindings/js/JSInspectorCallbackWrapper.h:
  • bindings/js/JSJavaScriptCallFrameCustom.cpp:
  • bindings/js/JSLocationCustom.cpp:
  • bindings/js/JSMessagePortCustom.cpp:
  • bindings/js/JSMimeTypeArrayCustom.cpp:
  • bindings/js/JSNamedNodeMapCustom.cpp:
  • bindings/js/JSNamedNodesCollection.cpp:
  • bindings/js/JSNamedNodesCollection.h:
  • bindings/js/JSNavigatorCustom.cpp:
  • bindings/js/JSNodeCustom.cpp:
  • bindings/js/JSNodeFilterCondition.cpp:
  • bindings/js/JSNodeFilterCondition.h:
  • bindings/js/JSNodeFilterCustom.cpp:
  • bindings/js/JSNodeIteratorCustom.cpp:
  • bindings/js/JSNodeListCustom.cpp:
  • bindings/js/JSPluginArrayCustom.cpp:
  • bindings/js/JSPluginCustom.cpp:
  • bindings/js/JSPluginElementFunctions.cpp:
  • bindings/js/JSPluginElementFunctions.h:
  • bindings/js/JSQuarantinedObjectWrapper.cpp:
  • bindings/js/JSQuarantinedObjectWrapper.h:
  • bindings/js/JSRGBColor.cpp:
  • bindings/js/JSRGBColor.h:
  • bindings/js/JSSQLResultSetRowListCustom.cpp:
  • bindings/js/JSSQLTransactionCustom.cpp:
  • bindings/js/JSSVGElementInstanceCustom.cpp:
  • bindings/js/JSSVGLengthCustom.cpp:
  • bindings/js/JSSVGMatrixCustom.cpp:
  • bindings/js/JSSVGPathSegCustom.cpp:
  • bindings/js/JSSVGPathSegListCustom.cpp:
  • bindings/js/JSSVGPointListCustom.cpp:
  • bindings/js/JSSVGTransformListCustom.cpp:
  • bindings/js/JSStorageCustom.cpp:
  • bindings/js/JSStyleSheetCustom.cpp:
  • bindings/js/JSStyleSheetListCustom.cpp:
  • bindings/js/JSTextCustom.cpp:
  • bindings/js/JSTreeWalkerCustom.cpp:
  • bindings/js/JSXMLHttpRequestCustom.cpp:
  • bindings/js/JSXMLHttpRequestUploadCustom.cpp:
  • bindings/js/JSXSLTProcessorCustom.cpp:
  • bindings/js/ScheduledAction.cpp:
  • bindings/js/ScheduledAction.h:
  • bindings/js/ScriptController.cpp:
  • bindings/js/ScriptController.h:
  • bindings/objc/WebScriptObject.mm:
  • bindings/objc/WebScriptObjectPrivate.h:
  • bindings/scripts/CodeGeneratorJS.pm:
  • bridge/NP_jsobject.cpp:
  • bridge/c/c_instance.cpp:
  • bridge/c/c_instance.h:
  • bridge/c/c_runtime.cpp:
  • bridge/c/c_runtime.h:
  • bridge/c/c_utility.cpp:
  • bridge/c/c_utility.h:
  • bridge/jni/jni_instance.cpp:
  • bridge/jni/jni_instance.h:
  • bridge/jni/jni_jsobject.h:
  • bridge/jni/jni_jsobject.mm:
  • bridge/jni/jni_objc.mm:
  • bridge/jni/jni_runtime.cpp:
  • bridge/jni/jni_runtime.h:
  • bridge/jni/jni_utility.cpp:
  • bridge/jni/jni_utility.h:
  • bridge/objc/WebScriptObject.h:
  • bridge/objc/objc_class.h:
  • bridge/objc/objc_class.mm:
  • bridge/objc/objc_instance.h:
  • bridge/objc/objc_instance.mm:
  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm:
  • bridge/objc/objc_utility.h:
  • bridge/objc/objc_utility.mm:
  • bridge/qt/qt_class.cpp:
  • bridge/qt/qt_class.h:
  • bridge/qt/qt_instance.cpp:
  • bridge/qt/qt_instance.h:
  • bridge/qt/qt_runtime.cpp:
  • bridge/qt/qt_runtime.h:
  • bridge/runtime.cpp:
  • bridge/runtime.h:
  • bridge/runtime_array.cpp:
  • bridge/runtime_array.h:
  • bridge/runtime_method.cpp:
  • bridge/runtime_method.h:
  • bridge/runtime_object.cpp:
  • bridge/runtime_object.h:
  • bridge/testqtbindings.cpp:
  • inspector/JavaScriptCallFrame.cpp:
  • inspector/JavaScriptCallFrame.h:
  • inspector/JavaScriptProfile.cpp:
  • inspector/JavaScriptProfile.h:
  • inspector/JavaScriptProfileNode.cpp:
  • inspector/JavaScriptProfileNode.h:
  • loader/FrameLoader.cpp:
  • loader/FrameLoader.h:
  • page/Console.cpp:
  • page/Console.h:
  • plugins/MimeTypeArray.h:
  • plugins/Plugin.h:
  • plugins/PluginArray.h:
  • plugins/PluginView.cpp:
  • xml/XMLHttpRequest.cpp: Use JSValue* instead of JSValuePtr.

WebKit/mac:

2008-10-24 Darin Adler <Darin Adler>

  • WebView/WebFrame.mm: (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
  • WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame _convertValueToObjcValue:]): (-[WebScriptCallFrame exception]): (-[WebScriptCallFrame evaluateWebScript:]):
  • WebView/WebView.mm: (aeDescFromJSValue): (-[WebView aeDescByEvaluatingJavaScriptFromString:]): Use JSValue* instead of JSValuePtr.

WebKit/qt:

2008-10-24 Darin Adler <Darin Adler>

  • Api/qwebframe.cpp: (QWebFrame::evaluateJavaScript): Use JSValue* instead of JSValuePtr.

WebKit/win:

2008-10-24 Darin Adler <Darin Adler>

  • WebScriptCallFrame.cpp: (WebScriptCallFrame::jsValueToString): (WebScriptCallFrame::stringByEvaluatingJavaScriptFromString): (WebScriptCallFrame::valueForVariable): (WebScriptCallFrame::valueByEvaluatingJavaScriptFromString):
  • WebScriptCallFrame.h:
  • WebView.cpp: (WebView::stringByEvaluatingJavaScriptFromString): Use JSValue* instead of JSValuePtr.

WebKit/wx:

2008-10-24 Darin Adler <Darin Adler>

  • WebFrame.cpp: (wxWebFrame::RunScript): Use JSValue* instead of JSValuePtr.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/CTI.cpp

    r37831 r37845  
    128128extern "C" {
    129129   
    130     __declspec(naked) JSValue* ctiTrampoline(void* code, RegisterFile*, CallFrame*, JSValuePtr* exception, Profiler**, JSGlobalData*)
     130    __declspec(naked) JSValue* ctiTrampoline(void* code, RegisterFile*, CallFrame*, JSValue** exception, Profiler**, JSGlobalData*)
    131131    {
    132132        __asm {
     
    169169}
    170170
    171 ALWAYS_INLINE JSValuePtr CTI::getConstant(CallFrame* callFrame, int src)
     171ALWAYS_INLINE JSValue* CTI::getConstant(CallFrame* callFrame, int src)
    172172{
    173173    return m_codeBlock->constantRegisters[src - m_codeBlock->numVars].jsValue(callFrame);
    174174}
    175175
    176 inline uintptr_t CTI::asInteger(JSValuePtr value)
     176inline uintptr_t CTI::asInteger(JSValue* value)
    177177{
    178178    return reinterpret_cast<uintptr_t>(value);
     
    184184    // TODO: we want to reuse values that are already in registers if we can - add a register allocator!
    185185    if (isConstant(src)) {
    186         JSValuePtr js = getConstant(m_callFrame, src);
     186        JSValue* js = getConstant(m_callFrame, src);
    187187        m_jit.movl_i32r(asInteger(js), dst);
    188188    } else
     
    194194{
    195195    if (isConstant(src)) {
    196         JSValuePtr js = getConstant(m_callFrame, src);
     196        JSValue* js = getConstant(m_callFrame, src);
    197197        m_jit.movl_i32m(asInteger(js), offset + sizeof(void*), X86::esp);
    198198    } else {
     
    213213}
    214214
    215 ALWAYS_INLINE JSValuePtr CTI::getConstantImmediateNumericArg(unsigned src)
     215ALWAYS_INLINE JSValue* CTI::getConstantImmediateNumericArg(unsigned src)
    216216{
    217217    if (isConstant(src)) {
    218         JSValuePtr js = getConstant(m_callFrame, src);
     218        JSValue* js = getConstant(m_callFrame, src);
    219219        return JSImmediate::isNumber(js) ? js : noValue();
    220220    }
     
    279279    char which1 = '*';
    280280    if (isConstant(src1)) {
    281         JSValuePtr js = getConstant(m_callFrame, src1);
     281        JSValue* js = getConstant(m_callFrame, src1);
    282282        which1 =
    283283            JSImmediate::isImmediate(js) ?
     
    293293    char which2 = '*';
    294294    if (isConstant(src2)) {
    295         JSValuePtr js = getConstant(m_callFrame, src2);
     295        JSValue* js = getConstant(m_callFrame, src2);
    296296        which2 =
    297297            JSImmediate::isImmediate(js) ?
     
    457457}
    458458
    459 ALWAYS_INLINE unsigned CTI::getDeTaggedConstantImmediate(JSValuePtr imm)
     459ALWAYS_INLINE unsigned CTI::getDeTaggedConstantImmediate(JSValue* imm)
    460460{
    461461    ASSERT(JSImmediate::isNumber(imm));
     
    978978            unsigned src2 = instruction[i + 3].u.operand;
    979979
    980             if (JSValuePtr value = getConstantImmediateNumericArg(src1)) {
     980            if (JSValue* value = getConstantImmediateNumericArg(src1)) {
    981981                emitGetArg(src2, X86::edx);
    982982                emitJumpSlowCaseIfNotImmNum(X86::edx, i);
     
    984984                m_slowCases.append(SlowCaseEntry(m_jit.emitUnlinkedJo(), i));
    985985                emitPutResult(dst, X86::edx);
    986             } else if (JSValuePtr value = getConstantImmediateNumericArg(src2)) {
     986            } else if (JSValue* value = getConstantImmediateNumericArg(src2)) {
    987987                emitGetArg(src1, X86::eax);
    988988                emitJumpSlowCaseIfNotImmNum(X86::eax, i);
     
    10451045
    10461046            unsigned target = instruction[i + 3].u.operand;
    1047             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     1047            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    10481048            if (src2imm) {
    10491049                emitGetArg(instruction[i + 1].u.operand, X86::edx);
     
    10661066
    10671067            unsigned target = instruction[i + 3].u.operand;
    1068             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     1068            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    10691069            if (src2imm) {
    10701070                emitGetArg(instruction[i + 1].u.operand, X86::edx);
     
    12211221
    12221222            // For now, only plant a fast int case if the constant operand is greater than zero.
    1223             JSValuePtr src1Value = getConstantImmediateNumericArg(src1);
    1224             JSValuePtr src2Value = getConstantImmediateNumericArg(src2);
     1223            JSValue* src1Value = getConstantImmediateNumericArg(src1);
     1224            JSValue* src2Value = getConstantImmediateNumericArg(src2);
    12251225            int32_t value;
    12261226            if (src1Value && ((value = JSImmediate::intValue(src1Value)) > 0)) {
     
    13881388
    13891389            // Get the value from the vector
    1390             m_jit.movl_mr(OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValuePtr), X86::eax);
     1390            m_jit.movl_mr(OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValue*), X86::eax);
    13911391            emitPutResult(instruction[i + 1].u.operand);
    13921392            i += 4;
     
    14271427            // This is a write to the slow part of the vector; first, we have to check if this would be the first write to this location.
    14281428            // FIXME: should be able to handle initial write to array; increment the the number of items in the array, and potentially update fast access cutoff.
    1429             m_jit.cmpl_i8m(0, OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValuePtr));
     1429            m_jit.cmpl_i8m(0, OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValue*));
    14301430            m_slowCases.append(SlowCaseEntry(m_jit.emitUnlinkedJe(), i));
    14311431
     
    14331433            m_jit.link(inFastVector, m_jit.label());
    14341434            emitGetArg(instruction[i + 3].u.operand, X86::eax);
    1435             m_jit.movl_rm(X86::eax, OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValuePtr));
     1435            m_jit.movl_rm(X86::eax, OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValue*));
    14361436            i += 4;
    14371437            break;
     
    14981498            m_jit.movl_mr(OBJECT_OFFSET(JSGlobalObject, m_propertyStorage), X86::eax, X86::eax);
    14991499            m_jit.movl_mr(offsetAddr, X86::edx);
    1500             m_jit.movl_mr(0, X86::eax, X86::edx, sizeof(JSValuePtr), X86::eax);
     1500            m_jit.movl_mr(0, X86::eax, X86::edx, sizeof(JSValue*), X86::eax);
    15011501            emitPutResult(instruction[i + 1].u.operand);
    15021502            X86Assembler::JmpSrc end = m_jit.emitUnlinkedJmp();
     
    15261526        case op_jnless: {
    15271527            unsigned target = instruction[i + 3].u.operand;
    1528             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     1528            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    15291529            if (src2imm) {
    15301530                emitGetArg(instruction[i + 1].u.operand, X86::edx);
     
    16441644        }
    16451645        case op_unexpected_load: {
    1646             JSValuePtr v = m_codeBlock->unexpectedConstants[instruction[i + 2].u.operand];
     1646            JSValue* v = m_codeBlock->unexpectedConstants[instruction[i + 2].u.operand];
    16471647            m_jit.movl_i32r(asInteger(v), X86::eax);
    16481648            emitPutResult(instruction[i + 1].u.operand);
     
    16951695            unsigned src2 = instruction[i + 3].u.operand;
    16961696            unsigned dst = instruction[i + 1].u.operand;
    1697             if (JSValuePtr value = getConstantImmediateNumericArg(src1)) {
     1697            if (JSValue* value = getConstantImmediateNumericArg(src1)) {
    16981698                emitGetArg(src2, X86::eax);
    16991699                emitJumpSlowCaseIfNotImmNum(X86::eax, i);
    17001700                m_jit.andl_i32r(asInteger(value), X86::eax); // FIXME: make it more obvious this is relying on the format of JSImmediate
    17011701                emitPutResult(dst);
    1702             } else if (JSValuePtr value = getConstantImmediateNumericArg(src2)) {
     1702            } else if (JSValue* value = getConstantImmediateNumericArg(src2)) {
    17031703                emitGetArg(src1, X86::eax);
    17041704                emitJumpSlowCaseIfNotImmNum(X86::eax, i);
     
    20402040        }
    20412041        case op_new_error: {
    2042             JSValuePtr message = m_codeBlock->unexpectedConstants[instruction[i + 3].u.operand];
     2042            JSValue* message = m_codeBlock->unexpectedConstants[instruction[i + 3].u.operand];
    20432043            emitPutArgConstant(instruction[i + 2].u.operand, 0);
    20442044            emitPutArgConstant(asInteger(message), 4);
     
    22392239            unsigned src1 = instruction[i + 2].u.operand;
    22402240            unsigned src2 = instruction[i + 3].u.operand;
    2241             if (JSValuePtr value = getConstantImmediateNumericArg(src1)) {
     2241            if (JSValue* value = getConstantImmediateNumericArg(src1)) {
    22422242                X86Assembler::JmpSrc notImm = iter->from;
    22432243                m_jit.link((++iter)->from, m_jit.label());
     
    22482248                emitCTICall(i, Machine::cti_op_add);
    22492249                emitPutResult(dst);
    2250             } else if (JSValuePtr value = getConstantImmediateNumericArg(src2)) {
     2250            } else if (JSValue* value = getConstantImmediateNumericArg(src2)) {
    22512251                X86Assembler::JmpSrc notImm = iter->from;
    22522252                m_jit.link((++iter)->from, m_jit.label());
     
    22902290
    22912291            // okay, missed the fast region, but it is still in the vector.  Get the value.
    2292             m_jit.movl_mr(OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValuePtr), X86::ecx);
     2292            m_jit.movl_mr(OBJECT_OFFSET(ArrayStorage, m_vector[0]), X86::ecx, X86::edx, sizeof(JSValue*), X86::ecx);
    22932293            // Check whether the value loaded is zero; if so we need to return undefined.
    22942294            m_jit.testl_rr(X86::ecx, X86::ecx);
     
    23332333
    23342334            unsigned target = instruction[i + 3].u.operand;
    2335             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     2335            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    23362336            if (src2imm) {
    23372337                m_jit.link(iter->from, m_jit.label());
     
    24032403
    24042404            unsigned target = instruction[i + 3].u.operand;
    2405             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     2405            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    24062406            if (src2imm) {
    24072407                m_jit.link(iter->from, m_jit.label());
     
    24872487        case op_jnless: {
    24882488            unsigned target = instruction[i + 3].u.operand;
    2489             JSValuePtr src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
     2489            JSValue* src2imm = getConstantImmediateNumericArg(instruction[i + 2].u.operand);
    24902490            if (src2imm) {
    24912491                m_jit.link(iter->from, m_jit.label());
     
    26592659            int src1 = instruction[i + 2].u.operand;
    26602660            int src2 = instruction[i + 3].u.operand;
    2661             JSValuePtr src1Value = getConstantImmediateNumericArg(src1);
    2662             JSValuePtr src2Value = getConstantImmediateNumericArg(src2);
     2661            JSValue* src1Value = getConstantImmediateNumericArg(src1);
     2662            JSValue* src2Value = getConstantImmediateNumericArg(src2);
    26632663            int32_t value;
    26642664            if (src1Value && ((value = JSImmediate::intValue(src1Value)) > 0)) {
     
    28932893    // Checks out okay! - getDirectOffset
    28942894    m_jit.movl_mr(OBJECT_OFFSET(JSObject, m_propertyStorage), X86::eax, X86::eax);
    2895     m_jit.movl_mr(cachedOffset * sizeof(JSValuePtr), X86::eax, X86::eax);
     2895    m_jit.movl_mr(cachedOffset * sizeof(JSValue*), X86::eax, X86::eax);
    28962896    m_jit.ret();
    28972897
     
    29332933
    29342934    // Checks out okay! - getDirectOffset
    2935     m_jit.movl_mr(cachedOffset * sizeof(JSValuePtr), X86::edx, X86::ecx);
     2935    m_jit.movl_mr(cachedOffset * sizeof(JSValue*), X86::edx, X86::ecx);
    29362936
    29372937    X86Assembler::JmpSrc success = m_jit.emitUnlinkedJmp();
     
    29762976
    29772977    // Checks out okay! - getDirectOffset
    2978     m_jit.movl_mr(cachedOffset * sizeof(JSValuePtr), X86::edx, X86::eax);
     2978    m_jit.movl_mr(cachedOffset * sizeof(JSValue*), X86::edx, X86::eax);
    29792979
    29802980    m_jit.ret();
     
    30213021    PropertyStorage* protoPropertyStorage = &protoObject->m_propertyStorage;
    30223022    m_jit.movl_mr(static_cast<void*>(protoPropertyStorage), X86::edx);
    3023     m_jit.movl_mr(cachedOffset * sizeof(JSValuePtr), X86::edx, X86::eax);
     3023    m_jit.movl_mr(cachedOffset * sizeof(JSValue*), X86::edx, X86::eax);
    30243024    m_jit.ret();
    30253025
     
    30473047    // checks out okay! - putDirectOffset
    30483048    m_jit.movl_mr(OBJECT_OFFSET(JSObject, m_propertyStorage), X86::eax, X86::eax);
    3049     m_jit.movl_rm(X86::edx, cachedOffset * sizeof(JSValuePtr), X86::eax);
     3049    m_jit.movl_rm(X86::edx, cachedOffset * sizeof(JSValue*), X86::eax);
    30503050    m_jit.ret();
    30513051
     
    31343134    // write the value
    31353135    m_jit.movl_mr(OBJECT_OFFSET(JSObject, m_propertyStorage), X86::eax, X86::eax);
    3136     m_jit.movl_rm(X86::edx, cachedOffset * sizeof(JSValuePtr), X86::eax);
     3136    m_jit.movl_rm(X86::edx, cachedOffset * sizeof(JSValue*), X86::eax);
    31373137
    31383138    m_jit.ret();
     
    32503250
    32513251    // Repatch the offset into the propoerty map to load from, then repatch the StructureID to look for.
    3252     X86Assembler::repatchDisplacement(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetGetByIdPropertyMapOffset, cachedOffset * sizeof(JSValuePtr));
     3252    X86Assembler::repatchDisplacement(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetGetByIdPropertyMapOffset, cachedOffset * sizeof(JSValue*));
    32533253    X86Assembler::repatchImmediate(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetGetByIdStructureID, reinterpret_cast<uint32_t>(structureID));
    32543254}
     
    32633263
    32643264    // Repatch the offset into the propoerty map to load from, then repatch the StructureID to look for.
    3265     X86Assembler::repatchDisplacement(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetPutByIdPropertyMapOffset, cachedOffset * sizeof(JSValuePtr));
     3265    X86Assembler::repatchDisplacement(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetPutByIdPropertyMapOffset, cachedOffset * sizeof(JSValue*));
    32663266    X86Assembler::repatchImmediate(reinterpret_cast<intptr_t>(info.hotPathBegin) + repatchOffsetPutByIdStructureID, reinterpret_cast<uint32_t>(structureID));
    32673267}
Note: See TracChangeset for help on using the changeset viewer.