Changeset 270988 in webkit
- Timestamp:
- Dec 18, 2020, 1:42:13 PM (4 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r270981 r270988 1 2020-12-18 Mark Lam <mark.lam@apple.com> 2 3 Fix MacroAssemblerARM64E::validateUntaggedPtr() to account for TBI. 4 https://bugs.webkit.org/show_bug.cgi?id=220021 5 <rdar://problem/72474809> 6 7 Reviewed by Saam Barati. 8 9 * assembler/AbstractMacroAssembler.h: 10 * assembler/DisallowMacroScratchRegisterUsage.h: 11 - templatized the DisallowMacroScratchRegisterUsage class so that we can #include 12 it in MacroAssembler implementations. 13 * assembler/MacroAssemblerARM64E.h: 14 (JSC::MacroAssemblerARM64E::validateUntaggedPtr): 15 1 16 2020-12-17 Mark Lam <mark.lam@apple.com> 2 17 -
trunk/Source/JavaScriptCore/assembler/AbstractMacroAssembler.h
r270686 r270988 47 47 48 48 class AllowMacroScratchRegisterUsage; 49 class DisallowMacroScratchRegisterUsage;50 49 class LinkBuffer; 51 50 class Watchpoint; 51 52 template<typename T> class DisallowMacroScratchRegisterUsage; 53 52 54 namespace DFG { 53 55 struct OSRExit; … … 1108 1110 friend class AllowMacroScratchRegisterUsage; 1109 1111 friend class AllowMacroScratchRegisterUsageIf; 1110 friend class DisallowMacroScratchRegisterUsage;1112 template<typename T> friend class DisallowMacroScratchRegisterUsage; 1111 1113 unsigned m_tempRegistersValidBits; 1112 1114 bool m_allowScratchRegister { true }; -
trunk/Source/JavaScriptCore/assembler/DisallowMacroScratchRegisterUsage.h
r231317 r270988 1 1 /* 2 * Copyright (C) 2015 Apple Inc. All rights reserved.2 * Copyright (C) 2015-2020 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 28 28 #if ENABLE(ASSEMBLER) 29 29 30 #include "MacroAssembler.h"31 32 30 namespace JSC { 33 31 32 template<typename MacroAssembler> 34 33 class DisallowMacroScratchRegisterUsage { 35 34 public: -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64E.h
r270888 r270988 28 28 #if ENABLE(ASSEMBLER) && CPU(ARM64E) 29 29 30 #include "DisallowMacroScratchRegisterUsage.h" 31 30 32 // We need to include this before MacroAssemblerARM64.h because MacroAssemblerARM64 31 33 // will be defined in terms of ARM64EAssembler for ARM64E. … … 84 86 if (scratch == InvalidGPR) 85 87 scratch = getCachedDataTempRegisterIDAndInvalidate(); 86 load8(Address(target), scratch); 88 89 DisallowMacroScratchRegisterUsage disallowScope(*this); 90 rshift64(target, TrustedImm32(8), scratch); 91 and64(TrustedImm64(0xff000000000000), scratch, scratch); 92 or64(target, scratch, scratch); 93 load8(Address(scratch), scratch); 87 94 } 88 95
Note:
See TracChangeset
for help on using the changeset viewer.