blob: 7f53ee3731cab97b54f04472375a5f81ff99679d [file] [log] [blame]
Dan Willemsen6ff23252015-09-15 13:49:18 -07001// Copyright 2009 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package x86
6
7import (
8 "cmd/compile/internal/gc"
Dan Willemsen6ff23252015-09-15 13:49:18 -07009 "cmd/internal/obj/x86"
Dan Willemsenc78f7142017-07-26 13:08:14 -070010 "cmd/internal/objabi"
Dan Willemsen6ff23252015-09-15 13:49:18 -070011 "fmt"
12 "os"
13)
14
Dan Willemsenc78f7142017-07-26 13:08:14 -070015func Init(arch *gc.Arch) {
16 arch.LinkArch = &x86.Link386
17 arch.REGSP = x86.REGSP
18 switch v := objabi.GO386; v {
Dan Willemsen6ff23252015-09-15 13:49:18 -070019 case "387":
Dan Willemsenc78f7142017-07-26 13:08:14 -070020 arch.Use387 = true
21 arch.SSAGenValue = ssaGenValue387
22 arch.SSAGenBlock = ssaGenBlock387
Dan Willemsen6ff23252015-09-15 13:49:18 -070023 case "sse2":
Dan Willemsenc78f7142017-07-26 13:08:14 -070024 arch.SSAGenValue = ssaGenValue
25 arch.SSAGenBlock = ssaGenBlock
Dan Willemsen6ff23252015-09-15 13:49:18 -070026 default:
27 fmt.Fprintf(os.Stderr, "unsupported setting GO386=%s\n", v)
28 gc.Exit(1)
29 }
Dan Willemsenc78f7142017-07-26 13:08:14 -070030 arch.MAXWIDTH = (1 << 32) - 1
Dan Willemsen6ff23252015-09-15 13:49:18 -070031
Dan Willemsenc78f7142017-07-26 13:08:14 -070032 arch.ZeroRange = zerorange
33 arch.ZeroAuto = zeroAuto
34 arch.Ginsnop = ginsnop
Colin Cross1371fe42019-03-19 21:08:48 -070035 arch.Ginsnopdefer = ginsnop
Dan Willemsen6ff23252015-09-15 13:49:18 -070036
Dan Willemsenc78f7142017-07-26 13:08:14 -070037 arch.SSAMarkMoves = ssaMarkMoves
Dan Willemsen6ff23252015-09-15 13:49:18 -070038}