Changeset 146831 in webkit
- Timestamp:
- Mar 25, 2013 5:36:18 PM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r146829 r146831 1 2013-03-25 Mark Lam <mark.lam@apple.com> 2 3 Offlineasm cloop backend compiles op+branch incorrectly. 4 https://bugs.webkit.org/show_bug.cgi?id=113146. 5 6 Reviewed by Geoffrey Garen. 7 8 * dfg/DFGRepatch.h: 9 (JSC::DFG::dfgResetGetByID): 10 (JSC::DFG::dfgResetPutByID): 11 - These functions never return when the DFG is dsiabled, not just when 12 asserts are enabled. Changing the attribute from NO_RETURN_DUE_TO_ASSERT 13 to NO_RETURN. 14 * llint/LLIntOfflineAsmConfig.h: 15 - Added some #defines needed to get the cloop building again. 16 * offlineasm/cloop.rb: 17 - Fix cloopEmitOpAndBranchIfOverflow() and cloopEmitOpAndBranch() to 18 emit code that unconditionally executes the specified operation before 19 doing the conditional branch. 20 1 21 2013-03-25 Mark Hahnenberg <mhahnenberg@apple.com> 2 22 -
trunk/Source/JavaScriptCore/dfg/DFGRepatch.h
r140594 r146831 60 60 namespace DFG { 61 61 62 inline NO_RETURN _DUE_TO_ASSERTvoid dfgResetGetByID(RepatchBuffer&, StructureStubInfo&) { RELEASE_ASSERT_NOT_REACHED(); }63 inline NO_RETURN _DUE_TO_ASSERTvoid dfgResetPutByID(RepatchBuffer&, StructureStubInfo&) { RELEASE_ASSERT_NOT_REACHED(); }62 inline NO_RETURN void dfgResetGetByID(RepatchBuffer&, StructureStubInfo&) { RELEASE_ASSERT_NOT_REACHED(); } 63 inline NO_RETURN void dfgResetPutByID(RepatchBuffer&, StructureStubInfo&) { RELEASE_ASSERT_NOT_REACHED(); } 64 64 65 65 } } // namespace JSC::DFG -
trunk/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h
r146459 r146831 36 36 #define OFFLINE_ASM_C_LOOP 1 37 37 #define OFFLINE_ASM_X86 0 38 #define OFFLINE_ASM_ARM 0 38 39 #define OFFLINE_ASM_ARMv7 0 40 #define OFFLINE_ASM_ARMv7_TRADITIONAL 0 39 41 #define OFFLINE_ASM_X86_64 0 40 42 #define OFFLINE_ASM_ARMv7s 0 -
trunk/Source/JavaScriptCore/offlineasm/cloop.rb
r145551 r146831 466 466 $asm.putc "{" 467 467 $asm.putc " #{tempType} temp = #{op2} #{operator} #{op1};" 468 $asm.putc " #{op2} = temp;" 468 469 $asm.putc " if (temp #{conditionTest})" 469 470 $asm.putc " goto #{operands[2].cLabel};" 470 $asm.putc " #{op2} = temp;"471 471 $asm.putc "}" 472 472 end … … 534 534 end 535 535 536 $asm.putc " if #{overflowTest} {" 536 $asm.putc " bool didOverflow = #{overflowTest};" 537 $asm.putc " #{operands[1].clValue(type)} = #{operands[1].clValue(type)} #{operator} #{operands[0].clValue(type)};" 538 $asm.putc " if (didOverflow)" 537 539 $asm.putc " goto #{operands[2].cLabel};" 538 $asm.putc " }"539 $asm.putc " #{operands[1].clValue(type)} = #{operands[1].clValue(type)} #{operator} #{operands[0].clValue(type)};"540 540 $asm.putc "}" 541 541 end
Note: See TracChangeset
for help on using the changeset viewer.