Changeset 197793 in webkit
- Timestamp:
- Mar 8, 2016, 12:53:11 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 21 edited
-
Source/JavaScriptCore/ChangeLog (modified) (1 diff)
-
Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig (modified) (1 diff)
-
Source/JavaScriptCore/assembler/ARM64Assembler.h (modified) (14 diffs)
-
Source/JavaScriptCore/assembler/LinkBuffer.cpp (modified) (3 diffs)
-
Source/JavaScriptCore/assembler/LinkBuffer.h (modified) (2 diffs)
-
Source/JavaScriptCore/assembler/MacroAssemblerARM64.h (modified) (9 diffs)
-
Source/JavaScriptCore/jit/ExecutableAllocator.h (modified) (1 diff)
-
Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMMach.cpp (added)
-
Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp (modified) (3 diffs)
-
Source/JavaScriptCore/runtime/Options.cpp (modified) (1 diff)
-
Source/JavaScriptCore/runtime/Options.h (modified) (1 diff)
-
Source/WTF/ChangeLog (modified) (1 diff)
-
Source/WTF/wtf/FeatureDefines.h (modified) (1 diff)
-
Source/WTF/wtf/Platform.h (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/Configurations/FeatureDefines.xcconfig (modified) (1 diff)
-
Source/WebKit/mac/ChangeLog (modified) (1 diff)
-
Source/WebKit/mac/Configurations/FeatureDefines.xcconfig (modified) (1 diff)
-
Source/WebKit2/ChangeLog (modified) (1 diff)
-
Source/WebKit2/Configurations/FeatureDefines.xcconfig (modified) (1 diff)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/Scripts/run-jsc-benchmarks (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r197781 r197793 1 2016-03-08 Oliver Hunt <oliver@apple.com> 2 3 Start moving to separated writable and executable mappings in the JIT 4 https://bugs.webkit.org/show_bug.cgi?id=155178 5 6 Reviewed by Filip Pizlo. 7 8 Start moving to a separate writable and executable heap for the various 9 JITs. 10 11 As part of our work to harden the JIT against various attacks, we're 12 moving away from our current RWX heap and on to using separate RW and X 13 mappings. This means that simply leaking the location of the executable 14 mapping is not sufficient to compromise JSC, so we can continue to 15 use direct executable pointers in our GC objects (which we need for 16 performance), but keep the writable pointer in only a single location 17 so that we are less likely to leak the address. To further obscure the 18 address of the writable region we place it in an execute only region 19 of memory so that it is not possible to read the location from 20 anywhere. That means an attacker must have at least partial control 21 of PC (to call jitMemCopy) before they can start to attack the JIT. 22 23 This work is initially ARM64 only, as we use as the jitMemCopy is 24 currently specific to that platform's calling conventions and layout. 25 We're just landing it in the current form so that we can at least 26 ensure it doesn't regress. 27 28 * Configurations/FeatureDefines.xcconfig: 29 * assembler/ARM64Assembler.h: 30 (JSC::ARM64Assembler::ldp): 31 (JSC::ARM64Assembler::ldnp): 32 (JSC::ARM64Assembler::fillNops): 33 (JSC::ARM64Assembler::stp): 34 (JSC::ARM64Assembler::stnp): 35 (JSC::ARM64Assembler::replaceWithJump): 36 (JSC::ARM64Assembler::replaceWithLoad): 37 (JSC::ARM64Assembler::replaceWithAddressComputation): 38 (JSC::ARM64Assembler::setPointer): 39 (JSC::ARM64Assembler::repatchInt32): 40 (JSC::ARM64Assembler::repatchCompact): 41 (JSC::ARM64Assembler::linkJumpOrCall): 42 (JSC::ARM64Assembler::linkCompareAndBranch): 43 (JSC::ARM64Assembler::linkConditionalBranch): 44 (JSC::ARM64Assembler::linkTestAndBranch): 45 (JSC::ARM64Assembler::loadStoreRegisterPairOffset): 46 (JSC::ARM64Assembler::loadStoreRegisterPairNonTemporal): 47 * assembler/LinkBuffer.cpp: 48 (JSC::LinkBuffer::copyCompactAndLinkCode): 49 (JSC::LinkBuffer::allocate): 50 * assembler/LinkBuffer.h: 51 (JSC::LinkBuffer::LinkBuffer): 52 * assembler/MacroAssemblerARM64.h: 53 (JSC::MacroAssemblerARM64::sub64): 54 (JSC::MacroAssemblerARM64::load64): 55 (JSC::MacroAssemblerARM64::loadPair64): 56 (JSC::MacroAssemblerARM64::loadPair64WithNonTemporalAccess): 57 (JSC::MacroAssemblerARM64::load8): 58 (JSC::MacroAssemblerARM64::store64): 59 (JSC::MacroAssemblerARM64::storePair64): 60 (JSC::MacroAssemblerARM64::storePair64WithNonTemporalAccess): 61 (JSC::MacroAssemblerARM64::store8): 62 (JSC::MacroAssemblerARM64::branchAdd64): 63 (JSC::MacroAssemblerARM64::branchSub64): 64 * jit/ExecutableAllocator.h: 65 (JSC::performJITMemcpy): 66 * jit/ExecutableAllocatorFixedVMPool.cpp: 67 (JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator): 68 (JSC::FixedVMPoolExecutableAllocator::initializeBulletproofJIT): 69 (JSC::FixedVMPoolExecutableAllocator::jitWriteThunkGenerator): 70 * runtime/Options.cpp: 71 (JSC::recomputeDependentOptions): 72 * runtime/Options.h: 73 1 74 2016-03-08 Michael Saboff <msaboff@apple.com> 2 75 -
trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig
r197153 r197793 195 195 ENABLE_CUSTOM_ELEMENTS = ENABLE_CUSTOM_ELEMENTS; 196 196 197 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE); 197 ENABLE_SEPARATED_WX_HEAP[sdk=iphone*] = ENABLE_SEPARATED_WX_HEAP; 198 ENABLE_SEPARATED_WX_HEAP[sdk=macosx*] = ; 199 200 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP); -
trunk/Source/JavaScriptCore/assembler/ARM64Assembler.h
r196736 r197793 1089 1089 1090 1090 template<int datasize> 1091 ALWAYS_INLINE void ldp(RegisterID rt, RegisterID rt2, RegisterID rn, unsigned pimm = 0) 1092 { 1093 CHECK_DATASIZE(); 1094 insn(loadStoreRegisterPairOffset(MEMPAIROPSIZE_INT(datasize), false, MemOp_LOAD, pimm, rn, rt, rt2)); 1095 } 1096 1097 template<int datasize> 1098 ALWAYS_INLINE void ldnp(RegisterID rt, RegisterID rt2, RegisterID rn, unsigned pimm = 0) 1099 { 1100 CHECK_DATASIZE(); 1101 insn(loadStoreRegisterPairNonTemporal(MEMPAIROPSIZE_INT(datasize), false, MemOp_LOAD, pimm, rn, rt, rt2)); 1102 } 1103 1104 template<int datasize> 1091 1105 ALWAYS_INLINE void ldr(RegisterID rt, RegisterID rn, RegisterID rm) 1092 1106 { … … 1475 1489 RELEASE_ASSERT(!(size % sizeof(int32_t))); 1476 1490 size_t n = size / sizeof(int32_t); 1477 for (int32_t* ptr = static_cast<int32_t*>(base); n--;) 1478 *ptr++ = nopPseudo(); 1491 for (int32_t* ptr = static_cast<int32_t*>(base); n--;) { 1492 int insn = nopPseudo(); 1493 performJITMemcpy(ptr++, &insn, sizeof(int)); 1494 } 1479 1495 } 1480 1496 … … 1644 1660 CHECK_DATASIZE(); 1645 1661 insn(loadStoreRegisterPairPreIndex(MEMPAIROPSIZE_INT(datasize), false, MemOp_STORE, simm, rn, rt, rt2)); 1662 } 1663 1664 template<int datasize> 1665 ALWAYS_INLINE void stp(RegisterID rt, RegisterID rt2, RegisterID rn, unsigned pimm = 0) 1666 { 1667 CHECK_DATASIZE(); 1668 insn(loadStoreRegisterPairOffset(MEMPAIROPSIZE_INT(datasize), false, MemOp_STORE, pimm, rn, rt, rt2)); 1669 } 1670 1671 template<int datasize> 1672 ALWAYS_INLINE void stnp(RegisterID rt, RegisterID rt2, RegisterID rn, unsigned pimm = 0) 1673 { 1674 CHECK_DATASIZE(); 1675 insn(loadStoreRegisterPairNonTemporal(MEMPAIROPSIZE_INT(datasize), false, MemOp_STORE, pimm, rn, rt, rt2)); 1646 1676 } 1647 1677 … … 2471 2501 intptr_t offset = (reinterpret_cast<intptr_t>(to) - reinterpret_cast<intptr_t>(where)) >> 2; 2472 2502 ASSERT(static_cast<int>(offset) == offset); 2473 *static_cast<int*>(where) = unconditionalBranchImmediate(false, static_cast<int>(offset)); 2503 int insn = unconditionalBranchImmediate(false, static_cast<int>(offset)); 2504 performJITMemcpy(where, &insn, sizeof(int)); 2474 2505 cacheFlush(where, sizeof(int)); 2475 2506 } … … 2495 2526 ASSERT(!shift); 2496 2527 ASSERT(!(imm12 & ~0xff8)); 2497 *static_cast<int*>(where) = loadStoreRegisterUnsignedImmediate(MemOpSize_64, false, MemOp_LOAD, encodePositiveImmediate<64>(imm12), rn, rd); 2528 int insn = loadStoreRegisterUnsignedImmediate(MemOpSize_64, false, MemOp_LOAD, encodePositiveImmediate<64>(imm12), rn, rd); 2529 performJITMemcpy(where, &insn, sizeof(int)); 2498 2530 cacheFlush(where, sizeof(int)); 2499 2531 } … … 2528 2560 ASSERT(opc == MemOp_LOAD); 2529 2561 ASSERT(!(imm12 & ~0x1ff)); 2530 *static_cast<int*>(where) = addSubtractImmediate(Datasize_64, AddOp_ADD, DontSetFlags, 0, imm12 * sizeof(void*), rn, rt); 2562 int insn = addSubtractImmediate(Datasize_64, AddOp_ADD, DontSetFlags, 0, imm12 * sizeof(void*), rn, rt); 2563 performJITMemcpy(where, &insn, sizeof(int)); 2531 2564 cacheFlush(where, sizeof(int)); 2532 2565 } … … 2558 2591 { 2559 2592 uintptr_t value = reinterpret_cast<uintptr_t>(valuePtr); 2560 address[0] = moveWideImediate(Datasize_64, MoveWideOp_Z, 0, getHalfword(value, 0), rd); 2561 address[1] = moveWideImediate(Datasize_64, MoveWideOp_K, 1, getHalfword(value, 1), rd); 2562 address[2] = moveWideImediate(Datasize_64, MoveWideOp_K, 2, getHalfword(value, 2), rd); 2593 int buffer[3]; 2594 buffer[0] = moveWideImediate(Datasize_64, MoveWideOp_Z, 0, getHalfword(value, 0), rd); 2595 buffer[1] = moveWideImediate(Datasize_64, MoveWideOp_K, 1, getHalfword(value, 1), rd); 2596 buffer[2] = moveWideImediate(Datasize_64, MoveWideOp_K, 2, getHalfword(value, 2), rd); 2597 performJITMemcpy(address, buffer, sizeof(int) * 3); 2563 2598 2564 2599 if (flush) … … 2579 2614 ASSERT(checkMovk<Datasize_32>(address[1], 1, rd)); 2580 2615 2616 int buffer[2]; 2581 2617 if (value >= 0) { 2582 address[0] = moveWideImediate(Datasize_32, MoveWideOp_Z, 0, getHalfword(value, 0), rd);2583 address[1] = moveWideImediate(Datasize_32, MoveWideOp_K, 1, getHalfword(value, 1), rd);2618 buffer[0] = moveWideImediate(Datasize_32, MoveWideOp_Z, 0, getHalfword(value, 0), rd); 2619 buffer[1] = moveWideImediate(Datasize_32, MoveWideOp_K, 1, getHalfword(value, 1), rd); 2584 2620 } else { 2585 address[0] = moveWideImediate(Datasize_32, MoveWideOp_N, 0, ~getHalfword(value, 0), rd);2586 address[1] = moveWideImediate(Datasize_32, MoveWideOp_K, 1, getHalfword(value, 1), rd);2621 buffer[0] = moveWideImediate(Datasize_32, MoveWideOp_N, 0, ~getHalfword(value, 0), rd); 2622 buffer[1] = moveWideImediate(Datasize_32, MoveWideOp_K, 1, getHalfword(value, 1), rd); 2587 2623 } 2624 performJITMemcpy(where, &buffer, sizeof(int) * 2); 2588 2625 2589 2626 cacheFlush(where, sizeof(int) * 2); … … 2649 2686 else 2650 2687 imm12 = encodePositiveImmediate<64>(value); 2651 *static_cast<int*>(where) = loadStoreRegisterUnsignedImmediate(size, V, opc, imm12, rn, rt); 2688 int insn = loadStoreRegisterUnsignedImmediate(size, V, opc, imm12, rn, rt); 2689 performJITMemcpy(where, &insn, sizeof(int)); 2652 2690 2653 2691 cacheFlush(where, sizeof(int)); … … 2846 2884 ASSERT(static_cast<int>(offset) == offset); 2847 2885 2848 *from = unconditionalBranchImmediate(isCall, static_cast<int>(offset)); 2886 int insn = unconditionalBranchImmediate(isCall, static_cast<int>(offset)); 2887 performJITMemcpy(from, &insn, sizeof(int)); 2849 2888 } 2850 2889 … … 2861 2900 2862 2901 if (useDirect || isDirect) { 2863 *from = compareAndBranchImmediate(is64Bit ? Datasize_64 : Datasize_32, condition == ConditionNE, static_cast<int>(offset), rt); 2864 if (!isDirect) 2865 *(from + 1) = nopPseudo(); 2902 int insn = compareAndBranchImmediate(is64Bit ? Datasize_64 : Datasize_32, condition == ConditionNE, static_cast<int>(offset), rt); 2903 performJITMemcpy(from, &insn, sizeof(int)); 2904 if (!isDirect) { 2905 insn = nopPseudo(); 2906 performJITMemcpy(from + 1, &insn, sizeof(int)); 2907 } 2866 2908 } else { 2867 *from = compareAndBranchImmediate(is64Bit ? Datasize_64 : Datasize_32, invert(condition) == ConditionNE, 2, rt); 2909 int insn = compareAndBranchImmediate(is64Bit ? Datasize_64 : Datasize_32, invert(condition) == ConditionNE, 2, rt); 2910 performJITMemcpy(from, &insn, sizeof(int)); 2868 2911 linkJumpOrCall<false>(from + 1, to); 2869 2912 } … … 2882 2925 2883 2926 if (useDirect || isDirect) { 2884 *from = conditionalBranchImmediate(static_cast<int>(offset), condition); 2885 if (!isDirect) 2886 *(from + 1) = nopPseudo(); 2927 int insn = conditionalBranchImmediate(static_cast<int>(offset), condition); 2928 performJITMemcpy(from, &insn, sizeof(int)); 2929 if (!isDirect) { 2930 insn = nopPseudo(); 2931 performJITMemcpy(from + 1, &insn, sizeof(int)); 2932 } 2887 2933 } else { 2888 *from = conditionalBranchImmediate(2, invert(condition)); 2934 int insn = conditionalBranchImmediate(2, invert(condition)); 2935 performJITMemcpy(from, &insn, sizeof(int)); 2889 2936 linkJumpOrCall<false>(from + 1, to); 2890 2937 } … … 2904 2951 2905 2952 if (useDirect || isDirect) { 2906 *from = testAndBranchImmediate(condition == ConditionNE, static_cast<int>(bitNumber), static_cast<int>(offset), rt); 2907 if (!isDirect) 2908 *(from + 1) = nopPseudo(); 2953 int insn = testAndBranchImmediate(condition == ConditionNE, static_cast<int>(bitNumber), static_cast<int>(offset), rt); 2954 performJITMemcpy(from, &insn, sizeof(int)); 2955 if (!isDirect) { 2956 insn = nopPseudo(); 2957 performJITMemcpy(from + 1, &insn, sizeof(int)); 2958 } 2909 2959 } else { 2910 *from = testAndBranchImmediate(invert(condition) == ConditionNE, static_cast<int>(bitNumber), 2, rt); 2960 int insn = testAndBranchImmediate(invert(condition) == ConditionNE, static_cast<int>(bitNumber), 2, rt); 2961 performJITMemcpy(from, &insn, sizeof(int)); 2911 2962 linkJumpOrCall<false>(from + 1, to); 2912 2963 } … … 3347 3398 { 3348 3399 return loadStoreRegisterPairPreIndex(size, V, opc, immediate, rn, xOrZrAsFPR(rt), xOrZrAsFPR(rt2)); 3400 } 3401 3402 // 'V' means vector 3403 ALWAYS_INLINE static int loadStoreRegisterPairOffset(MemPairOpSize size, bool V, MemOp opc, int immediate, RegisterID rn, FPRegisterID rt, FPRegisterID rt2) 3404 { 3405 ASSERT(size < 3); 3406 ASSERT(opc == (opc & 1)); // Only load or store, load signed 64 is handled via size. 3407 ASSERT(V || (size != MemPairOp_LoadSigned_32) || (opc == MemOp_LOAD)); // There isn't an integer store signed. 3408 unsigned immedShiftAmount = memPairOffsetShift(V, size); 3409 int imm7 = immediate >> immedShiftAmount; 3410 ASSERT((imm7 << immedShiftAmount) == immediate && isInt7(imm7)); 3411 return (0x29000000 | size << 30 | V << 26 | opc << 22 | (imm7 & 0x7f) << 15 | rt2 << 10 | xOrSp(rn) << 5 | rt); 3412 } 3413 3414 ALWAYS_INLINE static int loadStoreRegisterPairOffset(MemPairOpSize size, bool V, MemOp opc, int immediate, RegisterID rn, RegisterID rt, RegisterID rt2) 3415 { 3416 return loadStoreRegisterPairOffset(size, V, opc, immediate, rn, xOrZrAsFPR(rt), xOrZrAsFPR(rt2)); 3417 } 3418 3419 // 'V' means vector 3420 ALWAYS_INLINE static int loadStoreRegisterPairNonTemporal(MemPairOpSize size, bool V, MemOp opc, int immediate, RegisterID rn, FPRegisterID rt, FPRegisterID rt2) 3421 { 3422 ASSERT(size < 3); 3423 ASSERT(opc == (opc & 1)); // Only load or store, load signed 64 is handled via size. 3424 ASSERT(V || (size != MemPairOp_LoadSigned_32) || (opc == MemOp_LOAD)); // There isn't an integer store signed. 3425 unsigned immedShiftAmount = memPairOffsetShift(V, size); 3426 int imm7 = immediate >> immedShiftAmount; 3427 ASSERT((imm7 << immedShiftAmount) == immediate && isInt7(imm7)); 3428 return (0x28000000 | size << 30 | V << 26 | opc << 22 | (imm7 & 0x7f) << 15 | rt2 << 10 | xOrSp(rn) << 5 | rt); 3429 } 3430 3431 ALWAYS_INLINE static int loadStoreRegisterPairNonTemporal(MemPairOpSize size, bool V, MemOp opc, int immediate, RegisterID rn, RegisterID rt, RegisterID rt2) 3432 { 3433 return loadStoreRegisterPairNonTemporal(size, V, opc, immediate, rn, xOrZrAsFPR(rt), xOrZrAsFPR(rt2)); 3349 3434 } 3350 3435 -
trunk/Source/JavaScriptCore/assembler/LinkBuffer.cpp
r194496 r197793 106 106 m_assemblerStorage = macroAssembler.m_assembler.buffer().releaseAssemblerData(); 107 107 uint8_t* inData = reinterpret_cast<uint8_t*>(m_assemblerStorage.buffer()); 108 #if ENABLE(SEPARATED_WX_HEAP) 109 AssemblerData outBuffer(m_size); 110 uint8_t* outData = reinterpret_cast<uint8_t*>(outBuffer.buffer()); 111 #else 108 112 uint8_t* outData = reinterpret_cast<uint8_t*>(m_code); 113 #endif 109 114 int readPtr = 0; 110 115 int writePtr = 0; … … 161 166 shrink(writePtr + m_initialSize - readPtr); 162 167 168 #if ENABLE(SEPARATED_WX_HEAP) 169 performJITMemcpy(m_code, outBuffer.buffer(), m_size); 170 #endif 171 163 172 #if DUMP_LINK_STATISTICS 164 173 dumpLinkStatistics(m_code, m_initialSize, m_size); … … 209 218 } 210 219 220 ASSERT(m_vm != nullptr); 211 221 m_executableMemory = m_vm->executableAllocator.allocate(*m_vm, initialSize, ownerUID, effort); 212 222 if (!m_executableMemory) -
trunk/Source/JavaScriptCore/assembler/LinkBuffer.h
r191058 r197793 96 96 } 97 97 98 LinkBuffer( VM& vm, MacroAssembler& macroAssembler, void* code, size_t size)98 LinkBuffer(MacroAssembler& macroAssembler, void* code, size_t size, JITCompilationEffort effort = JITCompilationMustSucceed) 99 99 : m_size(size) 100 100 #if ENABLE(BRANCH_COMPACTION) … … 103 103 , m_didAllocate(false) 104 104 , m_code(code) 105 , m_vm( &vm)105 , m_vm(0) 106 106 #ifndef NDEBUG 107 107 , m_completed(false) 108 108 #endif 109 109 { 110 linkCode(macroAssembler, 0, JITCompilationCanFail);110 linkCode(macroAssembler, 0, effort); 111 111 } 112 112 -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
r197652 r197793 762 762 m_assembler.sub<64>(dest, dest, src); 763 763 } 764 765 void sub64(RegisterID a, RegisterID b, RegisterID dest) 766 { 767 m_assembler.sub<64>(dest, a, b); 768 } 764 769 765 770 void sub64(TrustedImm32 imm, RegisterID dest) … … 961 966 } 962 967 968 void load64(RegisterID src, PostIndex simm, RegisterID dest) 969 { 970 m_assembler.ldr<64>(dest, src, simm); 971 } 972 963 973 DataLabel32 load64WithAddressOffsetPatch(Address address, RegisterID dest) 964 974 { … … 977 987 } 978 988 989 void loadPair64(RegisterID src, RegisterID dest1, RegisterID dest2) 990 { 991 loadPair64(src, TrustedImm32(0), dest1, dest2); 992 } 993 994 void loadPair64(RegisterID src, TrustedImm32 offset, RegisterID dest1, RegisterID dest2) 995 { 996 m_assembler.ldp<64>(dest1, dest2, src, offset.m_value); 997 } 998 999 void loadPair64WithNonTemporalAccess(RegisterID src, RegisterID dest1, RegisterID dest2) 1000 { 1001 loadPair64WithNonTemporalAccess(src, TrustedImm32(0), dest1, dest2); 1002 } 1003 1004 void loadPair64WithNonTemporalAccess(RegisterID src, TrustedImm32 offset, RegisterID dest1, RegisterID dest2) 1005 { 1006 m_assembler.ldnp<64>(dest1, dest2, src, offset.m_value); 1007 } 1008 979 1009 void abortWithReason(AbortReason reason) 980 1010 { … … 1130 1160 } 1131 1161 1162 void load8(RegisterID src, PostIndex simm, RegisterID dest) 1163 { 1164 m_assembler.ldr<8>(dest, src, simm); 1165 } 1166 1132 1167 void load8SignedExtendTo32(ImplicitAddress address, RegisterID dest) 1133 1168 { … … 1212 1247 moveToCachedReg(imm, dataMemoryTempRegister()); 1213 1248 store64(dataTempRegister, address); 1249 } 1250 1251 void store64(RegisterID src, RegisterID dest, PostIndex simm) 1252 { 1253 m_assembler.str<64>(src, dest, simm); 1214 1254 } 1215 1255 … … 1222 1262 } 1223 1263 1264 void storePair64(RegisterID src1, RegisterID src2, RegisterID dest) 1265 { 1266 storePair64(src1, src2, dest, TrustedImm32(0)); 1267 } 1268 1269 void storePair64(RegisterID src1, RegisterID src2, RegisterID dest, TrustedImm32 offset) 1270 { 1271 m_assembler.stp<64>(src1, src2, dest, offset.m_value); 1272 } 1273 1274 void storePair64WithNonTemporalAccess(RegisterID src1, RegisterID src2, RegisterID dest) 1275 { 1276 storePair64WithNonTemporalAccess(src1, src2, dest, TrustedImm32(0)); 1277 } 1278 1279 void storePair64WithNonTemporalAccess(RegisterID src1, RegisterID src2, RegisterID dest, TrustedImm32 offset) 1280 { 1281 m_assembler.stnp<64>(src1, src2, dest, offset.m_value); 1282 } 1283 1224 1284 void store32(RegisterID src, ImplicitAddress address) 1225 1285 { … … 1367 1427 move(imm, getCachedDataTempRegisterIDAndInvalidate()); 1368 1428 store8(dataTempRegister, address); 1429 } 1430 1431 void store8(RegisterID src, RegisterID dest, PostIndex simm) 1432 { 1433 m_assembler.str<8>(src, dest, simm); 1369 1434 } 1370 1435 … … 2587 2652 } 2588 2653 2654 Jump branchAdd64(RelationalCondition cond, TrustedImm32 imm, RegisterID dest) 2655 { 2656 ASSERT(isUInt12(imm.m_value)); 2657 m_assembler.add<64, S>(dest, dest, UInt12(imm.m_value)); 2658 return Jump(makeBranch(cond)); 2659 } 2660 2589 2661 Jump branchMul32(ResultCondition cond, RegisterID src1, RegisterID src2, RegisterID scratch1, RegisterID scratch2, RegisterID dest) 2590 2662 { … … 2730 2802 { 2731 2803 return branchSub64(cond, dest, imm, dest); 2804 } 2805 2806 Jump branchSub64(RelationalCondition cond, TrustedImm32 imm, RegisterID dest) 2807 { 2808 ASSERT(isUInt12(imm.m_value)); 2809 m_assembler.sub<64, S>(dest, dest, UInt12(imm.m_value)); 2810 return Jump(makeBranch(cond)); 2732 2811 } 2733 2812 -
trunk/Source/JavaScriptCore/jit/ExecutableAllocator.h
r197441 r197793 91 91 92 92 extern uintptr_t startOfFixedExecutableMemoryPool; 93 extern uintptr_t endOfFixedExecutableMemoryPool; 94 95 #if ENABLE(SEPARATED_WX_HEAP) 96 extern uintptr_t jitWriteFunctionAddress; 93 97 #endif 98 #endif // ENABLE(EXECUTABLE_ALLOCATOR_FIXED) 99 100 static inline void* performJITMemcpy(void *dst, const void *src, size_t n) 101 { 102 #if ENABLE(SEPARATED_WX_HEAP) 103 // Use execute-only write thunk for writes inside the JIT region. This is a variant of 104 // memcpy that takes an offset into the JIT region as its destination (first) parameter. 105 if (jitWriteFunctionAddress && (uintptr_t)dst >= startOfFixedExecutableMemoryPool && (uintptr_t)dst <= endOfFixedExecutableMemoryPool) { 106 using JITWriteFunction = void (*)(off_t, const void*, size_t); 107 JITWriteFunction func = (JITWriteFunction)jitWriteFunctionAddress; 108 off_t offset = (off_t)((uintptr_t)dst - startOfFixedExecutableMemoryPool); 109 func(offset, src, n); 110 return dst; 111 } 112 #endif 113 114 // Use regular memcpy for writes outside the JIT region. 115 return memcpy(dst, src, n); 116 } 94 117 95 118 class ExecutableAllocator { -
trunk/Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
r197563 r197793 49 49 #endif 50 50 51 #if ENABLE(SEPARATE_WX_HEAPPROOF_JIT) 52 #include "LinkBuffer.h" 53 #include "MacroAssembler.h" 54 55 #if OS(DARWIN) 56 #include <mach/mach.h> 57 #include <mach/mach_vm.h> 58 #endif 59 60 #endif 61 51 62 using namespace WTF; 52 63 53 64 namespace JSC { 54 55 uintptr_t startOfFixedExecutableMemoryPool; 65 66 JS_EXPORT_PRIVATE uintptr_t startOfFixedExecutableMemoryPool; 67 JS_EXPORT_PRIVATE uintptr_t endOfFixedExecutableMemoryPool; 68 69 #if ENABLE(SEPARATE_WX_HEAPPROOF_JIT) 70 JS_EXPORT_PRIVATE uintptr_t jitWriteFunctionAddress; 71 #endif 56 72 57 73 class FixedVMPoolExecutableAllocator : public MetaAllocator { … … 70 86 if (m_reservation) { 71 87 ASSERT(m_reservation.size() == reservationSize); 72 addFreshFreeSpace(m_reservation.base(), m_reservation.size()); 73 74 startOfFixedExecutableMemoryPool = reinterpret_cast<uintptr_t>(m_reservation.base()); 88 void* reservationBase = m_reservation.base(); 89 90 #if ENABLE(SEPARATE_WX_HEAPPROOF_JIT) 91 if (Options::useBulletproofJIT()) { 92 // First page of our JIT allocation is reserved. 93 ASSERT(reservationSize >= pageSize() * 2); 94 reservationBase = (void*)((uintptr_t)reservationBase + pageSize()); 95 reservationSize -= pageSize(); 96 initializeBulletproofJIT(m_reservation.base(), pageSize(), reservationBase, reservationSize); 97 } 98 #endif 99 100 addFreshFreeSpace(reservationBase, reservationSize); 101 102 startOfFixedExecutableMemoryPool = reinterpret_cast<uintptr_t>(reservationBase); 103 endOfFixedExecutableMemoryPool = startOfFixedExecutableMemoryPool + reservationSize; 75 104 } 76 105 } … … 111 140 #endif 112 141 } 142 143 private: 144 #if ENABLE(SEPARATE_WX_HEAPPROOF_JIT) 145 void initializeBulletproofJIT(void* stubBase, size_t stubSize, void* jitBase, size_t jitSize) 146 { 147 mach_vm_address_t writableAddr = 0; 148 149 // Create a second mapping of the JIT region at a random address. 150 vm_prot_t cur, max; 151 kern_return_t ret = mach_vm_remap(mach_task_self(), &writableAddr, jitSize, 0, 152 VM_FLAGS_ANYWHERE | VM_FLAGS_RANDOM_ADDR, 153 mach_task_self(), (mach_vm_address_t)jitBase, FALSE, 154 &cur, &max, VM_INHERIT_DEFAULT); 155 156 RELEASE_ASSERT(ret == KERN_SUCCESS); 157 158 159 // Assemble a thunk that will serve as the means for writing into the JIT region. 160 MacroAssemblerCodeRef writeThunk = jitWriteThunkGenerator(writableAddr, stubBase, stubSize); 161 162 #if defined(VM_PROT_EXECUTE_ONLY) 163 // Prevent reading the write thunk code. 164 int result = mprotect(stubBase, stubSize, VM_PROT_EXECUTE_ONLY); 165 RELEASE_ASSERT(!result); 166 #endif 167 168 // Prevent writing into the executable JIT mapping. 169 result = mprotect(jitBase, jitSize, VM_PROT_READ | VM_PROT_EXECUTE); 170 RELEASE_ASSERT(!result); 171 172 // Prevent execution in the writable JIT mapping. 173 result = mprotect((void*)writableAddr, jitSize, VM_PROT_READ | VM_PROT_WRITE); 174 RELEASE_ASSERT(!result); 175 176 // Zero out writableAddr to avoid leaking the address of the writable mapping. 177 memset_s(&writableAddr, sizeof(writableAddr), 0, sizeof(writableAddr)); 178 179 jitWriteFunctionAddress = (uintptr_t)writeThunk.code().executableAddress(); 180 } 181 182 #if CPU(ARM64) 183 MacroAssemblerCodeRef jitWriteThunkGenerator(mach_vm_address_t writableAddr, void* stubBase, size_t stubSize) 184 { 185 using namespace ARM64Registers; 186 using TrustedImm32 = MacroAssembler::TrustedImm32; 187 188 MacroAssembler jit; 189 190 jit.move(MacroAssembler::TrustedImmPtr((const void*)writableAddr), x7); 191 jit.addPtr(x7, x0); 192 193 jit.move(x0, x3); 194 MacroAssembler::Jump smallCopy = jit.branch64(MacroAssembler::Below, x2, MacroAssembler::TrustedImm64(64)); 195 196 jit.add64(TrustedImm32(32), x3); 197 jit.and64(TrustedImm32(-32), x3); 198 jit.loadPair64(x1, x12, x13); 199 jit.loadPair64(x1, TrustedImm32(16), x14, x15); 200 jit.sub64(x3, x0, x5); 201 jit.addPtr(x5, x1); 202 203 jit.loadPair64(x1, x8, x9); 204 jit.loadPair64(x1, TrustedImm32(16), x10, x11); 205 jit.add64(TrustedImm32(32), x1); 206 jit.sub64(x5, x2); 207 jit.storePair64(x12, x13, x0); 208 jit.storePair64(x14, x15, x0, TrustedImm32(16)); 209 MacroAssembler::Jump cleanup = jit.branchSub64(MacroAssembler::BelowOrEqual, TrustedImm32(64), x2); 210 211 MacroAssembler::Label copyLoop = jit.label(); 212 jit.storePair64WithNonTemporalAccess(x8, x9, x3); 213 jit.storePair64WithNonTemporalAccess(x10, x11, x3, TrustedImm32(16)); 214 jit.add64(TrustedImm32(32), x3); 215 jit.loadPair64WithNonTemporalAccess(x1, x8, x9); 216 jit.loadPair64WithNonTemporalAccess(x1, TrustedImm32(16), x10, x11); 217 jit.add64(TrustedImm32(32), x1); 218 jit.branchSub64(MacroAssembler::Above, TrustedImm32(32), x2).linkTo(copyLoop, &jit); 219 220 cleanup.link(&jit); 221 jit.add64(x2, x1); 222 jit.loadPair64(x1, x12, x13); 223 jit.loadPair64(x1, TrustedImm32(16), x14, x15); 224 jit.storePair64(x8, x9, x3); 225 jit.storePair64(x10, x11, x3, TrustedImm32(16)); 226 jit.addPtr(x2, x3); 227 jit.storePair64(x12, x13, x3, TrustedImm32(32)); 228 jit.storePair64(x14, x15, x3, TrustedImm32(48)); 229 jit.ret(); 230 231 MacroAssembler::Label local0 = jit.label(); 232 jit.load64(x1, PostIndex(8), x6); 233 jit.store64(x6, x3, PostIndex(8)); 234 smallCopy.link(&jit); 235 jit.branchSub64(MacroAssembler::AboveOrEqual, TrustedImm32(8), x2).linkTo(local0, &jit); 236 MacroAssembler::Jump local2 = jit.branchAdd64(MacroAssembler::Equal, TrustedImm32(8), x2); 237 MacroAssembler::Label local1 = jit.label(); 238 jit.load8(x1, PostIndex(1), x6); 239 jit.store8(x6, x3, PostIndex(1)); 240 jit.branchSub64(MacroAssembler::NotEqual, TrustedImm32(1), x2).linkTo(local1, &jit); 241 local2.link(&jit); 242 jit.ret(); 243 244 LinkBuffer linkBuffer(jit, stubBase, stubSize); 245 return FINALIZE_CODE(linkBuffer, ("Bulletproof JIT write thunk")); 246 } 247 #endif // CPU(ARM64) 248 #endif // ENABLE(SEPARATE_WX_HEAPPROOF_JIT) 113 249 114 250 private: -
trunk/Source/JavaScriptCore/runtime/Options.cpp
r196756 r197793 294 294 #if !ENABLE(FTL_JIT) 295 295 Options::useFTLJIT() = false; 296 #endif 297 #if !ENABLE(SEPARATED_WX_HEAP) 298 Options::useSeparatedWXHeap() = false; 296 299 #endif 297 300 #if OS(WINDOWS) && CPU(X86) -
trunk/Source/JavaScriptCore/runtime/Options.h
r196756 r197793 119 119 v(bool, crashIfCantAllocateJITMemory, false, nullptr) \ 120 120 v(unsigned, jitMemoryReservationSize, 0, "Set this number to change the executable allocation size in ExecutableAllocatorFixedVMPool. (In bytes.)") \ 121 v(bool, useSeparatedWXHeap, true, nullptr) \ 121 122 \ 122 123 v(bool, forceCodeBlockLiveness, false, nullptr) \ -
trunk/Source/WTF/ChangeLog
r197788 r197793 1 2016-03-08 Oliver Hunt <oliver@apple.com> 2 3 Start moving to separated writable and executable mappings in the JIT 4 https://bugs.webkit.org/show_bug.cgi?id=155178 5 6 Reviewed by Filip Pizlo. 7 8 Update feature defines. 9 10 * wtf/FeatureDefines.h: 11 * wtf/Platform.h: ARM64 for now. 12 1 13 2016-03-08 Daniel Bates <dabates@apple.com> 2 14 -
trunk/Source/WTF/wtf/FeatureDefines.h
r197058 r197793 824 824 #endif 825 825 826 #if !defined(ENABLE_SEPARATED_WX_HEAP) 827 #define ENABLE_SEPARATED_WX_HEAP 0 828 #endif 829 826 830 /* Asserts, invariants for macro definitions */ 827 831 -
trunk/Source/WTF/wtf/Platform.h
r197572 r197793 1139 1139 #endif 1140 1140 1141 #if !CPU(ARM64) && defined(ENABLE_SEPARATED_WX_HEAP) 1142 #undef ENABLE_SEPARATED_WX_HEAP 1143 #endif 1144 1141 1145 #endif /* WTF_Platform_h */ -
trunk/Source/WebCore/ChangeLog
r197792 r197793 1 2016-03-08 Oliver Hunt <oliver@apple.com> 2 3 Start moving to separated writable and executable mappings in the JIT 4 https://bugs.webkit.org/show_bug.cgi?id=155178 5 6 Reviewed by Filip Pizlo. 7 8 Update feature defines. 9 10 * Configurations/FeatureDefines.xcconfig: 11 1 12 2016-03-08 Commit Queue <commit-queue@webkit.org> 2 13 -
trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig
r197153 r197793 195 195 ENABLE_CUSTOM_ELEMENTS = ENABLE_CUSTOM_ELEMENTS; 196 196 197 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE); 197 ENABLE_SEPARATED_WX_HEAP[sdk=iphone*] = ENABLE_SEPARATED_WX_HEAP; 198 ENABLE_SEPARATED_WX_HEAP[sdk=macosx*] = ; 199 200 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP); -
trunk/Source/WebKit/mac/ChangeLog
r197791 r197793 1 2016-03-08 Oliver Hunt <oliver@apple.com> 2 3 Start moving to separated writable and executable mappings in the JIT 4 https://bugs.webkit.org/show_bug.cgi?id=155178 5 6 Reviewed by Filip Pizlo. 7 8 Update feature defines. 9 10 * Configurations/FeatureDefines.xcconfig: 11 1 12 2016-03-08 Anders Carlsson <andersca@apple.com> 2 13 -
trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig
r197153 r197793 195 195 ENABLE_CUSTOM_ELEMENTS = ENABLE_CUSTOM_ELEMENTS; 196 196 197 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE); 197 ENABLE_SEPARATED_WX_HEAP[sdk=iphone*] = ENABLE_SEPARATED_WX_HEAP; 198 ENABLE_SEPARATED_WX_HEAP[sdk=macosx*] = ; 199 200 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP); -
trunk/Source/WebKit2/ChangeLog
r197792 r197793 1 2016-03-08 Oliver Hunt <oliver@apple.com> 2 3 Start moving to separated writable and executable mappings in the JIT 4 https://bugs.webkit.org/show_bug.cgi?id=155178 5 6 Reviewed by Filip Pizlo. 7 8 Update feature defines. 9 10 * Configurations/FeatureDefines.xcconfig: 11 1 12 2016-03-08 Commit Queue <commit-queue@webkit.org> 2 13 -
trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig
r197153 r197793 195 195 ENABLE_CUSTOM_ELEMENTS = ENABLE_CUSTOM_ELEMENTS; 196 196 197 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE); 197 ENABLE_SEPARATED_WX_HEAP[sdk=iphone*] = ENABLE_SEPARATED_WX_HEAP; 198 ENABLE_SEPARATED_WX_HEAP[sdk=macosx*] = ; 199 200 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_ES6_ARROWFUNCTION_SYNTAX) $(ENABLE_ES6_CLASS_SYNTAX) $(ENABLE_ES6_GENERATORS) $(ENABLE_ES6_MODULES) $(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FETCH_API) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_SVG_OTF_CONVERTER) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_JIT) $(ENABLE_SHADOW_DOM) $(ENABLE_CUSTOM_ELEMENTS) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_SEPARATED_WX_HEAP); -
trunk/Tools/ChangeLog
r197788 r197793 1 2016-03-08 Oliver Hunt <oliver@apple.com> 2 3 Start moving to separated writable and executable mappings in the JIT 4 https://bugs.webkit.org/show_bug.cgi?id=155178 5 6 Reviewed by Filip Pizlo. 7 8 Making run-jsc-benchmarks slightly happier on my machine. 9 10 * Scripts/run-jsc-benchmarks: 11 1 12 2016-03-08 Daniel Bates <dabates@apple.com> 2 13 -
trunk/Tools/Scripts/run-jsc-benchmarks
r197361 r197793 2862 2862 end 2863 2863 envs = [] 2864 while vm =~ /([a-zA-Z0-9_]+)=([a-zA-Z0-9_:. ]+):/2864 while vm =~ /([a-zA-Z0-9_]+)=([a-zA-Z0-9_:.\/-]+):/ 2865 2865 envs << [$1, $2] 2866 2866 vm = $~.post_match
Note:
See TracChangeset
for help on using the changeset viewer.