github.com/Andyfoo/golang/x/sys@v0.0.0-20190901054642-57c1bf301704/cpu/byteorder.go (about) 1 // Copyright 2019 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 cpu 6 7 import ( 8 "encoding/binary" 9 "runtime" 10 ) 11 12 // hostByteOrder returns binary.LittleEndian on little-endian machines and 13 // binary.BigEndian on big-endian machines. 14 func hostByteOrder() binary.ByteOrder { 15 switch runtime.GOARCH { 16 case "386", "amd64", "amd64p32", 17 "arm", "arm64", 18 "mipsle", "mips64le", "mips64p32le", 19 "ppc64le", 20 "riscv", "riscv64": 21 return binary.LittleEndian 22 case "armbe", "arm64be", 23 "mips", "mips64", "mips64p32", 24 "ppc", "ppc64", 25 "s390", "s390x", 26 "sparc", "sparc64": 27 return binary.BigEndian 28 } 29 panic("unknown architecture") 30 }