1// 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/base" 9 "cmd/compile/internal/ssagen" 10 "cmd/internal/obj/x86" 11 "fmt" 12 "internal/buildcfg" 13 "os" 14) 15 16func Init(arch *ssagen.ArchInfo) { 17 arch.LinkArch = &x86.Link386 18 arch.REGSP = x86.REGSP 19 arch.SSAGenValue = ssaGenValue 20 arch.SSAGenBlock = ssaGenBlock 21 arch.MAXWIDTH = (1 << 32) - 1 22 switch v := buildcfg.GO386; v { 23 case "sse2": 24 case "softfloat": 25 arch.SoftFloat = true 26 case "387": 27 fmt.Fprintf(os.Stderr, "unsupported setting GO386=387. Consider using GO386=softfloat instead.\n") 28 base.Exit(1) 29 default: 30 fmt.Fprintf(os.Stderr, "unsupported setting GO386=%s\n", v) 31 base.Exit(1) 32 33 } 34 35 arch.ZeroRange = zerorange 36 arch.Ginsnop = ginsnop 37 38 arch.SSAMarkMoves = ssaMarkMoves 39} 40