ssa: panicBlk use IndirectJump

This commit is contained in:
xushiwei
2024-07-28 18:57:46 +08:00
parent 389750d7d8
commit fa0ce2a14c

View File

@@ -255,6 +255,7 @@ func (p Function) endDefer(b Builder) {
}
procBlk := self.procBlk
panicBlk := self.panicBlk
rethPtr := self.rethPtr
rundPtr := self.rundPtr
nexts := self.rundsNext
if len(nexts) == 0 {
@@ -273,7 +274,7 @@ func (p Function) endDefer(b Builder) {
b.SetBlockEx(panicBlk, AtEnd, false) // exec runDefers and rethrow
b.Store(rundPtr, nexts[0].Addr()) // nexts[0] is rethrowBlk
b.Jump(procBlk)
b.IndirectJump(b.Load(rethPtr), self.rethsNext)
}
// -----------------------------------------------------------------------------