Ignore:
Timestamp:
Oct 19, 2021, 5:40:19 PM (4 years ago)
Author:
Tadeu Zagallo
Message:

Address post-landing feedback to wasm exceptions
https://bugs.webkit.org/show_bug.cgi?id=231973

Reviewed by Saam Barati.

Address comments left by Saam in https://bugs.webkit.org/show_bug.cgi?id=229681
after the patch landed. This includes deleting some unused code, and renaming a
couple variables and methods, but the biggest change is copying the callee saves
to VMEntry in the llint rethrow.

  • interpreter/Interpreter.cpp:

(JSC::CatchInfo::CatchInfo):
(JSC::UnwindFunctor::operator() const):

  • interpreter/Interpreter.h:

(JSC::CatchInfo::CatchInfo): Deleted.

  • jit/JSInterfaceJIT.h:

(JSC::JSInterfaceJIT::convertCalleeToVM): Deleted.

  • llint/WebAssembly.asm:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::ControlData::ControlData):
(JSC::Wasm::B3IRGenerator::ControlData::tryDepth const):
(JSC::Wasm::B3IRGenerator::connectControlAtEntrypoint):
(JSC::Wasm::B3IRGenerator::addLoop):
(JSC::Wasm::B3IRGenerator::addTry):
(JSC::Wasm::B3IRGenerator::preparePatchpointForExceptions):
(JSC::Wasm::B3IRGenerator::emitCatchImpl):
(JSC::Wasm::B3IRGenerator::addDelegateToUnreachable):
(JSC::Wasm::B3IRGenerator::addThrow):
(JSC::Wasm::B3IRGenerator::addRethrow):
(JSC::Wasm::B3IRGenerator::addEndToUnreachable):
(JSC::Wasm::B3IRGenerator::connectControlEntry): Deleted.

  • wasm/WasmCallee.h:

(JSC::Wasm::Callee::llintFunctionCodeBlock const):
(JSC::Wasm::Callee::functionCodeBlock const): Deleted.

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::unifyValuesWithBlock):
(JSC::Wasm::LLIntGenerator::addTry):
(JSC::Wasm::LLIntGenerator::addThrow):
(JSC::Wasm::LLIntGenerator::repatch): Deleted.

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmOperations.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h

    r283852 r284513  
    5858        void emitPutToCallFrameHeader(void* value, VirtualRegister entry);
    5959        void emitPutCellToCallFrameHeader(RegisterID from, VirtualRegister entry);
    60         void convertCalleeToVM(RegisterID callee);
    6160
    6261        VM* vm() const { return m_vm; }
     
    160159    }
    161160
    162     ALWAYS_INLINE void JSInterfaceJIT::convertCalleeToVM(RegisterID callee)
    163     {
    164         auto preciseAllocationCase = branchTestPtr(CCallHelpers::NonZero, callee, CCallHelpers::TrustedImm32(PreciseAllocation::halfAlignment));
    165         andPtr(CCallHelpers::TrustedImmPtr(MarkedBlock::blockMask), callee);
    166         loadPtr(CCallHelpers::Address(callee, MarkedBlock::offsetOfFooter + MarkedBlock::Footer::offsetOfVM()), callee);
    167         auto loadedCase = jump();
    168 
    169         preciseAllocationCase.link(this);
    170         loadPtr(CCallHelpers::Address(callee, PreciseAllocation::offsetOfWeakSet() + WeakSet::offsetOfVM() - PreciseAllocation::headerSize()), callee);
    171 
    172         loadedCase.link(this);
    173     }
    174 
    175161} // namespace JSC
    176162
Note: See TracChangeset for help on using the changeset viewer.