/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog-2009-06-16

https://bitbucket.org/ultra_iter/qt-vtl · #! · 39978 lines · 32111 code · 7867 blank · 0 comment · 0 complexity · 7209fee122a23f8bd405bb12ac2ebbd8 MD5 · raw file

Large files are truncated click here to view the full file

  1. 2009-06-15 Gavin Barraclough <barraclough@apple.com>
  2. Rubber Stamped by Sam Weinig.
  3. Rename PatchBuffer to LinkBuffer. Previously our terminology has been a little
  4. mixed up, but we have decided to fix on refering to the process that takes place
  5. at the end of code generation as 'linking', and on any modifications that take
  6. place later (and once the code has potentially already been executed) as 'patching'.
  7. However, the term 'PatchBuffer' is already in use, and needs to be repurposed.
  8. To try to minimize confusion, we're going to switch the terminology over in stages,
  9. so for now we'll refer to later modifications as 'repatching'. This means that the
  10. new 'PatchBuffer' has been introduced with the name 'RepatchBuffer' instead.
  11. This patch renames the old 'PatchBuffer' to 'LinkBuffer'. We'll leave ToT in this
  12. state for a week or so to try to avoid to much overlap of the meaning of the term
  13. 'PatchBuffer', then will come back and rename 'RepatchBuffer'.
  14. * assembler/ARMv7Assembler.h:
  15. * assembler/AbstractMacroAssembler.h:
  16. (JSC::AbstractMacroAssembler::LinkBuffer::LinkBuffer):
  17. (JSC::AbstractMacroAssembler::LinkBuffer::~LinkBuffer):
  18. * jit/JIT.cpp:
  19. (JSC::JIT::privateCompile):
  20. * jit/JITPropertyAccess.cpp:
  21. (JSC::JIT::privateCompilePutByIdTransition):
  22. (JSC::JIT::privateCompilePatchGetArrayLength):
  23. (JSC::JIT::privateCompileGetByIdProto):
  24. (JSC::JIT::privateCompileGetByIdSelfList):
  25. (JSC::JIT::privateCompileGetByIdProtoList):
  26. (JSC::JIT::privateCompileGetByIdChainList):
  27. (JSC::JIT::privateCompileGetByIdChain):
  28. * yarr/RegexJIT.cpp:
  29. (JSC::Yarr::RegexGenerator::compile):
  30. 2009-06-15 Gavin Barraclough <barraclough@apple.com>
  31. Reviewed by Sam Weinig.
  32. Having moved most of their functionality into the RepatchBuffer class,
  33. we can simplify the CodeLocation* classes.
  34. The CodeLocation* classes are currently a tangle of templatey and friendly
  35. badness, burried in the middle of AbstractMacroAssembler. Having moved
  36. the ability to repatch out into RepatchBufer they are now do-nothing wrappers
  37. on CodePtr (MacroAssemblerCodePtr), that only exist to provide type-safety.
  38. Simplify the code, and move them off into their own header.
  39. * JavaScriptCore.xcodeproj/project.pbxproj:
  40. * assembler/AbstractMacroAssembler.h:
  41. (JSC::AbstractMacroAssembler::PatchBuffer::patch):
  42. * assembler/CodeLocation.h: Copied from assembler/AbstractMacroAssembler.h.
  43. (JSC::CodeLocationCommon::CodeLocationCommon):
  44. (JSC::CodeLocationInstruction::CodeLocationInstruction):
  45. (JSC::CodeLocationLabel::CodeLocationLabel):
  46. (JSC::CodeLocationJump::CodeLocationJump):
  47. (JSC::CodeLocationCall::CodeLocationCall):
  48. (JSC::CodeLocationNearCall::CodeLocationNearCall):
  49. (JSC::CodeLocationDataLabel32::CodeLocationDataLabel32):
  50. (JSC::CodeLocationDataLabelPtr::CodeLocationDataLabelPtr):
  51. (JSC::CodeLocationCommon::instructionAtOffset):
  52. (JSC::CodeLocationCommon::labelAtOffset):
  53. (JSC::CodeLocationCommon::jumpAtOffset):
  54. (JSC::CodeLocationCommon::callAtOffset):
  55. (JSC::CodeLocationCommon::nearCallAtOffset):
  56. (JSC::CodeLocationCommon::dataLabelPtrAtOffset):
  57. (JSC::CodeLocationCommon::dataLabel32AtOffset):
  58. * assembler/MacroAssemblerCodeRef.h:
  59. (JSC::MacroAssemblerCodePtr::operator!):
  60. * bytecode/CodeBlock.h:
  61. (JSC::getStructureStubInfoReturnLocation):
  62. (JSC::getCallLinkInfoReturnLocation):
  63. (JSC::getMethodCallLinkInfoReturnLocation):
  64. * bytecode/Instruction.h:
  65. * bytecode/JumpTable.h:
  66. (JSC::StringJumpTable::ctiForValue):
  67. (JSC::SimpleJumpTable::ctiForValue):
  68. * bytecode/StructureStubInfo.h:
  69. * bytecompiler/BytecodeGenerator.cpp:
  70. (JSC::BytecodeGenerator::emitCatch):
  71. * jit/JIT.cpp:
  72. (JSC::JIT::privateCompile):
  73. * jit/JITStubs.cpp:
  74. (JSC::JITStubs::DEFINE_STUB_FUNCTION):
  75. (JSC::JITStubs::getPolymorphicAccessStructureListSlot):
  76. 2009-06-15 Gavin Barraclough <barraclough@apple.com>
  77. Reviewed by Sam Weinig.
  78. Having introduced the RepatchBuffer, ProcessorReturnAddress is now a do-nothing
  79. wrapper around ReturnAddressPtr. Remove it. In tugging on this piece of string
  80. it made sense to roll out the use of ReturnAddressPtr a little further into
  81. JITStubs (which had always been the intention).
  82. No performance impact.
  83. * assembler/AbstractMacroAssembler.h:
  84. (JSC::AbstractMacroAssembler::RepatchBuffer::relinkCallerToTrampoline):
  85. (JSC::AbstractMacroAssembler::RepatchBuffer::relinkCallerToFunction):
  86. (JSC::AbstractMacroAssembler::RepatchBuffer::relinkNearCallerToTrampoline):
  87. * assembler/MacroAssemblerCodeRef.h:
  88. (JSC::ReturnAddressPtr::ReturnAddressPtr):
  89. * bytecode/CodeBlock.h:
  90. (JSC::CodeBlock::getStubInfo):
  91. (JSC::CodeBlock::getCallLinkInfo):
  92. (JSC::CodeBlock::getMethodCallLinkInfo):
  93. (JSC::CodeBlock::getBytecodeIndex):
  94. * interpreter/Interpreter.cpp:
  95. (JSC::bytecodeOffsetForPC):
  96. * jit/JIT.cpp:
  97. (JSC::ctiPatchNearCallByReturnAddress):
  98. (JSC::ctiPatchCallByReturnAddress):
  99. * jit/JIT.h:
  100. (JSC::JIT::compileGetByIdProto):
  101. (JSC::JIT::compileGetByIdChain):
  102. (JSC::JIT::compilePutByIdTransition):
  103. (JSC::JIT::compilePatchGetArrayLength):
  104. * jit/JITPropertyAccess.cpp:
  105. (JSC::JIT::privateCompilePutByIdTransition):
  106. (JSC::JIT::patchGetByIdSelf):
  107. (JSC::JIT::patchPutByIdReplace):
  108. (JSC::JIT::privateCompilePatchGetArrayLength):
  109. (JSC::JIT::privateCompileGetByIdProto):
  110. (JSC::JIT::privateCompileGetByIdChain):
  111. * jit/JITStubs.cpp:
  112. (JSC::JITThunks::tryCachePutByID):
  113. (JSC::JITThunks::tryCacheGetByID):
  114. (JSC::StackHack::StackHack):
  115. (JSC::returnToThrowTrampoline):
  116. (JSC::throwStackOverflowError):
  117. (JSC::JITStubs::DEFINE_STUB_FUNCTION):
  118. * jit/JITStubs.h:
  119. (JSC::):
  120. (JSC::JITStackFrame::returnAddressSlot):
  121. * runtime/JSGlobalData.h:
  122. 2009-06-15 Simon Fraser <simon.fraser@apple.com>
  123. Reviewed by Mark Rowe.
  124. <rdar://problem/6974857>
  125. Define ENABLE_3D_RENDERING when building on 10.6, and move ENABLE_3D_RENDERING
  126. switch from config.h to wtf/Platform.h.
  127. * Configurations/FeatureDefines.xcconfig:
  128. * wtf/Platform.h:
  129. 2009-06-15 Gavin Barraclough <barraclough@apple.com>
  130. Reviewed by Oliver Hunt.
  131. Move repatching methods into a set of methods on a class. This will allow us to
  132. coallesce memory reprotection calls. Really, we want this class to be called
  133. PatchBuffer, we want the class PatchBuffer to be called LinkBuffer, we want both
  134. to be memblers of MacroAssembler rather then AbstractMacroAssembler, we don't
  135. want the CodeLocationFoo types anymore (they are now only really there to provide
  136. type safety, and that is completely undermined by the way we use offsets). Then
  137. the link & patch buffers should delegate the actual patching calls to the
  138. architecture-specific layer of the MacroAssembler. Landing all these changes as a
  139. sequence of patches.
  140. No performance impact.
  141. * assembler/AbstractMacroAssembler.h:
  142. (JSC::AbstractMacroAssembler::CodeLocationCall::CodeLocationCall):
  143. (JSC::AbstractMacroAssembler::CodeLocationNearCall::CodeLocationNearCall):
  144. (JSC::AbstractMacroAssembler::CodeLocationNearCall::calleeReturnAddressValue):
  145. (JSC::AbstractMacroAssembler::RepatchBuffer::RepatchBuffer):
  146. (JSC::AbstractMacroAssembler::RepatchBuffer::relink):
  147. (JSC::AbstractMacroAssembler::RepatchBuffer::repatch):
  148. (JSC::AbstractMacroAssembler::RepatchBuffer::relinkCallerToTrampoline):
  149. (JSC::AbstractMacroAssembler::RepatchBuffer::relinkCallerToFunction):
  150. (JSC::AbstractMacroAssembler::RepatchBuffer::relinkNearCallerToTrampoline):
  151. (JSC::AbstractMacroAssembler::RepatchBuffer::repatchLoadPtrToLEA):
  152. * jit/JIT.cpp:
  153. (JSC::ctiPatchNearCallByReturnAddress):
  154. (JSC::ctiPatchCallByReturnAddress):
  155. (JSC::JIT::unlinkCall):
  156. (JSC::JIT::linkCall):
  157. * jit/JITPropertyAccess.cpp:
  158. (JSC::JIT::privateCompilePutByIdTransition):
  159. (JSC::JIT::patchGetByIdSelf):
  160. (JSC::JIT::patchMethodCallProto):
  161. (JSC::JIT::patchPutByIdReplace):
  162. (JSC::JIT::privateCompilePatchGetArrayLength):
  163. (JSC::JIT::privateCompileGetByIdProto):
  164. (JSC::JIT::privateCompileGetByIdSelfList):
  165. (JSC::JIT::privateCompileGetByIdProtoList):
  166. (JSC::JIT::privateCompileGetByIdChainList):
  167. (JSC::JIT::privateCompileGetByIdChain):
  168. 2009-06-15 Gavin Barraclough <barraclough@apple.com>
  169. Reviewed by Geoff Hunt & Oliver Garen.
  170. We are currently generating two copies of the slow path for op_call for no reason. Stop that.
  171. Originally op_call used two slow paths since the first set up the pointer to the CallLinkInfo
  172. for use when linking. However this is now looked up using the return address (as we do for
  173. property accesses) so the two paths are now identical.
  174. No performance impact, reduces memory footprint.
  175. * bytecode/CodeBlock.h:
  176. * jit/JIT.cpp:
  177. (JSC::JIT::privateCompile):
  178. (JSC::JIT::linkCall):
  179. * jit/JIT.h:
  180. * jit/JITCall.cpp:
  181. (JSC::JIT::compileOpCallSlowCase):
  182. * jit/JITStubs.cpp:
  183. (JSC::JITStubs::DEFINE_STUB_FUNCTION):
  184. 2009-06-12 Dave Hyatt <hyatt@apple.com>
  185. Reviewed by Anders Carlsson.
  186. https://bugs.webkit.org/show_bug.cgi?id=26373
  187. Add a new class to Threading in wtf called ReadWriteLock that handles single writer/multiple reader locking.
  188. Provide a pthreads-only implementation of the lock for now, as this class is only going to be used
  189. on Snow Leopard at first.
  190. * wtf/Threading.h:
  191. (WTF::ReadWriteLock::impl):
  192. * wtf/ThreadingPthreads.cpp:
  193. (WTF::ReadWriteLock::ReadWriteLock):
  194. (WTF::ReadWriteLock::~ReadWriteLock):
  195. (WTF::ReadWriteLock::readLock):
  196. (WTF::ReadWriteLock::tryReadLock):
  197. (WTF::ReadWriteLock::writeLock):
  198. (WTF::ReadWriteLock::tryWriteLock):
  199. (WTF::ReadWriteLock::unlock):
  200. 2009-06-12 Oliver Hunt <oliver@apple.com>
  201. Reviewed by Geoff Garen.
  202. Make LiteralParser non-recursive
  203. Convert LiteralParser from using a simple recursive descent parser
  204. to a hand rolled PDA. Relatively simple conversion, but required
  205. modifications to MarkedArgumentBuffer to make it more suitable as
  206. a generic marked vector. I'll refactor and rename MarkedArgumentBuffer
  207. in future as there are many other cases where it will be useful to
  208. have such a class.
  209. * runtime/ArgList.h:
  210. (JSC::MarkedArgumentBuffer::MarkedArgumentBuffer):
  211. (JSC::MarkedArgumentBuffer::append):
  212. (JSC::MarkedArgumentBuffer::removeLast):
  213. (JSC::MarkedArgumentBuffer::last):
  214. * runtime/LiteralParser.cpp:
  215. (JSC::LiteralParser::parse):
  216. * runtime/LiteralParser.h:
  217. (JSC::LiteralParser::LiteralParser):
  218. (JSC::LiteralParser::tryLiteralParse):
  219. (JSC::LiteralParser::):
  220. 2009-06-12 David Levin <levin@chromium.org>
  221. Reviewed by NOBODY (build fix for windows).
  222. Adjust the exports for JSC on Windows like what was done for OSX in
  223. the previous commit.
  224. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  225. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
  226. 2009-06-12 David Levin <levin@chromium.org>
  227. Reviewed by Darin Adler.
  228. UString shouldn't create sharedBuffer for SmallStrings.
  229. https://bugs.webkit.org/show_bug.cgi?id=26360
  230. The methods changed are not used by JSC, so there is no JS perf impact. However,
  231. there is a potential DOM perf impact, so I re-ran several of the tests that
  232. I ran previously and ensured that the perf stay the same which caused me to
  233. adjust the minLengthToShare.
  234. * JavaScriptCore.exp:
  235. * runtime/UString.cpp:
  236. (JSC::UString::Rep::sharedBuffer):
  237. Determines if the buffer being shared is big enough before doing so.
  238. Previously, BaseString::sharedBuffer was called but it would only know
  239. the length of the base string (BaseString::len) which may not be the same
  240. as the string being shared (Rep::len).
  241. (JSC::UString::BaseString::sharedBuffer):
  242. This is now only be used by Rep::sharedBuffer. which does the length check.
  243. * runtime/UString.h:
  244. 2009-06-12 Dimitri Glazkov <dglazkov@chromium.org>
  245. Reviewed by Eric Seidel.
  246. https://bugs.webkit.org/show_bug.cgi?id=26191
  247. Remove xmath include in MathExtras.h, because it is not needed and also
  248. breaks VS2008 builds with TR1 turned on.
  249. * wtf/MathExtras.h: Removed xmath include.
  250. 2009-06-12 Peter Kasting <pkasting@google.com>
  251. Reviewed by Eric Seidel.
  252. * ChangeLog-2007-10-14: Change pseudonym "Don Gibson" to me (was used while Google Chrome was not public); update my email address.
  253. 2009-06-12 Kevin Ollivier <kevino@theolliviers.com>
  254. wx build fix. Adding JSONObject.cpp to the build.
  255. * JavaScriptCoreSources.bkl:
  256. 2009-06-12 Laszlo Gombos <laszlo.1.gombos@nokia.com>
  257. Reviewed by Jan Michael Alonzo.
  258. [Qt] Fix build break
  259. https://bugs.webkit.org/show_bug.cgi?id=26340
  260. * JavaScriptCore.pri: Add JSONObject.cpp to LUT files.
  261. 2009-06-11 Oliver Hunt <oliver@apple.com>
  262. Reviewed by NOBODY (build fix).
  263. Lower stringify recursion limit to deal with small windows stack.
  264. * JavaScriptCore.xcodeproj/project.pbxproj:
  265. * runtime/JSONObject.cpp:
  266. (JSC::Stringifier::):
  267. 2009-06-11 Laszlo Gombos <laszlo.1.gombos@nokia.com>
  268. Reviewed by Holger Freyther.
  269. Fix compilation warnings
  270. <https://bugs.webkit.org/show_bug.cgi?id=26015>
  271. * wtf/ThreadingNone.cpp:
  272. (WTF::ThreadCondition::wait): Fix compilation warning.
  273. (WTF::ThreadCondition::timedWait): Ditto.
  274. 2009-06-10 Brent Fulgham <bfulgham@webkit.org>
  275. Build fix for Windows target.
  276. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  277. Correct missing </File> tag after @r44550 that prevents the
  278. project from being loaded in the Visual Studio IDE.
  279. 2009-06-09 Gavin Barraclough <barraclough@apple.com>
  280. Rubber Stamped by Mark Rowe.
  281. Tidy up a couple of comments.
  282. * assembler/ARMv7Assembler.h:
  283. Fix date in copyright, neaten up a couple of comments.
  284. * assembler/MacroAssemblerARMv7.h:
  285. Fix date in copyright.
  286. 2009-06-07 Oliver Hunt <oliver@apple.com>
  287. Reviewed by Sam Weinig.
  288. Bug 26249: Support JSON.stringify
  289. <https://bugs.webkit.org/show_bug.cgi?id=26249>
  290. Implement JSON.stringify. This patch handles all the semantics of the ES5
  291. JSON.stringify function, including replacer functions and arrays and both
  292. string and numeric gap arguments.
  293. Currently uses a clamped recursive algorithm basically identical to the spec
  294. description but with a few minor tweaks for performance and corrected semantics
  295. discussed in the es-discuss mailing list.
  296. * DerivedSources.make:
  297. * GNUmakefile.am:
  298. * JavaScriptCore.pri:
  299. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  300. * JavaScriptCore.xcodeproj/project.pbxproj:
  301. * interpreter/CallFrame.h:
  302. (JSC::ExecState::jsonTable):
  303. * runtime/CommonIdentifiers.h:
  304. add toJSON to the list of common identifiers
  305. * runtime/JSGlobalData.cpp:
  306. (JSC::JSGlobalData::JSGlobalData):
  307. (JSC::JSGlobalData::~JSGlobalData):
  308. * runtime/JSGlobalData.h:
  309. * runtime/JSGlobalObject.cpp:
  310. (JSC::JSGlobalObject::reset):
  311. Add support for the JSON object lookup table
  312. * runtime/JSONObject.cpp: Added.
  313. (JSC::):
  314. (JSC::JSONObject::getOwnPropertySlot):
  315. (JSC::Stringifier::):
  316. (JSC::Stringifier::Stringifier):
  317. (JSC::Stringifier::stringify):
  318. (JSC::Stringifier::appendString):
  319. (JSC::Stringifier::StringKeyGenerator::StringKeyGenerator):
  320. (JSC::Stringifier::StringKeyGenerator::getKey):
  321. (JSC::Stringifier::IntKeyGenerator::IntKeyGenerator):
  322. (JSC::Stringifier::IntKeyGenerator::getKey):
  323. These KeyGenerator classes are used to abstract away the lazy evaluation of keys for
  324. toJSON and replacer functions.
  325. (JSC::Stringifier::toJSONValue):
  326. (JSC::Stringifier::stringifyArray):
  327. (JSC::Stringifier::stringifyObject):
  328. (JSC::JSONProtoFuncStringify):
  329. * runtime/JSONObject.h: Added.
  330. (JSC::JSONObject:::JSObject):
  331. (JSC::JSONObject::classInfo):
  332. (JSC::JSONObject::createStructure):
  333. 2009-06-09 Gavin Barraclough <barraclough@apple.com>
  334. Reviewed by Geoff Garen.
  335. Enable JIT_OPTIMIZE_CALL & JIT_OPTIMIZE_METHOD_CALLS on ARMv7 platforms.
  336. These optimizations function correctly with no further changes.
  337. * wtf/Platform.h:
  338. Change to enable JIT_OPTIMIZE_CALL & JIT_OPTIMIZE_METHOD_CALLS.
  339. 2009-06-09 Gavin Barraclough <barraclough@apple.com>
  340. Not Reviewed, build fix.
  341. * assembler/MacroAssemblerARMv7.h:
  342. 2009-06-09 Gavin Barraclough <barraclough@apple.com>
  343. Reviewed by Geoff Garen.
  344. Enable JIT_OPTIMIZE_ARITHMETIC on ARMv7 platforms.
  345. Temporarily split support for 'branchTruncateDoubleToInt32' onto its own switch
  346. ('supportsFloatingPointTruncate'). See comment in MacroAssemblerARMv7, we need
  347. to work out wherther we are going to be able to support the current interface on
  348. all platforms, or whether this should be refactored.
  349. * assembler/MacroAssemblerARMv7.h:
  350. (JSC::MacroAssemblerARMv7::supportsFloatingPoint):
  351. Add implementation of supportsFloatingPointTruncate (returns true).
  352. (JSC::MacroAssemblerARMv7::supportsFloatingPointTruncate):
  353. Add implementation of supportsFloatingPointTruncate (returns false).
  354. (JSC::MacroAssemblerARMv7::loadDouble):
  355. (JSC::MacroAssemblerARMv7::storeDouble):
  356. (JSC::MacroAssemblerARMv7::addDouble):
  357. (JSC::MacroAssemblerARMv7::subDouble):
  358. (JSC::MacroAssemblerARMv7::mulDouble):
  359. (JSC::MacroAssemblerARMv7::convertInt32ToDouble):
  360. (JSC::MacroAssemblerARMv7::branchDouble):
  361. Implement FP code genertion operations.
  362. * assembler/MacroAssemblerX86.h:
  363. (JSC::MacroAssemblerX86::supportsFloatingPointTruncate):
  364. Add implementation of supportsFloatingPointTruncate (returns true).
  365. * assembler/MacroAssemblerX86_64.h:
  366. (JSC::MacroAssemblerX86_64::supportsFloatingPointTruncate):
  367. Add implementation of supportsFloatingPointTruncate (returns true).
  368. * jit/JITArithmetic.cpp:
  369. (JSC::JIT::emit_op_rshift):
  370. Changed to call supportsFloatingPointTruncate().
  371. (JSC::JIT::emitSlow_op_rshift):
  372. Changed to call supportsFloatingPointTruncate().
  373. * wtf/Platform.h:
  374. Change to enable JIT_OPTIMIZE_ARITHMETIC.
  375. 2009-06-09 Gavin Barraclough <barraclough@apple.com>
  376. Reviewed by Mark Rowe & Geoff Garen.
  377. Enable JIT_OPTIMIZE_PROPERTY_ACCESS on ARMv7 platforms.
  378. Firm up interface for planting load intructions that will be repatched by
  379. repatchLoadPtrToLEA(). This method should now no longer be applied to just
  380. any loadPtr instruction.
  381. * assembler/MacroAssemblerARMv7.h:
  382. (JSC::MacroAssemblerARMv7::loadPtrWithPatchToLEA):
  383. Implement loadPtrWithPatchToLEA interface (plants a load with a fixed width address).
  384. (JSC::MacroAssemblerARMv7::move):
  385. (JSC::MacroAssemblerARMv7::nearCall):
  386. (JSC::MacroAssemblerARMv7::call):
  387. (JSC::MacroAssemblerARMv7::moveWithPatch):
  388. (JSC::MacroAssemblerARMv7::tailRecursiveCall):
  389. Switch to use common method 'moveFixedWidthEncoding()' to perform fixed width (often patchable) loads.
  390. (JSC::MacroAssemblerARMv7::moveFixedWidthEncoding):
  391. Move an immediate to a register, always plants movT3/movt instruction pair.
  392. * assembler/MacroAssemblerX86.h:
  393. (JSC::MacroAssemblerX86::loadPtrWithPatchToLEA):
  394. Implement loadPtrWithPatchToLEA interface (just a regular 32-bit load on x86).
  395. * assembler/MacroAssemblerX86_64.h:
  396. (JSC::MacroAssemblerX86_64::loadPtrWithPatchToLEA):
  397. Implement loadPtrWithPatchToLEA interface (just a regular 64-bit load on x86_64).
  398. * jit/JITPropertyAccess.cpp:
  399. (JSC::JIT::compileGetByIdHotPath):
  400. (JSC::JIT::emit_op_put_by_id):
  401. * wtf/Platform.h:
  402. Change to enable JIT_OPTIMIZE_PROPERTY_ACCESS.
  403. 2009-06-08 Gavin Barraclough <barraclough@apple.com>
  404. Reviewed by Geoff Garen.
  405. Enable JS language JIT for ARM thumb2 platforms. Add ARMv7 specific
  406. asm & constants, add appropriate configuration switches to Platform.h.
  407. Landing this disabled until jump linking is completed (see YARR jit patch).
  408. * assembler/MacroAssemblerARMv7.h:
  409. (JSC::MacroAssemblerARMv7::load32):
  410. Fix: should load pointer with ImmPtr not Imm32.
  411. (JSC::MacroAssemblerARMv7::store32):
  412. Fix: should load pointer with ImmPtr not Imm32.
  413. (JSC::MacroAssemblerARMv7::move):
  414. Fix: When moving an Imm32 that is actually a pointer, should call movT3()
  415. not mov(), to ensure code generation is repeatable (for exception handling).
  416. * jit/JIT.cpp:
  417. (JSC::JIT::privateCompileCTIMachineTrampolines):
  418. Disable JIT_OPTIMIZE_NATIVE_CALL specific code generation if the optimization is not enabled.
  419. * jit/JIT.h:
  420. Add ARMv7 specific values of constants & register names.
  421. * jit/JITInlineMethods.h:
  422. (JSC::JIT::preverveReturnAddressAfterCall):
  423. (JSC::JIT::restoreReturnAddressBeforeReturn):
  424. (JSC::JIT::restoreArgumentReferenceForTrampoline):
  425. Implement for ARMv7 (move value to/from lr).
  426. * jit/JITStubs.cpp:
  427. Add JIT entry/thow trampolines, add macro to add thunk wrapper around stub routines.
  428. * jit/JITStubs.h:
  429. (JSC::JITStackFrame::returnAddressSlot):
  430. Add ARMv7 stack frame object.
  431. * wtf/Platform.h:
  432. Add changes necessary to allow JIT to build on this platform, disabled.
  433. 2009-06-08 Mark Rowe <mrowe@apple.com>
  434. Speculative GTK build fix.
  435. * wtf/DateMath.cpp:
  436. 2009-06-08 Gavin Barraclough <barraclough@apple.com>
  437. Reviewed by Mark Rowe.
  438. Previous patch caused a regression.
  439. Restructure so no new (empty, inline) function calls are added on x86.
  440. * jit/ExecutableAllocator.h:
  441. (JSC::ExecutableAllocator::makeWritable):
  442. (JSC::ExecutableAllocator::makeExecutable):
  443. (JSC::ExecutableAllocator::reprotectRegion):
  444. (JSC::ExecutableAllocator::cacheFlush):
  445. 2009-06-08 Dimitri Glazkov <dglazkov@chromium.org>
  446. Unreviewed, GTK build fix (thanks, bdash).
  447. * GNUmakefile.am: Moved DateMath with all other wtf kin.
  448. 2009-06-08 Gavin Barraclough <barraclough@apple.com>
  449. Reviewed by Geoff Garen.
  450. Add (incomplete) support to YARR for running with the jit enabled
  451. on Arm thumb2 platforms. Adds new Assembler/MacroAssembler classes,
  452. along with cache flushing support, tweaks to MacroAssemblerCodePtr
  453. to support decorated thumb code pointers, and new enter/exit code
  454. to YARR jit for the platform.
  455. Support for this platform is still under development - the assembler
  456. currrently only supports planting and linking jumps with a 16Mb range.
  457. As such, initially commiting in a disabled state.
  458. * JavaScriptCore.xcodeproj/project.pbxproj:
  459. Add new assembler files.
  460. * assembler/ARMv7Assembler.h: Added.
  461. Add new Assembler.
  462. * assembler/AbstractMacroAssembler.h:
  463. Tweaks to ensure sizes of pointer values planted in JIT code do not change.
  464. * assembler/MacroAssembler.h:
  465. On ARMv7 platforms use MacroAssemblerARMv7.
  466. * assembler/MacroAssemblerARMv7.h: Added.
  467. Add new MacroAssembler.
  468. * assembler/MacroAssemblerCodeRef.h:
  469. (JSC::FunctionPtr::FunctionPtr):
  470. Add better ASSERT.
  471. (JSC::ReturnAddressPtr::ReturnAddressPtr):
  472. Add better ASSERT.
  473. (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
  474. On ARMv7, MacroAssemblerCodePtr's mush be 'decorated' with a low bit set,
  475. to indicate to the processor that the code is thumb code, not traditional
  476. 32-bit ARM.
  477. (JSC::MacroAssemblerCodePtr::dataLocation):
  478. On ARMv7, decoration must be removed.
  479. * jit/ExecutableAllocator.h:
  480. (JSC::ExecutableAllocator::makeWritable):
  481. Reformatted, no change.
  482. (JSC::ExecutableAllocator::makeExecutable):
  483. When marking code executable also cache flush it, where necessary.
  484. (JSC::ExecutableAllocator::MakeWritable::MakeWritable):
  485. Only use the null implementation of this class if both !ASSEMBLER_WX_EXCLUSIVE
  486. and running on x86(_64) - on other platforms we may also need ensure that
  487. makeExecutable is called at the end to flush caches.
  488. (JSC::ExecutableAllocator::reprotectRegion):
  489. Reformatted, no change.
  490. (JSC::ExecutableAllocator::cacheFlush):
  491. Cache flush a region of memory, or platforms where this is necessary.
  492. * wtf/Platform.h:
  493. Add changes necessary to allow YARR jit to build on this platform, disabled.
  494. * yarr/RegexJIT.cpp:
  495. (JSC::Yarr::RegexGenerator::generateEnter):
  496. (JSC::Yarr::RegexGenerator::generateReturn):
  497. Add support to these methods for ARMv7.
  498. 2009-06-08 Dimitri Glazkov <dglazkov@chromium.org>
  499. Unreviewed, fix my previous fix.
  500. * runtime/DateInstance.cpp:
  501. (JSC::DateInstance::msToGregorianDateTime): Use WTF namespace qualifier to
  502. disambiguate func signatures.
  503. 2009-06-08 Mark Rowe <mrowe@apple.com>
  504. Attempt to fix the Tiger build.
  505. * wtf/Platform.h: Only test the value of the macro once we know it is defined.
  506. 2009-06-08 Dimitri Glazkov <dglazkov@chromium.org>
  507. Unreviewed, another Windows build fix.
  508. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  509. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
  510. 2009-06-08 Dimitri Glazkov <dglazkov@chromium.org>
  511. Unreviewed, projectile-fixing Windows build.
  512. * runtime/DateConversion.cpp: Added StringExtras include.
  513. * wtf/DateMath.cpp: Replaced math with algorithm include (looking for std::min def for Windows).
  514. 2009-06-08 Dimitri Glazkov <dglazkov@chromium.org>
  515. Unreviewed, Windows build fix.
  516. * runtime/DateConstructor.cpp: Changed to use WTF namespace.
  517. * runtime/DateConversion.cpp: Added UString include.
  518. * runtime/DateInstance.cpp: Changed to use WTF namespace.
  519. * wtf/DateMath.cpp: Added math include.
  520. 2009-06-08 Dimitri Glazkov <dglazkov@chromium.org>
  521. Reviewed by Eric Seidel.
  522. https://bugs.webkit.org/show_bug.cgi?id=26238
  523. Move most of runtime/DateMath functions to wtf/DateMath, and split off conversion-related
  524. helpers to DateConversion.
  525. * AllInOneFile.cpp: Changed DateMath->DateConversion.
  526. * GNUmakefile.am: Ditto and added DateMath.
  527. * JavaScriptCore.exp: Ditto.
  528. * JavaScriptCore.pri: Ditto.
  529. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
  530. * JavaScriptCore.vcproj/WTF/WTF.vcproj: Added DateMath.
  531. * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
  532. * JavaScriptCoreSources.bkl: Ditto.
  533. * pcre/pcre_exec.cpp: Changed to use DateMath.
  534. * profiler/ProfileNode.cpp:
  535. (JSC::getCount): Changed to use DateConversion.
  536. * runtime/DateConstructor.cpp: Ditto.
  537. * runtime/DateConversion.cpp: Copied from JavaScriptCore/runtime/DateMath.cpp.
  538. (JSC::parseDate): Refactored to use null-terminated characters as input.
  539. * runtime/DateConversion.h: Copied from JavaScriptCore/runtime/DateMath.h.
  540. * runtime/DateInstance.cpp: Changed to use wtf/DateMath.
  541. * runtime/DateInstance.h: Ditto.
  542. * runtime/DateMath.cpp: Removed.
  543. * runtime/DateMath.h: Removed.
  544. * runtime/DatePrototype.cpp: Ditto.
  545. * runtime/InitializeThreading.cpp: Ditto.
  546. * wtf/DateMath.cpp: Copied from JavaScriptCore/runtime/DateMath.cpp.
  547. * wtf/DateMath.h: Copied from JavaScriptCore/runtime/DateMath.h.
  548. 2009-06-08 Steve Falkenburg <sfalken@apple.com>
  549. Windows build fix.
  550. * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
  551. 2009-06-07 David Kilzer <ddkilzer@apple.com>
  552. Make JavaScriptCore compile for iPhone and iPhone Simulator
  553. Reviewed by Gavin Barraclough.
  554. * Configurations/Base.xcconfig: Split GCC_ENABLE_OBJC_GC on
  555. $(REAL_PLATFORM_NAME). Added $(ARCHS_UNIVERSAL_IPHONE_OS) to
  556. VALID_ARCHS. Added REAL_PLATFORM_NAME_iphoneos,
  557. REAL_PLATFORM_NAME_iphonesimulator, HAVE_DTRACE_iphoneos and
  558. HAVE_DTRACE_iphonesimulator variables.
  559. * Configurations/DebugRelase.xcconfig: Split ARCHS definition on
  560. $(REAL_PLATFORM_NAME).
  561. * Configurations/JavaScriptCore.xcconfig: Added
  562. EXPORTED_SYMBOLS_FILE_armv6 and EXPORTED_SYMBOLS_FILE_armv7
  563. variables. Split OTHER_LDFLAGS into OTHER_LDFLAGS_BASE and
  564. OTHER_LDFLAGS_$(REAL_PLATFORM_NAME) since CoreServices.framework
  565. is only linked to on Mac OS X.
  566. * JavaScriptCore.xcodeproj/project.pbxproj: Removed references
  567. to CoreServices.framework since it's linked using OTHER_LDFLAGS
  568. in JavaScriptCore.xcconfig.
  569. * profiler/ProfilerServer.mm: Added #import for iPhone
  570. Simulator.
  571. (-[ProfilerServer init]): Conditionalize use of
  572. NSDistributedNotificationCenter to non-iPhone or iPhone
  573. Simulator.
  574. * wtf/FastMalloc.cpp:
  575. (WTF::TCMallocStats::): Build fix for iPhone and iPhone
  576. Simulator.
  577. * wtf/Platform.h: Defined PLATFORM(IPHONE) and
  578. PLATFORM(IPHONE_SIMULATOR).
  579. * wtf/ThreadingPthreads.cpp:
  580. (WTF::setThreadNameInternal): Build fix for iPhone and iPhone
  581. Simulator.
  582. 2009-06-08 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
  583. Reviewed by Simon Hausmann.
  584. [Qt] Use $QMAKE_PATH_SEP instead of hardcoded / to fix Windows build
  585. * JavaScriptCore.pri:
  586. * JavaScriptCore.pro:
  587. * jsc.pro:
  588. 2009-06-07 Gavin Barraclough <barraclough@apple.com>
  589. RS by Sam Weinig.
  590. Remove bonus bogus \n from last commit.
  591. * jit/JITStubs.cpp:
  592. (JSC::):
  593. 2009-06-07 Gavin Barraclough <barraclough@apple.com>
  594. Reviewed by Sam Weinig.
  595. Change the implementation of op_throw so the stub function always modifies its
  596. return address - if it doesn't find a 'catch' it will switch to a trampoline
  597. to force a return from JIT execution. This saves memory, by avoiding the need
  598. for a unique return for every op_throw.
  599. * jit/JITOpcodes.cpp:
  600. (JSC::JIT::emit_op_throw):
  601. JITStubs::cti_op_throw now always changes its return address,
  602. remove return code generated after the stub call (this is now
  603. handled by ctiOpThrowNotCaught).
  604. * jit/JITStubs.cpp:
  605. (JSC::):
  606. Add ctiOpThrowNotCaught definitions.
  607. (JSC::JITStubs::DEFINE_STUB_FUNCTION):
  608. Change cti_op_throw to always change its return address.
  609. * jit/JITStubs.h:
  610. Add ctiOpThrowNotCaught declaration.
  611. 2009-06-05 Gavin Barraclough <barraclough@apple.com>
  612. Rudder stamped by Sam Weinig.
  613. Add missing ASSERT.
  614. * assembler/X86Assembler.h:
  615. (JSC::X86Assembler::getRelocatedAddress):
  616. 2009-06-05 Gavin Barraclough <barraclough@apple.com>
  617. Reviewed by Sam Weinig.
  618. Switch storePtrWithPatch to take the initial immediate value as an argument.
  619. * assembler/MacroAssemblerX86.h:
  620. (JSC::MacroAssemblerX86::storePtrWithPatch):
  621. * assembler/MacroAssemblerX86_64.h:
  622. (JSC::MacroAssemblerX86_64::storePtrWithPatch):
  623. * jit/JITOpcodes.cpp:
  624. (JSC::JIT::emit_op_jsr):
  625. 2009-06-05 Gavin Barraclough <barraclough@apple.com>
  626. Reviewed by Sam Weinig.
  627. Remove patchLength..tByIdExternalLoadPrefix magic numbers from JIT.h.
  628. These aren't really suitable values to be tracking within common code
  629. of the JIT, since they are not (and realistically cannot) be checked
  630. by ASSERTs, as the other repatch offsets are. Move this functionality
  631. (skipping the REX prefix when patching load instructions to LEAs on
  632. x86-64) into the X86Assembler.
  633. * assembler/AbstractMacroAssembler.h:
  634. (JSC::AbstractMacroAssembler::CodeLocationInstruction::repatchLoadPtrToLEA):
  635. * assembler/X86Assembler.h:
  636. (JSC::X86Assembler::repatchLoadPtrToLEA):
  637. * jit/JIT.h:
  638. * jit/JITPropertyAccess.cpp:
  639. (JSC::JIT::patchGetByIdSelf):
  640. (JSC::JIT::patchPutByIdReplace):
  641. 2009-06-05 Shinichiro Hamaji <hamaji@chromium.org>
  642. Bug 26160: Compile fails in MacOSX when GNU fileutils are installed
  643. <https://bugs.webkit.org/show_bug.cgi?id=26160>
  644. Reviewed by Alexey Proskuryakov.
  645. Use /bin/ln instead of ln for cases where this command is used with -h option.
  646. As this option is not supported by GNU fileutils, this change helps users
  647. who have GNU fileutils in their PATH.
  648. * JavaScriptCore.xcodeproj/project.pbxproj:
  649. 2009-06-05 Gavin Barraclough <barraclough@apple.com>
  650. Reviewed by Oliver Hunt.
  651. Remove DoubleNotEqual floating point comparison condition for now -
  652. it is not used, and it is unclear the semantics are correct (I think
  653. this comparison would actually give you not-equal-or-unordered, which
  654. might be what is wanted... we can revisit this interface & get it
  655. right when required).
  656. Also, fix asserts in branchArith32 ops. All adds & subs can check
  657. for Signed, multiply only sets OF so can only check for overflow.
  658. * assembler/MacroAssemblerX86Common.h:
  659. (JSC::MacroAssemblerX86Common::):
  660. (JSC::MacroAssemblerX86Common::branchAdd32):
  661. (JSC::MacroAssemblerX86Common::branchMul32):
  662. (JSC::MacroAssemblerX86Common::branchSub32):
  663. 2009-06-05 Gavin Barraclough <barraclough@apple.com>
  664. Reviewed by Oliver Hunt.
  665. Minor tidy up in JITStubs.
  666. * jit/JITStubs.cpp:
  667. (JSC::StackHack::StackHack):
  668. * jit/JITStubs.h:
  669. 2009-06-05 Koen Kooi <koen@dominion.thruhere.net>
  670. Reviewed by Xan Lopez.
  671. Build fix for glib unicode backend.
  672. * wtf/unicode/glib/UnicodeMacrosFromICU.h:
  673. 2009-06-05 Gavin Barraclough <barraclough@apple.com>
  674. Reviewed by Oliver Hunt.
  675. 3 tiny cleanups:
  676. * assembler/MacroAssemblerX86.h:
  677. * assembler/MacroAssemblerX86_64.h:
  678. (JSC::MacroAssemblerX86_64::storePtrWithPatch):
  679. store*() methods should take an ImplicitAddress, rather than an Address.
  680. * assembler/X86Assembler.h:
  681. Make patchPointer private.
  682. * jit/JITOpcodes.cpp:
  683. (JSC::JIT::emit_op_ret):
  684. Remove empty line at end of function.
  685. 2009-06-05 Gavin Barraclough <barraclough@apple.com>
  686. Reviewed by Oliver Hunt.
  687. Encapsulate many uses of void* in the assembler & jit with types that provide
  688. more semantic information. The new types are:
  689. * MacroAssemblerCodePtr - this wraps a pointer into JIT generated code.
  690. * FunctionPtr - this wraps a pointer to a C/C++ function in JSC.
  691. * ReturnAddressPtr - this wraps a return address resulting from a 'call' instruction.
  692. Wrapping these types allows for stronger type-checking than is possible with everything
  693. represented a void*. For example, it is now enforced by the type system that near
  694. calls can only be linked to JIT code and not to C functions in JSC (this was previously
  695. required, but could not be enforced on the interface).
  696. * assembler/AbstractMacroAssembler.h:
  697. (JSC::AbstractMacroAssembler::CodeLocationCommon::CodeLocationCommon):
  698. (JSC::AbstractMacroAssembler::CodeLocationCommon::dataLocation):
  699. (JSC::AbstractMacroAssembler::CodeLocationCommon::executableAddress):
  700. (JSC::AbstractMacroAssembler::CodeLocationCommon::reset):
  701. (JSC::AbstractMacroAssembler::CodeLocationInstruction::repatchLoadToLEA):
  702. (JSC::AbstractMacroAssembler::CodeLocationInstruction::CodeLocationInstruction):
  703. (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForSwitch):
  704. (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForExceptionHandler):
  705. (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForJSR):
  706. (JSC::AbstractMacroAssembler::CodeLocationLabel::operator!):
  707. (JSC::AbstractMacroAssembler::CodeLocationLabel::reset):
  708. (JSC::AbstractMacroAssembler::CodeLocationLabel::CodeLocationLabel):
  709. (JSC::AbstractMacroAssembler::CodeLocationLabel::getJumpDestination):
  710. (JSC::AbstractMacroAssembler::CodeLocationJump::relink):
  711. (JSC::AbstractMacroAssembler::CodeLocationJump::CodeLocationJump):
  712. (JSC::AbstractMacroAssembler::CodeLocationCall::relink):
  713. (JSC::AbstractMacroAssembler::CodeLocationCall::calleeReturnAddressValue):
  714. (JSC::AbstractMacroAssembler::CodeLocationCall::CodeLocationCall):
  715. (JSC::AbstractMacroAssembler::CodeLocationNearCall::relink):
  716. (JSC::AbstractMacroAssembler::CodeLocationNearCall::calleeReturnAddressValue):
  717. (JSC::AbstractMacroAssembler::CodeLocationNearCall::CodeLocationNearCall):
  718. (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::repatch):
  719. (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::CodeLocationDataLabel32):
  720. (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::repatch):
  721. (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::CodeLocationDataLabelPtr):
  722. (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToTrampoline):
  723. (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToFunction):
  724. (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkNearCallerToTrampoline):
  725. (JSC::AbstractMacroAssembler::ProcessorReturnAddress::addressForLookup):
  726. (JSC::AbstractMacroAssembler::trampolineAt):
  727. (JSC::AbstractMacroAssembler::PatchBuffer::link):
  728. (JSC::AbstractMacroAssembler::PatchBuffer::performFinalization):
  729. (JSC::::CodeLocationCommon::instructionAtOffset):
  730. (JSC::::CodeLocationCommon::labelAtOffset):
  731. (JSC::::CodeLocationCommon::jumpAtOffset):
  732. (JSC::::CodeLocationCommon::callAtOffset):
  733. (JSC::::CodeLocationCommon::nearCallAtOffset):
  734. (JSC::::CodeLocationCommon::dataLabelPtrAtOffset):
  735. (JSC::::CodeLocationCommon::dataLabel32AtOffset):
  736. * assembler/MacroAssemblerCodeRef.h:
  737. (JSC::FunctionPtr::FunctionPtr):
  738. (JSC::FunctionPtr::value):
  739. (JSC::FunctionPtr::executableAddress):
  740. (JSC::ReturnAddressPtr::ReturnAddressPtr):
  741. (JSC::ReturnAddressPtr::value):
  742. (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
  743. (JSC::MacroAssemblerCodePtr::executableAddress):
  744. (JSC::MacroAssemblerCodePtr::dataLocation):
  745. (JSC::MacroAssemblerCodeRef::MacroAssemblerCodeRef):
  746. * assembler/X86Assembler.h:
  747. (JSC::X86Assembler::patchPointerForCall):
  748. * jit/JIT.cpp:
  749. (JSC::ctiPatchNearCallByReturnAddress):
  750. (JSC::ctiPatchCallByReturnAddress):
  751. (JSC::JIT::privateCompile):
  752. (JSC::JIT::privateCompileCTIMachineTrampolines):
  753. * jit/JIT.h:
  754. (JSC::JIT::compileCTIMachineTrampolines):
  755. * jit/JITCall.cpp:
  756. (JSC::JIT::compileOpCall):
  757. * jit/JITCode.h:
  758. (JSC::JITCode::operator !):
  759. (JSC::JITCode::addressForCall):
  760. (JSC::JITCode::offsetOf):
  761. (JSC::JITCode::execute):
  762. (JSC::JITCode::size):
  763. (JSC::JITCode::HostFunction):
  764. * jit/JITInlineMethods.h:
  765. (JSC::JIT::emitNakedCall):
  766. * jit/JITPropertyAccess.cpp:
  767. (JSC::JIT::privateCompilePutByIdTransition):
  768. (JSC::JIT::patchGetByIdSelf):
  769. (JSC::JIT::patchPutByIdReplace):
  770. (JSC::JIT::privateCompilePatchGetArrayLength):
  771. (JSC::JIT::privateCompileGetByIdProto):
  772. (JSC::JIT::privateCompileGetByIdChain):
  773. * jit/JITStubs.cpp:
  774. (JSC::JITThunks::JITThunks):
  775. (JSC::JITThunks::tryCachePutByID):
  776. (JSC::JITThunks::tryCacheGetByID):
  777. (JSC::JITStubs::DEFINE_STUB_FUNCTION):
  778. * jit/JITStubs.h:
  779. (JSC::JITThunks::ctiArrayLengthTrampoline):
  780. (JSC::JITThunks::ctiStringLengthTrampoline):
  781. (JSC::JITThunks::ctiVirtualCallPreLink):
  782. (JSC::JITThunks::ctiVirtualCallLink):
  783. (JSC::JITThunks::ctiVirtualCall):
  784. (JSC::JITThunks::ctiNativeCallThunk):
  785. * yarr/RegexJIT.h:
  786. (JSC::Yarr::RegexCodeBlock::operator!):
  787. (JSC::Yarr::RegexCodeBlock::execute):
  788. 2009-06-05 Antti Koivisto <antti@apple.com>
  789. Try to unbreak Windows build.
  790. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  791. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def:
  792. 2009-06-03 Antti Koivisto <antti@apple.com>
  793. Reviewed by Dave Kilzer.
  794. https://bugs.webkit.org/show_bug.cgi?id=13128
  795. Safari not obeying cache header
  796. Export JSC::parseDate()
  797. * JavaScriptCore.exp:
  798. * JavaScriptCore.xcodeproj/project.pbxproj:
  799. 2009-06-04 Oliver Hunt <oliver@apple.com>
  800. Reviewed by Gavin Barraclough.
  801. Bug in property caching of getters and setters.
  802. Make sure that the transition logic accounts for getters and setters.
  803. If we don't we end up screwing up the transition tables so that some
  804. transitions will start incorrectly believing that they need to check
  805. for getters and setters.
  806. * runtime/JSObject.cpp:
  807. (JSC::JSObject::defineGetter):
  808. (JSC::JSObject::defineSetter):
  809. * runtime/JSObject.h:
  810. (JSC::):
  811. * runtime/Structure.h:
  812. 2009-06-04 Gavin Barraclough <barraclough@apple.com>
  813. Reviewed by Sam Weinig.
  814. Minor tweak to PatchBuffer, change it so it no longer holds a CodeRef, and instead
  815. holds a separate code pointer and executable pool. Since it now always holds its
  816. own copy of the code size, and to simplify the construction sequence, it's neater
  817. this way.
  818. * assembler/AbstractMacroAssembler.h:
  819. (JSC::AbstractMacroAssembler::PatchBuffer::PatchBuffer):
  820. (JSC::AbstractMacroAssembler::PatchBuffer::finalizeCode):
  821. (JSC::AbstractMacroAssembler::PatchBuffer::code):
  822. (JSC::AbstractMacroAssembler::PatchBuffer::performFinalization):
  823. 2009-06-04 Gavin Barraclough <barraclough@apple.com>
  824. Reviewed by Oliver Hunt.
  825. Remove 'JIT_STUB_ARGUMENT_STACK' this is unused and untested.
  826. This just leaves JIT_STUB_ARGUMENT_REGISTER and JIT_STUB_ARGUMENT_VA_LIST.
  827. Since JIT_STUB_ARGUMENT_REGISTER is the sensible configuration on most platforms,
  828. remove this define and make this the default behaviour.
  829. Platforms must now define JIT_STUB_ARGUMENT_VA_LIST to get crazy va_list voodoo,
  830. if they so desire.
  831. (Refactoring of #ifdefs only, no functional change, no performance impact.)
  832. * jit/JIT.h:
  833. * jit/JITInlineMethods.h:
  834. (JSC::JIT::restoreArgumentReference):
  835. (JSC::JIT::restoreArgumentReferenceForTrampoline):
  836. * jit/JITStubs.cpp:
  837. (JSC::):
  838. * jit/JITStubs.h:
  839. * wtf/Platform.h:
  840. 2009-06-04 Gavin Barraclough <barraclough@apple.com>
  841. Rubber stamped by Sam Weinig.
  842. * jit/JITArithmetic.cpp:
  843. Remove some redundant typedefs, unused since arithmetic was added to the MacroAssembler interface.
  844. 2009-06-04 Brent Fulgham <bfulgham@webkit.org>
  845. Build fix due to header include problem.
  846. * interpreter/Interpreter.h: Remove wtf from includes so that
  847. compile can find the headers in expected places.
  848. 2009-06-04 Zoltan Horvath <hzoltan@inf.u-szeged.hu>
  849. Reviewed by Darin Adler.
  850. HashTable class (JavaScriptCore/wtf/HashTable.h) doesn't instantiated by 'new', so
  851. inheritance was removed. HashTable struct has been instantiated by operator new in
  852. JSGlobalData.cpp:106.
  853. HashTable couldn't inherited from FastAllocBase since struct with inheritance is
  854. no longer POD, so HashTable struct has been instantiated by fastNew, destroyed by
  855. fastDelete.
  856. * interpreter/Interpreter.h:
  857. * runtime/JSGlobalData.cpp:
  858. (JSC::JSGlobalData::JSGlobalData):
  859. (JSC::JSGlobalData::~JSGlobalData):
  860. * wtf/HashTable.h:
  861. 2009-06-04 Gavin Barraclough <barraclough@apple.com>
  862. Reviewed by Oliver Hunt.
  863. Wrap the code that plants pushes/pops planted by JIT in explanatorily named
  864. methods; move property storage reallocation into a standard stub function.
  865. ~No performance impact (possible <1% progression on x86-64, likely just noise).
  866. * jit/JIT.cpp:
  867. (JSC::JIT::privateCompile):
  868. (JSC::JIT::privateCompileCTIMachineTrampolines):
  869. Wrap calls to push/pop.
  870. * jit/JIT.h:
  871. Declare the new wrapper methods.
  872. * jit/JITInlineMethods.h:
  873. (JSC::JIT::preverveReturnAddressAfterCall):
  874. (JSC::JIT::restoreReturnAddressBeforeReturn):
  875. Define the new wrapper methods.
  876. * jit/JITOpcodes.cpp:
  877. (JSC::JIT::emit_op_end):
  878. (JSC::JIT::emit_op_ret):
  879. Wrap calls to push/pop.
  880. * jit/JITPropertyAccess.cpp:
  881. (JSC::JIT::privateCompilePutByIdTransition):
  882. Move property storage reallocation into a standard stub function.
  883. * jit/JITStubs.cpp:
  884. (JSC::JITStubs::DEFINE_STUB_FUNCTION):
  885. * jit/JITStubs.h:
  886. (JSC::JITStubs::):
  887. 2009-06-04 Laszlo Gombos <laszlo.1.gombos@nokia.com>
  888. Reviewed by Ariya Hidayat.
  889. [Qt] Single-threaded QtWebKit configuration
  890. <https://bugs.webkit.org/show_bug.cgi?id=26015>
  891. * JavaScriptCore.pri: Use ThreadingNone.cpp instead of
  892. ThreadingQt.cpp and make sure ENABLE_JSC_MULTIPLE_THREADS is turned off
  893. when ENABLE_SINGLE_THREADED is tuned on
  894. * wtf/ThreadingNone.cpp:
  895. (WTF::ThreadCondition::wait): Fix compilation warning.
  896. (WTF::ThreadCondition::timedWait): Ditto.
  897. 2009-06-02 Mark Rowe <mrowe@apple.com>
  898. Reviewed by Anders Carlsson.
  899. Remove workaround that was added to address <rdar://problem/5488678> as it no longer affects our Tiger builds.
  900. * Configurations/Base.xcconfig:
  901. 2009-06-02 Xan Lopez <xlopez@igalia.com>
  902. Reviewed by Sam Weinig.
  903. Use C-style comments in Platform.h so it can be included from C
  904. files.
  905. * wtf/Platform.h:
  906. 2009-06-02 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
  907. Rubber-stamped by Simon Hausmann.
  908. Use File::Spec->tmpdir instead of hardcoded paths for tempfile() dir
  909. This fixes the Windows-build if the user does not have a /tmp directory.
  910. * pcre/dftables:
  911. 2009-06-02 Gavin Barraclough <barraclough@apple.com>
  912. Reviewed by Oliver ">>" Hunt.
  913. emitSlow_op_rshift is linking the wrong number of slow cases, if !supportsFloatingPoint().
  914. Fixerate, and refactor/comment the code a little to make it clearer what is going on.
  915. * jit/JITArithmetic.cpp:
  916. (JSC::JIT::emit_op_rshift):
  917. (JSC::JIT::emitSlow_op_rshift):
  918. 2009-06-01 Gavin Barraclough <barraclough@apple.com>
  919. Reviewed by NOBODY - speculative windows build fix (errm, for the other patch!).
  920. * jit/JITStubs.cpp:
  921. (JSC::):
  922. 2009-06-01 Gavin Barraclough <barraclough@apple.com>
  923. Reviewed by NOBODY - speculative windows build fix.
  924. * assembler/AbstractMacroAssembler.h:
  925. (JSC::::CodeLocationCall::CodeLocationCall):
  926. (JSC::::CodeLocationNearCall::CodeLocationNearCall):
  927. 2009-06-01 Gavin Barraclough <barraclough@apple.com>
  928. Reviewed by Olliej Hunt.
  929. Change JITStub functions from being static members on the JITStub class to be
  930. global extern "C" functions, and switch their the function signature declaration
  931. in the definition of the functions to be C-macro generated. This makes it easier
  932. to work with the stub functions from assembler code (since the name