mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.ssa] cmd/compile/internal/ssa: implement ORETJMP
Change-Id: I352c7b9aab053959bc74c15861339e1dbe545ddc Reviewed-on: https://go-review.googlesource.com/14404 Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
fd8c71be86
commit
8a1f6217c5
6 changed files with 60 additions and 14 deletions
|
|
@ -376,13 +376,14 @@ var genericOps = []opData{
|
|||
// First nil [always,never]
|
||||
|
||||
var genericBlocks = []blockData{
|
||||
{name: "Exit"}, // no successors. There should only be 1 of these.
|
||||
{name: "Dead"}, // no successors; determined to be dead but not yet removed
|
||||
{name: "Plain"}, // a single successor
|
||||
{name: "If"}, // 2 successors, if control goto Succs[0] else goto Succs[1]
|
||||
{name: "Call"}, // 2 successors, normal return and panic
|
||||
{name: "First"}, // 2 successors, always takes the first one (second is dead)
|
||||
{name: "Ret"}, // 1 successor, branches to exit
|
||||
{name: "Exit"}, // no successors. There should only be 1 of these.
|
||||
{name: "Dead"}, // no successors; determined to be dead but not yet removed
|
||||
{name: "Plain"}, // a single successor
|
||||
{name: "If"}, // 2 successors, if control goto Succs[0] else goto Succs[1]
|
||||
{name: "Call"}, // 2 successors, normal return and panic
|
||||
{name: "First"}, // 2 successors, always takes the first one (second is dead)
|
||||
{name: "Ret"}, // 1 successor, branches to exit
|
||||
{name: "RetJmp"}, // 1 successor, branches to exit. Jumps to b.Aux.(*gc.Sym)
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue