github.com/miolini/go@v0.0.0-20160405192216-fca68c8cb408/src/cmd/compile/internal/ppc64/galign.go (about) 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 5 package ppc64 6 7 import ( 8 "cmd/compile/internal/gc" 9 "cmd/internal/obj" 10 "cmd/internal/obj/ppc64" 11 ) 12 13 func betypeinit() { 14 gc.Widthptr = 8 15 gc.Widthint = 8 16 gc.Widthreg = 8 17 18 if gc.Ctxt.Flag_shared != 0 { 19 gc.Thearch.ReservedRegs = append(gc.Thearch.ReservedRegs, ppc64.REG_R2) 20 gc.Thearch.ReservedRegs = append(gc.Thearch.ReservedRegs, ppc64.REG_R12) 21 } 22 } 23 24 func Main() { 25 gc.Thearch.Thechar = '9' 26 gc.Thearch.Thestring = "ppc64" 27 gc.Thearch.Thelinkarch = &ppc64.Linkppc64 28 if obj.Getgoarch() == "ppc64le" { 29 gc.Thearch.Thestring = "ppc64le" 30 gc.Thearch.Thelinkarch = &ppc64.Linkppc64le 31 } 32 gc.Thearch.REGSP = ppc64.REGSP 33 gc.Thearch.REGCTXT = ppc64.REGCTXT 34 gc.Thearch.REGCALLX = ppc64.REG_R3 35 gc.Thearch.REGCALLX2 = ppc64.REG_R4 36 gc.Thearch.REGRETURN = ppc64.REG_R3 37 gc.Thearch.REGMIN = ppc64.REG_R0 38 gc.Thearch.REGMAX = ppc64.REG_R31 39 gc.Thearch.FREGMIN = ppc64.REG_F0 40 gc.Thearch.FREGMAX = ppc64.REG_F31 41 gc.Thearch.MAXWIDTH = 1 << 50 42 gc.Thearch.ReservedRegs = resvd 43 44 gc.Thearch.Betypeinit = betypeinit 45 gc.Thearch.Cgen_hmul = cgen_hmul 46 gc.Thearch.Cgen_shift = cgen_shift 47 gc.Thearch.Clearfat = clearfat 48 gc.Thearch.Defframe = defframe 49 gc.Thearch.Dodiv = dodiv 50 gc.Thearch.Excise = excise 51 gc.Thearch.Expandchecks = expandchecks 52 gc.Thearch.Getg = getg 53 gc.Thearch.Gins = gins 54 gc.Thearch.Ginscmp = ginscmp 55 gc.Thearch.Ginscon = ginscon 56 gc.Thearch.Ginsnop = ginsnop 57 gc.Thearch.Gmove = gmove 58 gc.Thearch.Peep = peep 59 gc.Thearch.Proginfo = proginfo 60 gc.Thearch.Regtyp = regtyp 61 gc.Thearch.Sameaddr = sameaddr 62 gc.Thearch.Smallindir = smallindir 63 gc.Thearch.Stackaddr = stackaddr 64 gc.Thearch.Blockcopy = blockcopy 65 gc.Thearch.Sudoaddable = sudoaddable 66 gc.Thearch.Sudoclean = sudoclean 67 gc.Thearch.Excludedregs = excludedregs 68 gc.Thearch.RtoB = RtoB 69 gc.Thearch.FtoB = RtoB 70 gc.Thearch.BtoR = BtoR 71 gc.Thearch.BtoF = BtoF 72 gc.Thearch.Optoas = optoas 73 gc.Thearch.Doregbits = doregbits 74 gc.Thearch.Regnames = regnames 75 76 initvariants() 77 initproginfo() 78 79 gc.Main() 80 gc.Exit(0) 81 }