You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1033 lines
13 KiB
Go
1033 lines
13 KiB
Go
// cmd/9c/9.out.h from Vita Nuova.
|
|
//
|
|
// Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved.
|
|
// Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net)
|
|
// Portions Copyright © 1997-1999 Vita Nuova Limited
|
|
// Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
|
|
// Portions Copyright © 2004,2006 Bruce Ellis
|
|
// Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net)
|
|
// Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
|
|
// Portions Copyright © 2009 The Go Authors. All rights reserved.
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in
|
|
// all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
// THE SOFTWARE.
|
|
|
|
package ppc64
|
|
|
|
import "github.com/twitchyliquid64/golang-asm/obj"
|
|
|
|
//go:generate go run ../stringer.go -i $GOFILE -o anames.go -p ppc64
|
|
|
|
/*
|
|
* powerpc 64
|
|
*/
|
|
const (
|
|
NSNAME = 8
|
|
NSYM = 50
|
|
NREG = 32 /* number of general registers */
|
|
NFREG = 32 /* number of floating point registers */
|
|
)
|
|
|
|
const (
|
|
/* RBasePPC64 = 4096 */
|
|
/* R0=4096 ... R31=4127 */
|
|
REG_R0 = obj.RBasePPC64 + iota
|
|
REG_R1
|
|
REG_R2
|
|
REG_R3
|
|
REG_R4
|
|
REG_R5
|
|
REG_R6
|
|
REG_R7
|
|
REG_R8
|
|
REG_R9
|
|
REG_R10
|
|
REG_R11
|
|
REG_R12
|
|
REG_R13
|
|
REG_R14
|
|
REG_R15
|
|
REG_R16
|
|
REG_R17
|
|
REG_R18
|
|
REG_R19
|
|
REG_R20
|
|
REG_R21
|
|
REG_R22
|
|
REG_R23
|
|
REG_R24
|
|
REG_R25
|
|
REG_R26
|
|
REG_R27
|
|
REG_R28
|
|
REG_R29
|
|
REG_R30
|
|
REG_R31
|
|
|
|
/* F0=4128 ... F31=4159 */
|
|
REG_F0
|
|
REG_F1
|
|
REG_F2
|
|
REG_F3
|
|
REG_F4
|
|
REG_F5
|
|
REG_F6
|
|
REG_F7
|
|
REG_F8
|
|
REG_F9
|
|
REG_F10
|
|
REG_F11
|
|
REG_F12
|
|
REG_F13
|
|
REG_F14
|
|
REG_F15
|
|
REG_F16
|
|
REG_F17
|
|
REG_F18
|
|
REG_F19
|
|
REG_F20
|
|
REG_F21
|
|
REG_F22
|
|
REG_F23
|
|
REG_F24
|
|
REG_F25
|
|
REG_F26
|
|
REG_F27
|
|
REG_F28
|
|
REG_F29
|
|
REG_F30
|
|
REG_F31
|
|
|
|
/* V0=4160 ... V31=4191 */
|
|
REG_V0
|
|
REG_V1
|
|
REG_V2
|
|
REG_V3
|
|
REG_V4
|
|
REG_V5
|
|
REG_V6
|
|
REG_V7
|
|
REG_V8
|
|
REG_V9
|
|
REG_V10
|
|
REG_V11
|
|
REG_V12
|
|
REG_V13
|
|
REG_V14
|
|
REG_V15
|
|
REG_V16
|
|
REG_V17
|
|
REG_V18
|
|
REG_V19
|
|
REG_V20
|
|
REG_V21
|
|
REG_V22
|
|
REG_V23
|
|
REG_V24
|
|
REG_V25
|
|
REG_V26
|
|
REG_V27
|
|
REG_V28
|
|
REG_V29
|
|
REG_V30
|
|
REG_V31
|
|
|
|
/* VS0=4192 ... VS63=4255 */
|
|
REG_VS0
|
|
REG_VS1
|
|
REG_VS2
|
|
REG_VS3
|
|
REG_VS4
|
|
REG_VS5
|
|
REG_VS6
|
|
REG_VS7
|
|
REG_VS8
|
|
REG_VS9
|
|
REG_VS10
|
|
REG_VS11
|
|
REG_VS12
|
|
REG_VS13
|
|
REG_VS14
|
|
REG_VS15
|
|
REG_VS16
|
|
REG_VS17
|
|
REG_VS18
|
|
REG_VS19
|
|
REG_VS20
|
|
REG_VS21
|
|
REG_VS22
|
|
REG_VS23
|
|
REG_VS24
|
|
REG_VS25
|
|
REG_VS26
|
|
REG_VS27
|
|
REG_VS28
|
|
REG_VS29
|
|
REG_VS30
|
|
REG_VS31
|
|
REG_VS32
|
|
REG_VS33
|
|
REG_VS34
|
|
REG_VS35
|
|
REG_VS36
|
|
REG_VS37
|
|
REG_VS38
|
|
REG_VS39
|
|
REG_VS40
|
|
REG_VS41
|
|
REG_VS42
|
|
REG_VS43
|
|
REG_VS44
|
|
REG_VS45
|
|
REG_VS46
|
|
REG_VS47
|
|
REG_VS48
|
|
REG_VS49
|
|
REG_VS50
|
|
REG_VS51
|
|
REG_VS52
|
|
REG_VS53
|
|
REG_VS54
|
|
REG_VS55
|
|
REG_VS56
|
|
REG_VS57
|
|
REG_VS58
|
|
REG_VS59
|
|
REG_VS60
|
|
REG_VS61
|
|
REG_VS62
|
|
REG_VS63
|
|
|
|
REG_CR0
|
|
REG_CR1
|
|
REG_CR2
|
|
REG_CR3
|
|
REG_CR4
|
|
REG_CR5
|
|
REG_CR6
|
|
REG_CR7
|
|
|
|
REG_MSR
|
|
REG_FPSCR
|
|
REG_CR
|
|
|
|
REG_SPECIAL = REG_CR0
|
|
|
|
REG_SPR0 = obj.RBasePPC64 + 1024 // first of 1024 registers
|
|
REG_DCR0 = obj.RBasePPC64 + 2048 // first of 1024 registers
|
|
|
|
REG_XER = REG_SPR0 + 1
|
|
REG_LR = REG_SPR0 + 8
|
|
REG_CTR = REG_SPR0 + 9
|
|
|
|
REGZERO = REG_R0 /* set to zero */
|
|
REGSP = REG_R1
|
|
REGSB = REG_R2
|
|
REGRET = REG_R3
|
|
REGARG = -1 /* -1 disables passing the first argument in register */
|
|
REGRT1 = REG_R3 /* reserved for runtime, duffzero and duffcopy */
|
|
REGRT2 = REG_R4 /* reserved for runtime, duffcopy */
|
|
REGMIN = REG_R7 /* register variables allocated from here to REGMAX */
|
|
REGCTXT = REG_R11 /* context for closures */
|
|
REGTLS = REG_R13 /* C ABI TLS base pointer */
|
|
REGMAX = REG_R27
|
|
REGEXT = REG_R30 /* external registers allocated from here down */
|
|
REGG = REG_R30 /* G */
|
|
REGTMP = REG_R31 /* used by the linker */
|
|
FREGRET = REG_F0
|
|
FREGMIN = REG_F17 /* first register variable */
|
|
FREGMAX = REG_F26 /* last register variable for 9g only */
|
|
FREGEXT = REG_F26 /* first external register */
|
|
)
|
|
|
|
// OpenPOWER ABI for Linux Supplement Power Architecture 64-Bit ELF V2 ABI
|
|
// https://openpowerfoundation.org/?resource_lib=64-bit-elf-v2-abi-specification-power-architecture
|
|
var PPC64DWARFRegisters = map[int16]int16{}
|
|
|
|
func init() {
|
|
// f assigns dwarfregister[from:to] = (base):(to-from+base)
|
|
f := func(from, to, base int16) {
|
|
for r := int16(from); r <= to; r++ {
|
|
PPC64DWARFRegisters[r] = r - from + base
|
|
}
|
|
}
|
|
f(REG_R0, REG_R31, 0)
|
|
f(REG_F0, REG_F31, 32)
|
|
f(REG_V0, REG_V31, 77)
|
|
f(REG_CR0, REG_CR7, 68)
|
|
|
|
f(REG_VS0, REG_VS31, 32) // overlaps F0-F31
|
|
f(REG_VS32, REG_VS63, 77) // overlaps V0-V31
|
|
PPC64DWARFRegisters[REG_LR] = 65
|
|
PPC64DWARFRegisters[REG_CTR] = 66
|
|
PPC64DWARFRegisters[REG_XER] = 76
|
|
}
|
|
|
|
/*
|
|
* GENERAL:
|
|
*
|
|
* compiler allocates R3 up as temps
|
|
* compiler allocates register variables R7-R27
|
|
* compiler allocates external registers R30 down
|
|
*
|
|
* compiler allocates register variables F17-F26
|
|
* compiler allocates external registers F26 down
|
|
*/
|
|
const (
|
|
BIG = 32768 - 8
|
|
)
|
|
|
|
const (
|
|
/* mark flags */
|
|
LABEL = 1 << 0
|
|
LEAF = 1 << 1
|
|
FLOAT = 1 << 2
|
|
BRANCH = 1 << 3
|
|
LOAD = 1 << 4
|
|
FCMP = 1 << 5
|
|
SYNC = 1 << 6
|
|
LIST = 1 << 7
|
|
FOLL = 1 << 8
|
|
NOSCHED = 1 << 9
|
|
)
|
|
|
|
// Values for use in branch instruction BC
|
|
// BC B0,BI,label
|
|
// BO is type of branch + likely bits described below
|
|
// BI is CR value + branch type
|
|
// ex: BEQ CR2,label is BC 12,10,label
|
|
// 12 = BO_BCR
|
|
// 10 = BI_CR2 + BI_EQ
|
|
|
|
const (
|
|
BI_CR0 = 0
|
|
BI_CR1 = 4
|
|
BI_CR2 = 8
|
|
BI_CR3 = 12
|
|
BI_CR4 = 16
|
|
BI_CR5 = 20
|
|
BI_CR6 = 24
|
|
BI_CR7 = 28
|
|
BI_LT = 0
|
|
BI_GT = 1
|
|
BI_EQ = 2
|
|
BI_OVF = 3
|
|
)
|
|
|
|
// Values for the BO field. Add the branch type to
|
|
// the likely bits, if a likely setting is known.
|
|
// If branch likely or unlikely is not known, don't set it.
|
|
// e.g. branch on cr+likely = 15
|
|
|
|
const (
|
|
BO_BCTR = 16 // branch on ctr value
|
|
BO_BCR = 12 // branch on cr value
|
|
BO_BCRBCTR = 8 // branch on ctr and cr value
|
|
BO_NOTBCR = 4 // branch on not cr value
|
|
BO_UNLIKELY = 2 // value for unlikely
|
|
BO_LIKELY = 3 // value for likely
|
|
)
|
|
|
|
// Bit settings from the CR
|
|
|
|
const (
|
|
C_COND_LT = iota // 0 result is negative
|
|
C_COND_GT // 1 result is positive
|
|
C_COND_EQ // 2 result is zero
|
|
C_COND_SO // 3 summary overflow or FP compare w/ NaN
|
|
)
|
|
|
|
const (
|
|
C_NONE = iota
|
|
C_REG
|
|
C_FREG
|
|
C_VREG
|
|
C_VSREG
|
|
C_CREG
|
|
C_SPR /* special processor register */
|
|
C_ZCON
|
|
C_SCON /* 16 bit signed */
|
|
C_UCON /* 32 bit signed, low 16 bits 0 */
|
|
C_ADDCON /* -0x8000 <= v < 0 */
|
|
C_ANDCON /* 0 < v <= 0xFFFF */
|
|
C_LCON /* other 32 */
|
|
C_DCON /* other 64 (could subdivide further) */
|
|
C_SACON /* $n(REG) where n <= int16 */
|
|
C_SECON
|
|
C_LACON /* $n(REG) where int16 < n <= int32 */
|
|
C_LECON
|
|
C_DACON /* $n(REG) where int32 < n */
|
|
C_SBRA
|
|
C_LBRA
|
|
C_LBRAPIC
|
|
C_SAUTO
|
|
C_LAUTO
|
|
C_SEXT
|
|
C_LEXT
|
|
C_ZOREG // conjecture: either (1) register + zeroed offset, or (2) "R0" implies zero or C_REG
|
|
C_SOREG // register + signed offset
|
|
C_LOREG
|
|
C_FPSCR
|
|
C_MSR
|
|
C_XER
|
|
C_LR
|
|
C_CTR
|
|
C_ANY
|
|
C_GOK
|
|
C_ADDR
|
|
C_GOTADDR
|
|
C_TOCADDR
|
|
C_TLS_LE
|
|
C_TLS_IE
|
|
C_TEXTSIZE
|
|
|
|
C_NCLASS /* must be the last */
|
|
)
|
|
|
|
const (
|
|
AADD = obj.ABasePPC64 + obj.A_ARCHSPECIFIC + iota
|
|
AADDCC
|
|
AADDIS
|
|
AADDV
|
|
AADDVCC
|
|
AADDC
|
|
AADDCCC
|
|
AADDCV
|
|
AADDCVCC
|
|
AADDME
|
|
AADDMECC
|
|
AADDMEVCC
|
|
AADDMEV
|
|
AADDE
|
|
AADDECC
|
|
AADDEVCC
|
|
AADDEV
|
|
AADDZE
|
|
AADDZECC
|
|
AADDZEVCC
|
|
AADDZEV
|
|
AADDEX
|
|
AAND
|
|
AANDCC
|
|
AANDN
|
|
AANDNCC
|
|
AANDISCC
|
|
ABC
|
|
ABCL
|
|
ABEQ
|
|
ABGE // not LT = G/E/U
|
|
ABGT
|
|
ABLE // not GT = L/E/U
|
|
ABLT
|
|
ABNE // not EQ = L/G/U
|
|
ABVC // Unordered-clear
|
|
ABVS // Unordered-set
|
|
ACMP
|
|
ACMPU
|
|
ACMPEQB
|
|
ACNTLZW
|
|
ACNTLZWCC
|
|
ACRAND
|
|
ACRANDN
|
|
ACREQV
|
|
ACRNAND
|
|
ACRNOR
|
|
ACROR
|
|
ACRORN
|
|
ACRXOR
|
|
ADIVW
|
|
ADIVWCC
|
|
ADIVWVCC
|
|
ADIVWV
|
|
ADIVWU
|
|
ADIVWUCC
|
|
ADIVWUVCC
|
|
ADIVWUV
|
|
AMODUD
|
|
AMODUW
|
|
AMODSD
|
|
AMODSW
|
|
AEQV
|
|
AEQVCC
|
|
AEXTSB
|
|
AEXTSBCC
|
|
AEXTSH
|
|
AEXTSHCC
|
|
AFABS
|
|
AFABSCC
|
|
AFADD
|
|
AFADDCC
|
|
AFADDS
|
|
AFADDSCC
|
|
AFCMPO
|
|
AFCMPU
|
|
AFCTIW
|
|
AFCTIWCC
|
|
AFCTIWZ
|
|
AFCTIWZCC
|
|
AFDIV
|
|
AFDIVCC
|
|
AFDIVS
|
|
AFDIVSCC
|
|
AFMADD
|
|
AFMADDCC
|
|
AFMADDS
|
|
AFMADDSCC
|
|
AFMOVD
|
|
AFMOVDCC
|
|
AFMOVDU
|
|
AFMOVS
|
|
AFMOVSU
|
|
AFMOVSX
|
|
AFMOVSZ
|
|
AFMSUB
|
|
AFMSUBCC
|
|
AFMSUBS
|
|
AFMSUBSCC
|
|
AFMUL
|
|
AFMULCC
|
|
AFMULS
|
|
AFMULSCC
|
|
AFNABS
|
|
AFNABSCC
|
|
AFNEG
|
|
AFNEGCC
|
|
AFNMADD
|
|
AFNMADDCC
|
|
AFNMADDS
|
|
AFNMADDSCC
|
|
AFNMSUB
|
|
AFNMSUBCC
|
|
AFNMSUBS
|
|
AFNMSUBSCC
|
|
AFRSP
|
|
AFRSPCC
|
|
AFSUB
|
|
AFSUBCC
|
|
AFSUBS
|
|
AFSUBSCC
|
|
AISEL
|
|
AMOVMW
|
|
ALBAR
|
|
ALHAR
|
|
ALSW
|
|
ALWAR
|
|
ALWSYNC
|
|
AMOVDBR
|
|
AMOVWBR
|
|
AMOVB
|
|
AMOVBU
|
|
AMOVBZ
|
|
AMOVBZU
|
|
AMOVH
|
|
AMOVHBR
|
|
AMOVHU
|
|
AMOVHZ
|
|
AMOVHZU
|
|
AMOVW
|
|
AMOVWU
|
|
AMOVFL
|
|
AMOVCRFS
|
|
AMTFSB0
|
|
AMTFSB0CC
|
|
AMTFSB1
|
|
AMTFSB1CC
|
|
AMULHW
|
|
AMULHWCC
|
|
AMULHWU
|
|
AMULHWUCC
|
|
AMULLW
|
|
AMULLWCC
|
|
AMULLWVCC
|
|
AMULLWV
|
|
ANAND
|
|
ANANDCC
|
|
ANEG
|
|
ANEGCC
|
|
ANEGVCC
|
|
ANEGV
|
|
ANOR
|
|
ANORCC
|
|
AOR
|
|
AORCC
|
|
AORN
|
|
AORNCC
|
|
AORIS
|
|
AREM
|
|
AREMU
|
|
ARFI
|
|
ARLWMI
|
|
ARLWMICC
|
|
ARLWNM
|
|
ARLWNMCC
|
|
ACLRLSLWI
|
|
ASLW
|
|
ASLWCC
|
|
ASRW
|
|
ASRAW
|
|
ASRAWCC
|
|
ASRWCC
|
|
ASTBCCC
|
|
ASTHCCC
|
|
ASTSW
|
|
ASTWCCC
|
|
ASUB
|
|
ASUBCC
|
|
ASUBVCC
|
|
ASUBC
|
|
ASUBCCC
|
|
ASUBCV
|
|
ASUBCVCC
|
|
ASUBME
|
|
ASUBMECC
|
|
ASUBMEVCC
|
|
ASUBMEV
|
|
ASUBV
|
|
ASUBE
|
|
ASUBECC
|
|
ASUBEV
|
|
ASUBEVCC
|
|
ASUBZE
|
|
ASUBZECC
|
|
ASUBZEVCC
|
|
ASUBZEV
|
|
ASYNC
|
|
AXOR
|
|
AXORCC
|
|
AXORIS
|
|
|
|
ADCBF
|
|
ADCBI
|
|
ADCBST
|
|
ADCBT
|
|
ADCBTST
|
|
ADCBZ
|
|
AECIWX
|
|
AECOWX
|
|
AEIEIO
|
|
AICBI
|
|
AISYNC
|
|
APTESYNC
|
|
ATLBIE
|
|
ATLBIEL
|
|
ATLBSYNC
|
|
ATW
|
|
|
|
ASYSCALL
|
|
AWORD
|
|
|
|
ARFCI
|
|
|
|
AFCPSGN
|
|
AFCPSGNCC
|
|
/* optional on 32-bit */
|
|
AFRES
|
|
AFRESCC
|
|
AFRIM
|
|
AFRIMCC
|
|
AFRIP
|
|
AFRIPCC
|
|
AFRIZ
|
|
AFRIZCC
|
|
AFRIN
|
|
AFRINCC
|
|
AFRSQRTE
|
|
AFRSQRTECC
|
|
AFSEL
|
|
AFSELCC
|
|
AFSQRT
|
|
AFSQRTCC
|
|
AFSQRTS
|
|
AFSQRTSCC
|
|
|
|
/* 64-bit */
|
|
|
|
ACNTLZD
|
|
ACNTLZDCC
|
|
ACMPW /* CMP with L=0 */
|
|
ACMPWU
|
|
ACMPB
|
|
AFTDIV
|
|
AFTSQRT
|
|
ADIVD
|
|
ADIVDCC
|
|
ADIVDE
|
|
ADIVDECC
|
|
ADIVDEU
|
|
ADIVDEUCC
|
|
ADIVDVCC
|
|
ADIVDV
|
|
ADIVDU
|
|
ADIVDUCC
|
|
ADIVDUVCC
|
|
ADIVDUV
|
|
AEXTSW
|
|
AEXTSWCC
|
|
/* AFCFIW; AFCFIWCC */
|
|
AFCFID
|
|
AFCFIDCC
|
|
AFCFIDU
|
|
AFCFIDUCC
|
|
AFCFIDS
|
|
AFCFIDSCC
|
|
AFCTID
|
|
AFCTIDCC
|
|
AFCTIDZ
|
|
AFCTIDZCC
|
|
ALDAR
|
|
AMOVD
|
|
AMOVDU
|
|
AMOVWZ
|
|
AMOVWZU
|
|
AMULHD
|
|
AMULHDCC
|
|
AMULHDU
|
|
AMULHDUCC
|
|
AMULLD
|
|
AMULLDCC
|
|
AMULLDVCC
|
|
AMULLDV
|
|
ARFID
|
|
ARLDMI
|
|
ARLDMICC
|
|
ARLDIMI
|
|
ARLDIMICC
|
|
ARLDC
|
|
ARLDCCC
|
|
ARLDCR
|
|
ARLDCRCC
|
|
ARLDICR
|
|
ARLDICRCC
|
|
ARLDCL
|
|
ARLDCLCC
|
|
ARLDICL
|
|
ARLDICLCC
|
|
ARLDIC
|
|
ARLDICCC
|
|
ACLRLSLDI
|
|
AROTL
|
|
AROTLW
|
|
ASLBIA
|
|
ASLBIE
|
|
ASLBMFEE
|
|
ASLBMFEV
|
|
ASLBMTE
|
|
ASLD
|
|
ASLDCC
|
|
ASRD
|
|
ASRAD
|
|
ASRADCC
|
|
ASRDCC
|
|
ASTDCCC
|
|
ATD
|
|
|
|
/* 64-bit pseudo operation */
|
|
ADWORD
|
|
AREMD
|
|
AREMDU
|
|
|
|
/* more 64-bit operations */
|
|
AHRFID
|
|
APOPCNTD
|
|
APOPCNTW
|
|
APOPCNTB
|
|
ACNTTZW
|
|
ACNTTZWCC
|
|
ACNTTZD
|
|
ACNTTZDCC
|
|
ACOPY
|
|
APASTECC
|
|
ADARN
|
|
ALDMX
|
|
AMADDHD
|
|
AMADDHDU
|
|
AMADDLD
|
|
|
|
/* Vector */
|
|
ALV
|
|
ALVEBX
|
|
ALVEHX
|
|
ALVEWX
|
|
ALVX
|
|
ALVXL
|
|
ALVSL
|
|
ALVSR
|
|
ASTV
|
|
ASTVEBX
|
|
ASTVEHX
|
|
ASTVEWX
|
|
ASTVX
|
|
ASTVXL
|
|
AVAND
|
|
AVANDC
|
|
AVNAND
|
|
AVOR
|
|
AVORC
|
|
AVNOR
|
|
AVXOR
|
|
AVEQV
|
|
AVADDUM
|
|
AVADDUBM
|
|
AVADDUHM
|
|
AVADDUWM
|
|
AVADDUDM
|
|
AVADDUQM
|
|
AVADDCU
|
|
AVADDCUQ
|
|
AVADDCUW
|
|
AVADDUS
|
|
AVADDUBS
|
|
AVADDUHS
|
|
AVADDUWS
|
|
AVADDSS
|
|
AVADDSBS
|
|
AVADDSHS
|
|
AVADDSWS
|
|
AVADDE
|
|
AVADDEUQM
|
|
AVADDECUQ
|
|
AVSUBUM
|
|
AVSUBUBM
|
|
AVSUBUHM
|
|
AVSUBUWM
|
|
AVSUBUDM
|
|
AVSUBUQM
|
|
AVSUBCU
|
|
AVSUBCUQ
|
|
AVSUBCUW
|
|
AVSUBUS
|
|
AVSUBUBS
|
|
AVSUBUHS
|
|
AVSUBUWS
|
|
AVSUBSS
|
|
AVSUBSBS
|
|
AVSUBSHS
|
|
AVSUBSWS
|
|
AVSUBE
|
|
AVSUBEUQM
|
|
AVSUBECUQ
|
|
AVMULESB
|
|
AVMULOSB
|
|
AVMULEUB
|
|
AVMULOUB
|
|
AVMULESH
|
|
AVMULOSH
|
|
AVMULEUH
|
|
AVMULOUH
|
|
AVMULESW
|
|
AVMULOSW
|
|
AVMULEUW
|
|
AVMULOUW
|
|
AVMULUWM
|
|
AVPMSUM
|
|
AVPMSUMB
|
|
AVPMSUMH
|
|
AVPMSUMW
|
|
AVPMSUMD
|
|
AVMSUMUDM
|
|
AVR
|
|
AVRLB
|
|
AVRLH
|
|
AVRLW
|
|
AVRLD
|
|
AVS
|
|
AVSLB
|
|
AVSLH
|
|
AVSLW
|
|
AVSL
|
|
AVSLO
|
|
AVSRB
|
|
AVSRH
|
|
AVSRW
|
|
AVSR
|
|
AVSRO
|
|
AVSLD
|
|
AVSRD
|
|
AVSA
|
|
AVSRAB
|
|
AVSRAH
|
|
AVSRAW
|
|
AVSRAD
|
|
AVSOI
|
|
AVSLDOI
|
|
AVCLZ
|
|
AVCLZB
|
|
AVCLZH
|
|
AVCLZW
|
|
AVCLZD
|
|
AVPOPCNT
|
|
AVPOPCNTB
|
|
AVPOPCNTH
|
|
AVPOPCNTW
|
|
AVPOPCNTD
|
|
AVCMPEQ
|
|
AVCMPEQUB
|
|
AVCMPEQUBCC
|
|
AVCMPEQUH
|
|
AVCMPEQUHCC
|
|
AVCMPEQUW
|
|
AVCMPEQUWCC
|
|
AVCMPEQUD
|
|
AVCMPEQUDCC
|
|
AVCMPGT
|
|
AVCMPGTUB
|
|
AVCMPGTUBCC
|
|
AVCMPGTUH
|
|
AVCMPGTUHCC
|
|
AVCMPGTUW
|
|
AVCMPGTUWCC
|
|
AVCMPGTUD
|
|
AVCMPGTUDCC
|
|
AVCMPGTSB
|
|
AVCMPGTSBCC
|
|
AVCMPGTSH
|
|
AVCMPGTSHCC
|
|
AVCMPGTSW
|
|
AVCMPGTSWCC
|
|
AVCMPGTSD
|
|
AVCMPGTSDCC
|
|
AVCMPNEZB
|
|
AVCMPNEZBCC
|
|
AVCMPNEB
|
|
AVCMPNEBCC
|
|
AVCMPNEH
|
|
AVCMPNEHCC
|
|
AVCMPNEW
|
|
AVCMPNEWCC
|
|
AVPERM
|
|
AVPERMXOR
|
|
AVPERMR
|
|
AVBPERMQ
|
|
AVBPERMD
|
|
AVSEL
|
|
AVSPLT
|
|
AVSPLTB
|
|
AVSPLTH
|
|
AVSPLTW
|
|
AVSPLTI
|
|
AVSPLTISB
|
|
AVSPLTISH
|
|
AVSPLTISW
|
|
AVCIPH
|
|
AVCIPHER
|
|
AVCIPHERLAST
|
|
AVNCIPH
|
|
AVNCIPHER
|
|
AVNCIPHERLAST
|
|
AVSBOX
|
|
AVSHASIGMA
|
|
AVSHASIGMAW
|
|
AVSHASIGMAD
|
|
AVMRGEW
|
|
AVMRGOW
|
|
|
|
/* VSX */
|
|
ALXV
|
|
ALXVL
|
|
ALXVLL
|
|
ALXVD2X
|
|
ALXVW4X
|
|
ALXVH8X
|
|
ALXVB16X
|
|
ALXVX
|
|
ALXVDSX
|
|
ASTXV
|
|
ASTXVL
|
|
ASTXVLL
|
|
ASTXVD2X
|
|
ASTXVW4X
|
|
ASTXVH8X
|
|
ASTXVB16X
|
|
ASTXVX
|
|
ALXSDX
|
|
ASTXSDX
|
|
ALXSIWAX
|
|
ALXSIWZX
|
|
ASTXSIWX
|
|
AMFVSRD
|
|
AMFFPRD
|
|
AMFVRD
|
|
AMFVSRWZ
|
|
AMFVSRLD
|
|
AMTVSRD
|
|
AMTFPRD
|
|
AMTVRD
|
|
AMTVSRWA
|
|
AMTVSRWZ
|
|
AMTVSRDD
|
|
AMTVSRWS
|
|
AXXLAND
|
|
AXXLANDC
|
|
AXXLEQV
|
|
AXXLNAND
|
|
AXXLOR
|
|
AXXLORC
|
|
AXXLNOR
|
|
AXXLORQ
|
|
AXXLXOR
|
|
AXXSEL
|
|
AXXMRGHW
|
|
AXXMRGLW
|
|
AXXSPLT
|
|
AXXSPLTW
|
|
AXXSPLTIB
|
|
AXXPERM
|
|
AXXPERMDI
|
|
AXXSLDWI
|
|
AXXBRQ
|
|
AXXBRD
|
|
AXXBRW
|
|
AXXBRH
|
|
AXSCVDPSP
|
|
AXSCVSPDP
|
|
AXSCVDPSPN
|
|
AXSCVSPDPN
|
|
AXVCVDPSP
|
|
AXVCVSPDP
|
|
AXSCVDPSXDS
|
|
AXSCVDPSXWS
|
|
AXSCVDPUXDS
|
|
AXSCVDPUXWS
|
|
AXSCVSXDDP
|
|
AXSCVUXDDP
|
|
AXSCVSXDSP
|
|
AXSCVUXDSP
|
|
AXVCVDPSXDS
|
|
AXVCVDPSXWS
|
|
AXVCVDPUXDS
|
|
AXVCVDPUXWS
|
|
AXVCVSPSXDS
|
|
AXVCVSPSXWS
|
|
AXVCVSPUXDS
|
|
AXVCVSPUXWS
|
|
AXVCVSXDDP
|
|
AXVCVSXWDP
|
|
AXVCVUXDDP
|
|
AXVCVUXWDP
|
|
AXVCVSXDSP
|
|
AXVCVSXWSP
|
|
AXVCVUXDSP
|
|
AXVCVUXWSP
|
|
|
|
ALAST
|
|
|
|
// aliases
|
|
ABR = obj.AJMP
|
|
ABL = obj.ACALL
|
|
)
|