Changeset 37812 in webkit for trunk/JavaScriptCore/VM
- Timestamp:
- Oct 23, 2008, 8:55:41 AM (17 years ago)
- Location:
- trunk/JavaScriptCore/VM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/CTI.cpp
r37789 r37812 36 36 #include "ResultType.h" 37 37 38 #if PLATFORM(MAC)39 #include <sys/sysctl.h>40 #endif41 42 38 using namespace std; 43 39 … … 180 176 inline uintptr_t CTI::asInteger(JSValuePtr value) 181 177 { 182 return reinterpret_cast<uintptr_t>(value .payload());178 return reinterpret_cast<uintptr_t>(value); 183 179 } 184 180 -
trunk/JavaScriptCore/VM/CodeGenerator.cpp
r37789 r37812 675 675 RegisterID* CodeGenerator::addConstant(JSValuePtr v) 676 676 { 677 pair<JSValueMap::iterator, bool> result = m_jsValueMap.add(v .payload(), m_nextConstant);677 pair<JSValueMap::iterator, bool> result = m_jsValueMap.add(v, m_nextConstant); 678 678 if (result.second) { 679 679 RegisterID& constant = m_calleeRegisters[m_nextConstant]; -
trunk/JavaScriptCore/VM/CodeGenerator.h
r37730 r37812 332 332 333 333 struct JSValueHashTraits : HashTraits<JSValue*> { 334 static void constructDeletedValue(JSValue*& slot) { slot = JSImmediate::impossibleValue() .payload(); }335 static bool isDeletedValue(JSValue* value) { return value == JSImmediate::impossibleValue() .payload(); }334 static void constructDeletedValue(JSValue*& slot) { slot = JSImmediate::impossibleValue(); } 335 static bool isDeletedValue(JSValue* value) { return value == JSImmediate::impossibleValue(); } 336 336 }; 337 337 -
trunk/JavaScriptCore/VM/Machine.cpp
r37799 r37812 4386 4386 bool rightIsNumber = fastIsNumber(v2, right); 4387 4387 if (rightIsNumber && fastIsNumber(v1, left)) 4388 return jsNumber(ARG_globalData, left + right) .payload();4388 return jsNumber(ARG_globalData, left + right); 4389 4389 4390 4390 CallFrame* callFrame = ARG_callFrame; … … 4398 4398 } 4399 4399 4400 return JSValuePtr(jsString(ARG_globalData, value.release())) .payload();4400 return JSValuePtr(jsString(ARG_globalData, value.release())); 4401 4401 } 4402 4402 … … 4410 4410 VM_THROW_EXCEPTION(); 4411 4411 } 4412 return JSValuePtr(jsString(ARG_globalData, value.release())) .payload();4412 return JSValuePtr(jsString(ARG_globalData, value.release())); 4413 4413 } 4414 4414 … … 4416 4416 JSValuePtr result = jsAddSlowCase(callFrame, v1, v2); 4417 4417 VM_CHECK_EXCEPTION_AT_END(); 4418 return result .payload();4418 return result; 4419 4419 } 4420 4420 … … 4428 4428 JSValuePtr result = jsNumber(ARG_globalData, v->toNumber(callFrame) + 1); 4429 4429 VM_CHECK_EXCEPTION_AT_END(); 4430 return result .payload();4430 return result; 4431 4431 } 4432 4432 … … 4556 4556 4557 4557 VM_CHECK_EXCEPTION_AT_END(); 4558 return result .payload();4558 return result; 4559 4559 } 4560 4560 … … 4573 4573 4574 4574 VM_CHECK_EXCEPTION_AT_END(); 4575 return result .payload();4575 return result; 4576 4576 } 4577 4577 … … 4588 4588 4589 4589 VM_CHECK_EXCEPTION_AT_END(); 4590 return result .payload();4590 return result; 4591 4591 } 4592 4592 … … 4606 4606 4607 4607 VM_CHECK_EXCEPTION_AT_END(); 4608 return result .payload();4608 return result; 4609 4609 } 4610 4610 … … 4633 4633 4634 4634 if (!asObject(baseVal)->structureID()->typeInfo().implementsHasInstance()) 4635 return JSValuePtr(jsBoolean(false)) .payload();4635 return JSValuePtr(jsBoolean(false)); 4636 4636 4637 4637 if (!proto->isObject()) { … … 4641 4641 4642 4642 if (!value->isObject()) 4643 return JSValuePtr(jsBoolean(false)) .payload();4643 return JSValuePtr(jsBoolean(false)); 4644 4644 4645 4645 JSValuePtr result = jsBoolean(asObject(baseVal)->hasInstance(callFrame, value, proto)); 4646 4646 VM_CHECK_EXCEPTION_AT_END(); 4647 4647 4648 return result .payload();4648 return result; 4649 4649 } 4650 4650 … … 4660 4660 JSValuePtr result = jsBoolean(baseObj->deleteProperty(callFrame, ident)); 4661 4661 VM_CHECK_EXCEPTION_AT_END(); 4662 return result .payload();4662 return result; 4663 4663 } 4664 4664 … … 4673 4673 double right; 4674 4674 if (fastIsNumber(src1, left) && fastIsNumber(src2, right)) 4675 return jsNumber(ARG_globalData, left * right) .payload();4675 return jsNumber(ARG_globalData, left * right); 4676 4676 4677 4677 CallFrame* callFrame = ARG_callFrame; 4678 4678 JSValuePtr result = jsNumber(ARG_globalData, src1->toNumber(callFrame) * src2->toNumber(callFrame)); 4679 4679 VM_CHECK_EXCEPTION_AT_END(); 4680 return result .payload();4680 return result; 4681 4681 } 4682 4682 … … 4804 4804 VM_CHECK_EXCEPTION(); 4805 4805 4806 return returnValue .payload();4806 return returnValue; 4807 4807 } 4808 4808 … … 4897 4897 JSValuePtr result = slot.getValue(callFrame, ident); 4898 4898 VM_CHECK_EXCEPTION_AT_END(); 4899 return result .payload();4899 return result; 4900 4900 } 4901 4901 } while (++iter != end); … … 5008 5008 VM_CHECK_EXCEPTION(); 5009 5009 5010 return returnValue .payload();5010 return returnValue; 5011 5011 } 5012 5012 … … 5048 5048 5049 5049 VM_CHECK_EXCEPTION_AT_END(); 5050 return result .payload();5050 return result; 5051 5051 } 5052 5052 … … 5105 5105 double right; 5106 5106 if (fastIsNumber(src1, left) && fastIsNumber(src2, right)) 5107 return jsNumber(ARG_globalData, left - right) .payload();5107 return jsNumber(ARG_globalData, left - right); 5108 5108 5109 5109 CallFrame* callFrame = ARG_callFrame; 5110 5110 JSValuePtr result = jsNumber(ARG_globalData, src1->toNumber(callFrame) - src2->toNumber(callFrame)); 5111 5111 VM_CHECK_EXCEPTION_AT_END(); 5112 return result .payload();5112 return result; 5113 5113 } 5114 5114 … … 5180 5180 JSValuePtr result = jsBoolean(jsLessEq(callFrame, ARG_src1, ARG_src2)); 5181 5181 VM_CHECK_EXCEPTION_AT_END(); 5182 return result .payload();5182 return result; 5183 5183 } 5184 5184 … … 5204 5204 double v; 5205 5205 if (fastIsNumber(src, v)) 5206 return jsNumber(ARG_globalData, -v) .payload();5206 return jsNumber(ARG_globalData, -v); 5207 5207 5208 5208 CallFrame* callFrame = ARG_callFrame; 5209 5209 JSValuePtr result = jsNumber(ARG_globalData, -src->toNumber(callFrame)); 5210 5210 VM_CHECK_EXCEPTION_AT_END(); 5211 return result .payload();5211 return result; 5212 5212 } 5213 5213 … … 5216 5216 CTI_STACK_HACK(); 5217 5217 5218 return inlineResolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame->scopeChain()) .payload();5218 return inlineResolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame->scopeChain()); 5219 5219 } 5220 5220 … … 5242 5242 JSValuePtr result = slot.getValue(callFrame, ident); 5243 5243 VM_CHECK_EXCEPTION_AT_END(); 5244 return result .payload();5244 return result; 5245 5245 } 5246 5246 } while (++iter != end); … … 5272 5272 vPC[4] = globalObject->structureID(); 5273 5273 vPC[5] = slot.cachedOffset(); 5274 return result .payload();5274 return result; 5275 5275 } 5276 5276 5277 5277 VM_CHECK_EXCEPTION_AT_END(); 5278 return result .payload();5278 return result; 5279 5279 } 5280 5280 … … 5293 5293 double right; 5294 5294 if (fastIsNumber(src1, left) && fastIsNumber(src2, right)) 5295 return jsNumber(ARG_globalData, left / right) .payload();5295 return jsNumber(ARG_globalData, left / right); 5296 5296 5297 5297 CallFrame* callFrame = ARG_callFrame; 5298 5298 JSValuePtr result = jsNumber(ARG_globalData, src1->toNumber(callFrame) / src2->toNumber(callFrame)); 5299 5299 VM_CHECK_EXCEPTION_AT_END(); 5300 return result .payload();5300 return result; 5301 5301 } 5302 5302 … … 5310 5310 JSValuePtr result = jsNumber(ARG_globalData, v->toNumber(callFrame) - 1); 5311 5311 VM_CHECK_EXCEPTION_AT_END(); 5312 return result .payload();5312 return result; 5313 5313 } 5314 5314 … … 5336 5336 JSValuePtr result = jsBoolean(!src->toBoolean(callFrame)); 5337 5337 VM_CHECK_EXCEPTION_AT_END(); 5338 return result .payload();5338 return result; 5339 5339 } 5340 5340 … … 5379 5379 JSValuePtr result = jsBoolean(equalSlowCaseInline(callFrame, src1, src2)); 5380 5380 VM_CHECK_EXCEPTION_AT_END(); 5381 return result .payload();5381 return result; 5382 5382 } 5383 5383 … … 5392 5392 uint32_t right; 5393 5393 if (JSImmediate::areBothImmediateNumbers(val, shift)) 5394 return jsNumber(ARG_globalData, JSImmediate::getTruncatedInt32(val) << (JSImmediate::getTruncatedUInt32(shift) & 0x1f)) .payload();5394 return jsNumber(ARG_globalData, JSImmediate::getTruncatedInt32(val) << (JSImmediate::getTruncatedUInt32(shift) & 0x1f)); 5395 5395 if (fastToInt32(val, left) && fastToUInt32(shift, right)) 5396 return jsNumber(ARG_globalData, left << (right & 0x1f)) .payload();5396 return jsNumber(ARG_globalData, left << (right & 0x1f)); 5397 5397 5398 5398 CallFrame* callFrame = ARG_callFrame; 5399 5399 JSValuePtr result = jsNumber(ARG_globalData, (val->toInt32(callFrame)) << (shift->toUInt32(callFrame) & 0x1f)); 5400 5400 VM_CHECK_EXCEPTION_AT_END(); 5401 return result .payload();5401 return result; 5402 5402 } 5403 5403 … … 5412 5412 int32_t right; 5413 5413 if (fastToInt32(src1, left) && fastToInt32(src2, right)) 5414 return jsNumber(ARG_globalData, left & right) .payload();5414 return jsNumber(ARG_globalData, left & right); 5415 5415 5416 5416 CallFrame* callFrame = ARG_callFrame; 5417 5417 JSValuePtr result = jsNumber(ARG_globalData, src1->toInt32(callFrame) & src2->toInt32(callFrame)); 5418 5418 VM_CHECK_EXCEPTION_AT_END(); 5419 return result .payload();5419 return result; 5420 5420 } 5421 5421 … … 5430 5430 uint32_t right; 5431 5431 if (JSImmediate::areBothImmediateNumbers(val, shift)) 5432 return JSImmediate::rightShiftImmediateNumbers(val, shift) .payload();5432 return JSImmediate::rightShiftImmediateNumbers(val, shift); 5433 5433 if (fastToInt32(val, left) && fastToUInt32(shift, right)) 5434 return jsNumber(ARG_globalData, left >> (right & 0x1f)) .payload();5434 return jsNumber(ARG_globalData, left >> (right & 0x1f)); 5435 5435 5436 5436 CallFrame* callFrame = ARG_callFrame; 5437 5437 JSValuePtr result = jsNumber(ARG_globalData, (val->toInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f)); 5438 5438 VM_CHECK_EXCEPTION_AT_END(); 5439 return result .payload();5439 return result; 5440 5440 } 5441 5441 … … 5448 5448 int value; 5449 5449 if (fastToInt32(src, value)) 5450 return jsNumber(ARG_globalData, ~value) .payload();5450 return jsNumber(ARG_globalData, ~value); 5451 5451 5452 5452 CallFrame* callFrame = ARG_callFrame; 5453 5453 JSValuePtr result = jsNumber(ARG_globalData, ~src->toInt32(callFrame)); 5454 5454 VM_CHECK_EXCEPTION_AT_END(); 5455 return result .payload();5455 return result; 5456 5456 } 5457 5457 … … 5510 5510 JSValuePtr result = jsNumber(ARG_globalData, fmod(d, divisorValue->toNumber(callFrame))); 5511 5511 VM_CHECK_EXCEPTION_AT_END(); 5512 return result .payload();5512 return result; 5513 5513 } 5514 5514 … … 5520 5520 JSValuePtr result = jsBoolean(jsLess(callFrame, ARG_src1, ARG_src2)); 5521 5521 VM_CHECK_EXCEPTION_AT_END(); 5522 return result .payload();5522 return result; 5523 5523 } 5524 5524 … … 5535 5535 JSValuePtr result = jsBoolean(!equalSlowCaseInline(callFrame, src1, src2)); 5536 5536 VM_CHECK_EXCEPTION_AT_END(); 5537 return result .payload();5537 return result; 5538 5538 } 5539 5539 … … 5563 5563 5564 5564 if (JSImmediate::areBothImmediateNumbers(val, shift) && !JSImmediate::isNegative(val)) 5565 return JSImmediate::rightShiftImmediateNumbers(val, shift) .payload();5565 return JSImmediate::rightShiftImmediateNumbers(val, shift); 5566 5566 else { 5567 5567 JSValuePtr result = jsNumber(ARG_globalData, (val->toUInt32(callFrame)) >> (shift->toUInt32(callFrame) & 0x1f)); 5568 5568 VM_CHECK_EXCEPTION_AT_END(); 5569 return result .payload();5569 return result; 5570 5570 } 5571 5571 } … … 5582 5582 JSValuePtr result = jsNumber(ARG_globalData, src1->toInt32(callFrame) ^ src2->toInt32(callFrame)); 5583 5583 VM_CHECK_EXCEPTION_AT_END(); 5584 return result .payload();5584 return result; 5585 5585 } 5586 5586 … … 5603 5603 JSValuePtr result = jsNumber(ARG_globalData, src1->toInt32(callFrame) | src2->toInt32(callFrame)); 5604 5604 VM_CHECK_EXCEPTION_AT_END(); 5605 return result .payload();5605 return result; 5606 5606 } 5607 5607 … … 5630 5630 VM_THROW_EXCEPTION_AT_END(); 5631 5631 } 5632 return result .payload();5633 } 5634 5635 return JSImmediate::impossibleValue() .payload();5632 return result; 5633 } 5634 5635 return JSImmediate::impossibleValue(); 5636 5636 } 5637 5637 … … 5653 5653 if (!handlerVPC) { 5654 5654 *ARG_exception = exceptionValue; 5655 return JSImmediate::nullImmediate() .payload();5655 return JSImmediate::nullImmediate(); 5656 5656 } 5657 5657 … … 5660 5660 ASSERT(catchRoutine); 5661 5661 CTI_SET_RETURN_ADDRESS(catchRoutine); 5662 return exceptionValue .payload();5662 return exceptionValue; 5663 5663 } 5664 5664 … … 5678 5678 if (!temp) 5679 5679 it->invalidate(); 5680 return temp .payload();5680 return temp; 5681 5681 } 5682 5682 … … 5701 5701 CTI_STACK_HACK(); 5702 5702 5703 return jsTypeStringForValue(ARG_callFrame, ARG_src1) .payload();5703 return jsTypeStringForValue(ARG_callFrame, ARG_src1); 5704 5704 } 5705 5705 … … 5709 5709 5710 5710 JSValuePtr v = ARG_src1; 5711 return jsBoolean(JSImmediate::isImmediate(v) ? v->isUndefined() : v->asCell()->structureID()->typeInfo().masqueradesAsUndefined()) .payload();5711 return jsBoolean(JSImmediate::isImmediate(v) ? v->isUndefined() : v->asCell()->structureID()->typeInfo().masqueradesAsUndefined()); 5712 5712 } 5713 5713 … … 5716 5716 CTI_STACK_HACK(); 5717 5717 5718 return jsBoolean(ARG_src1->isBoolean()) .payload();5718 return jsBoolean(ARG_src1->isBoolean()); 5719 5719 } 5720 5720 … … 5723 5723 CTI_STACK_HACK(); 5724 5724 5725 return jsBoolean(ARG_src1->isNumber()) .payload();5725 return jsBoolean(ARG_src1->isNumber()); 5726 5726 } 5727 5727 … … 5730 5730 CTI_STACK_HACK(); 5731 5731 5732 return jsBoolean(ARG_globalData->machine->isJSString(ARG_src1)) .payload();5732 return jsBoolean(ARG_globalData->machine->isJSString(ARG_src1)); 5733 5733 } 5734 5734 … … 5737 5737 CTI_STACK_HACK(); 5738 5738 5739 return jsBoolean(jsIsObjectType(ARG_src1)) .payload();5739 return jsBoolean(jsIsObjectType(ARG_src1)); 5740 5740 } 5741 5741 … … 5744 5744 CTI_STACK_HACK(); 5745 5745 5746 return jsBoolean(jsIsFunctionType(ARG_src1)) .payload();5746 return jsBoolean(jsIsFunctionType(ARG_src1)); 5747 5747 } 5748 5748 … … 5758 5758 ASSERT(!(JSImmediate::isEitherImmediate(src1, src2) & (src1 != JSImmediate::zeroImmediate()) & (src2 != JSImmediate::zeroImmediate()))); 5759 5759 5760 return jsBoolean(strictEqualSlowCaseInline(src1, src2)) .payload();5760 return jsBoolean(strictEqualSlowCaseInline(src1, src2)); 5761 5761 } 5762 5762 … … 5772 5772 ASSERT(!(JSImmediate::isEitherImmediate(src1, src2) & (src1 != JSImmediate::zeroImmediate()) & (src2 != JSImmediate::zeroImmediate()))); 5773 5773 5774 return jsBoolean(!strictEqualSlowCaseInline(src1, src2)) .payload();5774 return jsBoolean(!strictEqualSlowCaseInline(src1, src2)); 5775 5775 } 5776 5776 … … 5784 5784 JSValuePtr result = src->toJSNumber(callFrame); 5785 5785 VM_CHECK_EXCEPTION_AT_END(); 5786 return result .payload();5786 return result; 5787 5787 } 5788 5788 … … 5808 5808 uint32_t i; 5809 5809 if (propName->getUInt32(i)) 5810 return jsBoolean(baseObj->hasProperty(callFrame, i)) .payload();5810 return jsBoolean(baseObj->hasProperty(callFrame, i)); 5811 5811 5812 5812 Identifier property(callFrame, propName->toString(callFrame)); 5813 5813 VM_CHECK_EXCEPTION(); 5814 return jsBoolean(baseObj->hasProperty(callFrame, property)) .payload();5814 return jsBoolean(baseObj->hasProperty(callFrame, property)); 5815 5815 } 5816 5816 … … 5927 5927 5928 5928 VM_CHECK_EXCEPTION_AT_END(); 5929 return result .payload();5929 return result; 5930 5930 } 5931 5931 … … 6000 6000 if (!handlerVPC) { 6001 6001 *ARG_exception = exceptionValue; 6002 return JSImmediate::nullImmediate() .payload();6002 return JSImmediate::nullImmediate(); 6003 6003 } 6004 6004 … … 6007 6007 ASSERT(catchRoutine); 6008 6008 CTI_SET_RETURN_ADDRESS(catchRoutine); 6009 return exceptionValue .payload();6009 return exceptionValue; 6010 6010 } 6011 6011 -
trunk/JavaScriptCore/VM/Register.h
r37712 r37812 51 51 Register(); 52 52 Register(JSValuePtr); 53 Register(JSCell*);54 53 55 54 JSValuePtr jsValue(CallFrame*) const; … … 144 143 { 145 144 SET_TYPE(ValueType); 146 u.value = v.payload(); 147 } 148 149 ALWAYS_INLINE Register::Register(JSCell* v) 150 { 151 SET_TYPE(ValueType); 152 u.value = JSValuePtr(v).payload(); 145 u.value = v; 153 146 } 154 147
Note:
See TracChangeset
for help on using the changeset viewer.