// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package ir

import (
	"cmd/compile/internal/types"
	"cmd/internal/obj"
)

// Syms holds known symbols.
var Syms struct {
	AssertE2I       *obj.LSym
	AssertE2I2      *obj.LSym
	AssertI2I       *obj.LSym
	AssertI2I2      *obj.LSym
	Deferproc       *obj.LSym
	DeferprocStack  *obj.LSym
	Deferreturn     *obj.LSym
	Duffcopy        *obj.LSym
	Duffzero        *obj.LSym
	GCWriteBarrier  *obj.LSym
	Goschedguarded  *obj.LSym
	Growslice       *obj.LSym
	Msanread        *obj.LSym
	Msanwrite       *obj.LSym
	Msanmove        *obj.LSym
	Newobject       *obj.LSym
	Newproc         *obj.LSym
	Panicdivide     *obj.LSym
	Panicshift      *obj.LSym
	PanicdottypeE   *obj.LSym
	PanicdottypeI   *obj.LSym
	Panicnildottype *obj.LSym
	Panicoverflow   *obj.LSym
	Raceread        *obj.LSym
	Racereadrange   *obj.LSym
	Racewrite       *obj.LSym
	Racewriterange  *obj.LSym
	// Wasm
	SigPanic        *obj.LSym
	Staticuint64s   *obj.LSym
	Typedmemclr     *obj.LSym
	Typedmemmove    *obj.LSym
	Udiv            *obj.LSym
	WriteBarrier    *obj.LSym
	Zerobase        *obj.LSym
	ARM64HasATOMICS *obj.LSym
	ARMHasVFPv4     *obj.LSym
	X86HasFMA       *obj.LSym
	X86HasPOPCNT    *obj.LSym
	X86HasSSE41     *obj.LSym
	// Wasm
	WasmDiv *obj.LSym
	// Wasm
	WasmMove *obj.LSym
	// Wasm
	WasmZero *obj.LSym
	// Wasm
	WasmTruncS *obj.LSym
	// Wasm
	WasmTruncU *obj.LSym
}

// Pkgs holds known packages.
var Pkgs struct {
	Go      *types.Pkg
	Itab    *types.Pkg
	Runtime *types.Pkg
	Unsafe  *types.Pkg
}
