]> Cypherpunks.ru repositories - gostls13.git/blob - src/cmd/internal/obj/ppc64/a.out.go
efc10ea0f2f1f73e8c51b764b4ed607cf9774958
[gostls13.git] / src / cmd / internal / obj / ppc64 / a.out.go
1 // cmd/9c/9.out.h from Vita Nuova.
2 //
3 //      Copyright © 1994-1999 Lucent Technologies Inc.  All rights reserved.
4 //      Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net)
5 //      Portions Copyright © 1997-1999 Vita Nuova Limited
6 //      Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
7 //      Portions Copyright © 2004,2006 Bruce Ellis
8 //      Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net)
9 //      Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
10 //      Portions Copyright © 2009 The Go Authors. All rights reserved.
11 //
12 // Permission is hereby granted, free of charge, to any person obtaining a copy
13 // of this software and associated documentation files (the "Software"), to deal
14 // in the Software without restriction, including without limitation the rights
15 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16 // copies of the Software, and to permit persons to whom the Software is
17 // furnished to do so, subject to the following conditions:
18 //
19 // The above copyright notice and this permission notice shall be included in
20 // all copies or substantial portions of the Software.
21 //
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
25 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
28 // THE SOFTWARE.
29
30 package ppc64
31
32 import "cmd/internal/obj"
33
34 //go:generate go run ../stringer.go -i $GOFILE -o anames.go -p ppc64
35
36 /*
37  * powerpc 64
38  */
39 const (
40         NSNAME = 8
41         NSYM   = 50
42         NREG   = 32 /* number of general registers */
43         NFREG  = 32 /* number of floating point registers */
44 )
45
46 const (
47         /* RBasePPC64 = 4096 */
48         /* R0=4096 ... R31=4127 */
49         REG_R0 = obj.RBasePPC64 + iota
50         REG_R1
51         REG_R2
52         REG_R3
53         REG_R4
54         REG_R5
55         REG_R6
56         REG_R7
57         REG_R8
58         REG_R9
59         REG_R10
60         REG_R11
61         REG_R12
62         REG_R13
63         REG_R14
64         REG_R15
65         REG_R16
66         REG_R17
67         REG_R18
68         REG_R19
69         REG_R20
70         REG_R21
71         REG_R22
72         REG_R23
73         REG_R24
74         REG_R25
75         REG_R26
76         REG_R27
77         REG_R28
78         REG_R29
79         REG_R30
80         REG_R31
81
82         // CR bits. Use Book 1, chapter 2 naming for bits. Keep aligned to 32
83         REG_CR0LT
84         REG_CR0GT
85         REG_CR0EQ
86         REG_CR0SO
87         REG_CR1LT
88         REG_CR1GT
89         REG_CR1EQ
90         REG_CR1SO
91         REG_CR2LT
92         REG_CR2GT
93         REG_CR2EQ
94         REG_CR2SO
95         REG_CR3LT
96         REG_CR3GT
97         REG_CR3EQ
98         REG_CR3SO
99         REG_CR4LT
100         REG_CR4GT
101         REG_CR4EQ
102         REG_CR4SO
103         REG_CR5LT
104         REG_CR5GT
105         REG_CR5EQ
106         REG_CR5SO
107         REG_CR6LT
108         REG_CR6GT
109         REG_CR6EQ
110         REG_CR6SO
111         REG_CR7LT
112         REG_CR7GT
113         REG_CR7EQ
114         REG_CR7SO
115
116         /* Align FPR and VSR vectors such that when masked with 0x3F they produce
117            an equivalent VSX register. */
118         /* F0=4160 ... F31=4191 */
119         REG_F0
120         REG_F1
121         REG_F2
122         REG_F3
123         REG_F4
124         REG_F5
125         REG_F6
126         REG_F7
127         REG_F8
128         REG_F9
129         REG_F10
130         REG_F11
131         REG_F12
132         REG_F13
133         REG_F14
134         REG_F15
135         REG_F16
136         REG_F17
137         REG_F18
138         REG_F19
139         REG_F20
140         REG_F21
141         REG_F22
142         REG_F23
143         REG_F24
144         REG_F25
145         REG_F26
146         REG_F27
147         REG_F28
148         REG_F29
149         REG_F30
150         REG_F31
151
152         /* V0=4192 ... V31=4223 */
153         REG_V0
154         REG_V1
155         REG_V2
156         REG_V3
157         REG_V4
158         REG_V5
159         REG_V6
160         REG_V7
161         REG_V8
162         REG_V9
163         REG_V10
164         REG_V11
165         REG_V12
166         REG_V13
167         REG_V14
168         REG_V15
169         REG_V16
170         REG_V17
171         REG_V18
172         REG_V19
173         REG_V20
174         REG_V21
175         REG_V22
176         REG_V23
177         REG_V24
178         REG_V25
179         REG_V26
180         REG_V27
181         REG_V28
182         REG_V29
183         REG_V30
184         REG_V31
185
186         /* VS0=4224 ... VS63=4287 */
187         REG_VS0
188         REG_VS1
189         REG_VS2
190         REG_VS3
191         REG_VS4
192         REG_VS5
193         REG_VS6
194         REG_VS7
195         REG_VS8
196         REG_VS9
197         REG_VS10
198         REG_VS11
199         REG_VS12
200         REG_VS13
201         REG_VS14
202         REG_VS15
203         REG_VS16
204         REG_VS17
205         REG_VS18
206         REG_VS19
207         REG_VS20
208         REG_VS21
209         REG_VS22
210         REG_VS23
211         REG_VS24
212         REG_VS25
213         REG_VS26
214         REG_VS27
215         REG_VS28
216         REG_VS29
217         REG_VS30
218         REG_VS31
219         REG_VS32
220         REG_VS33
221         REG_VS34
222         REG_VS35
223         REG_VS36
224         REG_VS37
225         REG_VS38
226         REG_VS39
227         REG_VS40
228         REG_VS41
229         REG_VS42
230         REG_VS43
231         REG_VS44
232         REG_VS45
233         REG_VS46
234         REG_VS47
235         REG_VS48
236         REG_VS49
237         REG_VS50
238         REG_VS51
239         REG_VS52
240         REG_VS53
241         REG_VS54
242         REG_VS55
243         REG_VS56
244         REG_VS57
245         REG_VS58
246         REG_VS59
247         REG_VS60
248         REG_VS61
249         REG_VS62
250         REG_VS63
251
252         REG_CR0
253         REG_CR1
254         REG_CR2
255         REG_CR3
256         REG_CR4
257         REG_CR5
258         REG_CR6
259         REG_CR7
260
261         // MMA accumulator registers, these shadow VSR 0-31
262         // e.g MMAx shadows VSRx*4-VSRx*4+3 or
263         //     MMA0 shadows VSR0-VSR3
264         REG_A0
265         REG_A1
266         REG_A2
267         REG_A3
268         REG_A4
269         REG_A5
270         REG_A6
271         REG_A7
272
273         REG_MSR
274         REG_FPSCR
275         REG_CR
276
277         REG_SPECIAL = REG_CR0
278
279         REG_CRBIT0 = REG_CR0LT // An alias for a Condition Register bit 0
280
281         REG_SPR0 = obj.RBasePPC64 + 1024 // first of 1024 registers
282
283         REG_XER = REG_SPR0 + 1
284         REG_LR  = REG_SPR0 + 8
285         REG_CTR = REG_SPR0 + 9
286
287         REGZERO = REG_R0 /* set to zero */
288         REGSP   = REG_R1
289         REGSB   = REG_R2
290         REGRET  = REG_R3
291         REGARG  = -1      /* -1 disables passing the first argument in register */
292         REGRT1  = REG_R20 /* reserved for runtime, duffzero and duffcopy */
293         REGRT2  = REG_R21 /* reserved for runtime, duffcopy */
294         REGMIN  = REG_R7  /* register variables allocated from here to REGMAX */
295         REGCTXT = REG_R11 /* context for closures */
296         REGTLS  = REG_R13 /* C ABI TLS base pointer */
297         REGMAX  = REG_R27
298         REGEXT  = REG_R30 /* external registers allocated from here down */
299         REGG    = REG_R30 /* G */
300         REGTMP  = REG_R31 /* used by the linker */
301         FREGRET = REG_F0
302         FREGMIN = REG_F17 /* first register variable */
303         FREGMAX = REG_F26 /* last register variable for 9g only */
304         FREGEXT = REG_F26 /* first external register */
305 )
306
307 // OpenPOWER ABI for Linux Supplement Power Architecture 64-Bit ELF V2 ABI
308 // https://openpowerfoundation.org/?resource_lib=64-bit-elf-v2-abi-specification-power-architecture
309 var PPC64DWARFRegisters = map[int16]int16{}
310
311 func init() {
312         // f assigns dwarfregister[from:to] = (base):(to-from+base)
313         f := func(from, to, base int16) {
314                 for r := int16(from); r <= to; r++ {
315                         PPC64DWARFRegisters[r] = r - from + base
316                 }
317         }
318         f(REG_R0, REG_R31, 0)
319         f(REG_F0, REG_F31, 32)
320         f(REG_V0, REG_V31, 77)
321         f(REG_CR0, REG_CR7, 68)
322
323         f(REG_VS0, REG_VS31, 32)  // overlaps F0-F31
324         f(REG_VS32, REG_VS63, 77) // overlaps V0-V31
325         PPC64DWARFRegisters[REG_LR] = 65
326         PPC64DWARFRegisters[REG_CTR] = 66
327         PPC64DWARFRegisters[REG_XER] = 76
328 }
329
330 /*
331  * GENERAL:
332  *
333  * compiler allocates R3 up as temps
334  * compiler allocates register variables R7-R27
335  * compiler allocates external registers R30 down
336  *
337  * compiler allocates register variables F17-F26
338  * compiler allocates external registers F26 down
339  */
340 const (
341         BIG = 32768 - 8
342 )
343
344 const (
345         /* mark flags */
346         LABEL    = 1 << 0
347         LEAF     = 1 << 1
348         FLOAT    = 1 << 2
349         BRANCH   = 1 << 3
350         LOAD     = 1 << 4
351         FCMP     = 1 << 5
352         SYNC     = 1 << 6
353         LIST     = 1 << 7
354         FOLL     = 1 << 8
355         NOSCHED  = 1 << 9
356         PFX_X64B = 1 << 10 // A prefixed instruction crossing a 64B boundary
357 )
358
359 // Values for use in branch instruction BC
360 // BC B0,BI,label
361 // BO is type of branch + likely bits described below
362 // BI is CR value + branch type
363 // ex: BEQ CR2,label is BC 12,10,label
364 //   12 = BO_BCR
365 //   10 = BI_CR2 + BI_EQ
366
367 const (
368         BI_CR0 = 0
369         BI_CR1 = 4
370         BI_CR2 = 8
371         BI_CR3 = 12
372         BI_CR4 = 16
373         BI_CR5 = 20
374         BI_CR6 = 24
375         BI_CR7 = 28
376         BI_LT  = 0
377         BI_GT  = 1
378         BI_EQ  = 2
379         BI_FU  = 3
380 )
381
382 // Common values for the BO field.
383
384 const (
385         BO_ALWAYS  = 20 // branch unconditionally
386         BO_BCTR    = 16 // decrement ctr, branch on ctr != 0
387         BO_NOTBCTR = 18 // decrement ctr, branch on ctr == 0
388         BO_BCR     = 12 // branch on cr value
389         BO_BCRBCTR = 8  // decrement ctr, branch on ctr != 0 and cr value
390         BO_NOTBCR  = 4  // branch on not cr value
391 )
392
393 // Bit settings from the CR
394
395 const (
396         C_COND_LT = iota // 0 result is negative
397         C_COND_GT        // 1 result is positive
398         C_COND_EQ        // 2 result is zero
399         C_COND_SO        // 3 summary overflow or FP compare w/ NaN
400 )
401
402 const (
403         C_NONE     = iota
404         C_REGP     /* An even numbered gpr which can be used a gpr pair argument */
405         C_REG      /* Any gpr register */
406         C_FREGP    /* An even numbered fpr which can be used a fpr pair argument */
407         C_FREG     /* Any fpr register */
408         C_VREG     /* Any vector register */
409         C_VSREGP   /* An even numbered vsx register which can be used as a vsx register pair argument */
410         C_VSREG    /* Any vector-scalar register */
411         C_CREG     /* The condition registor (CR) */
412         C_CRBIT    /* A single bit of the CR register (0-31) */
413         C_SPR      /* special processor register */
414         C_AREG     /* MMA accumulator register */
415         C_ZCON     /* The constant zero */
416         C_U1CON    /* 1 bit unsigned constant */
417         C_U2CON    /* 2 bit unsigned constant */
418         C_U3CON    /* 3 bit unsigned constant */
419         C_U4CON    /* 4 bit unsigned constant */
420         C_U5CON    /* 5 bit unsigned constant */
421         C_U8CON    /* 8 bit unsigned constant */
422         C_U15CON   /* 15 bit unsigned constant */
423         C_S16CON   /* 16 bit signed constant */
424         C_U16CON   /* 16 bit unsigned constant */
425         C_32S16CON /* Any 32 bit constant of the form 0x....0000, signed or unsigned */
426         C_32CON    /* Any constant which fits into 32 bits. Can be signed or unsigned */
427         C_S34CON   /* 34 bit signed constant */
428         C_64CON    /* Any constant which fits into 64 bits. Can be signed or unsigned */
429         C_SACON    /* $n(REG) where n <= int16 */
430         C_LACON    /* $n(REG) where n <= int32 */
431         C_DACON    /* $n(REG) where n <= int64 */
432         C_SBRA     /* A short offset argument to a branching instruction */
433         C_LBRA     /* A long offset argument to a branching instruction */
434         C_LBRAPIC  /* Like C_LBRA, but requires an extra NOP for potential TOC restore by the linker. */
435         C_ZOREG    /* An $0+reg memory op */
436         C_SOREG    /* An $n+reg memory arg where n is a 16 bit signed offset */
437         C_LOREG    /* An $n+reg memory arg where n is a 32 bit signed offset */
438         C_XOREG    /* An reg+reg memory arg */
439         C_FPSCR    /* The fpscr register */
440         C_XER      /* The xer, holds the carry bit */
441         C_LR       /* The link register */
442         C_CTR      /* The count register */
443         C_ANY      /* Any argument */
444         C_GOK      /* A non-matched argument */
445         C_ADDR     /* A symbolic memory location */
446         C_TLS_LE   /* A thread local, local-exec, type memory arg */
447         C_TLS_IE   /* A thread local, initial-exec, type memory arg */
448         C_TEXTSIZE /* An argument with Type obj.TYPE_TEXTSIZE */
449
450         C_NCLASS /* must be the last */
451
452         /* Aliased names which should be cleaned up, or integrated. */
453         C_SCON   = C_U15CON
454         C_UCON   = C_32S16CON
455         C_ADDCON = C_S16CON
456         C_ANDCON = C_U16CON
457         C_LCON   = C_32CON
458
459         /* Aliased names which may be generated by ppc64map for the optab. */
460         C_S3216CON = C_32S16CON // TODO: these should be treated differently (e.g xoris vs addis)
461         C_U3216CON = C_32S16CON
462         C_S32CON   = C_32CON
463         C_U32CON   = C_32CON
464 )
465
466 const (
467         AADD = obj.ABasePPC64 + obj.A_ARCHSPECIFIC + iota
468         AADDCC
469         AADDIS
470         AADDV
471         AADDVCC
472         AADDC
473         AADDCCC
474         AADDCV
475         AADDCVCC
476         AADDME
477         AADDMECC
478         AADDMEVCC
479         AADDMEV
480         AADDE
481         AADDECC
482         AADDEVCC
483         AADDEV
484         AADDZE
485         AADDZECC
486         AADDZEVCC
487         AADDZEV
488         AADDEX
489         AAND
490         AANDCC
491         AANDN
492         AANDNCC
493         AANDISCC
494         ABC
495         ABCL
496         ABEQ
497         ABGE // not LT = G/E/U
498         ABGT
499         ABLE // not GT = L/E/U
500         ABLT
501         ABNE  // not EQ = L/G/U
502         ABVC  // Branch if float not unordered (also branch on not summary overflow)
503         ABVS  // Branch if float unordered (also branch on summary overflow)
504         ABDNZ // Decrement CTR, and branch if CTR != 0
505         ABDZ  // Decrement CTR, and branch if CTR == 0
506         ACMP
507         ACMPU
508         ACMPEQB
509         ACNTLZW
510         ACNTLZWCC
511         ACRAND
512         ACRANDN
513         ACREQV
514         ACRNAND
515         ACRNOR
516         ACROR
517         ACRORN
518         ACRXOR
519         ADIVW
520         ADIVWCC
521         ADIVWVCC
522         ADIVWV
523         ADIVWU
524         ADIVWUCC
525         ADIVWUVCC
526         ADIVWUV
527         AMODUD
528         AMODUW
529         AMODSD
530         AMODSW
531         AEQV
532         AEQVCC
533         AEXTSB
534         AEXTSBCC
535         AEXTSH
536         AEXTSHCC
537         AFABS
538         AFABSCC
539         AFADD
540         AFADDCC
541         AFADDS
542         AFADDSCC
543         AFCMPO
544         AFCMPU
545         AFCTIW
546         AFCTIWCC
547         AFCTIWZ
548         AFCTIWZCC
549         AFDIV
550         AFDIVCC
551         AFDIVS
552         AFDIVSCC
553         AFMADD
554         AFMADDCC
555         AFMADDS
556         AFMADDSCC
557         AFMOVD
558         AFMOVDCC
559         AFMOVDU
560         AFMOVS
561         AFMOVSU
562         AFMOVSX
563         AFMOVSZ
564         AFMSUB
565         AFMSUBCC
566         AFMSUBS
567         AFMSUBSCC
568         AFMUL
569         AFMULCC
570         AFMULS
571         AFMULSCC
572         AFNABS
573         AFNABSCC
574         AFNEG
575         AFNEGCC
576         AFNMADD
577         AFNMADDCC
578         AFNMADDS
579         AFNMADDSCC
580         AFNMSUB
581         AFNMSUBCC
582         AFNMSUBS
583         AFNMSUBSCC
584         AFRSP
585         AFRSPCC
586         AFSUB
587         AFSUBCC
588         AFSUBS
589         AFSUBSCC
590         AISEL
591         AMOVMW
592         ALBAR
593         ALHAR
594         ALSW
595         ALWAR
596         ALWSYNC
597         AMOVDBR
598         AMOVWBR
599         AMOVB
600         AMOVBU
601         AMOVBZ
602         AMOVBZU
603         AMOVH
604         AMOVHBR
605         AMOVHU
606         AMOVHZ
607         AMOVHZU
608         AMOVW
609         AMOVWU
610         AMOVFL
611         AMOVCRFS
612         AMTFSB0
613         AMTFSB0CC
614         AMTFSB1
615         AMTFSB1CC
616         AMULHW
617         AMULHWCC
618         AMULHWU
619         AMULHWUCC
620         AMULLW
621         AMULLWCC
622         AMULLWVCC
623         AMULLWV
624         ANAND
625         ANANDCC
626         ANEG
627         ANEGCC
628         ANEGVCC
629         ANEGV
630         ANOR
631         ANORCC
632         AOR
633         AORCC
634         AORN
635         AORNCC
636         AORIS
637         AREM
638         AREMU
639         ARFI
640         ARLWMI
641         ARLWMICC
642         ARLWNM
643         ARLWNMCC
644         ACLRLSLWI
645         ASLW
646         ASLWCC
647         ASRW
648         ASRAW
649         ASRAWCC
650         ASRWCC
651         ASTBCCC
652         ASTHCCC
653         ASTSW
654         ASTWCCC
655         ASUB
656         ASUBCC
657         ASUBVCC
658         ASUBC
659         ASUBCCC
660         ASUBCV
661         ASUBCVCC
662         ASUBME
663         ASUBMECC
664         ASUBMEVCC
665         ASUBMEV
666         ASUBV
667         ASUBE
668         ASUBECC
669         ASUBEV
670         ASUBEVCC
671         ASUBZE
672         ASUBZECC
673         ASUBZEVCC
674         ASUBZEV
675         ASYNC
676         AXOR
677         AXORCC
678         AXORIS
679
680         ADCBF
681         ADCBI
682         ADCBST
683         ADCBT
684         ADCBTST
685         ADCBZ
686         AEIEIO
687         AICBI
688         AISYNC
689         APTESYNC
690         ATLBIE
691         ATLBIEL
692         ATLBSYNC
693         ATW
694
695         ASYSCALL
696         AWORD
697
698         ARFCI
699
700         AFCPSGN
701         AFCPSGNCC
702         /* optional on 32-bit */
703         AFRES
704         AFRESCC
705         AFRIM
706         AFRIMCC
707         AFRIP
708         AFRIPCC
709         AFRIZ
710         AFRIZCC
711         AFRIN
712         AFRINCC
713         AFRSQRTE
714         AFRSQRTECC
715         AFSEL
716         AFSELCC
717         AFSQRT
718         AFSQRTCC
719         AFSQRTS
720         AFSQRTSCC
721
722         /* 64-bit */
723
724         ACNTLZD
725         ACNTLZDCC
726         ACMPW /* CMP with L=0 */
727         ACMPWU
728         ACMPB
729         AFTDIV
730         AFTSQRT
731         ADIVD
732         ADIVDCC
733         ADIVDE
734         ADIVDECC
735         ADIVDEU
736         ADIVDEUCC
737         ADIVDVCC
738         ADIVDV
739         ADIVDU
740         ADIVDUCC
741         ADIVDUVCC
742         ADIVDUV
743         AEXTSW
744         AEXTSWCC
745         /* AFCFIW; AFCFIWCC */
746         AFCFID
747         AFCFIDCC
748         AFCFIDU
749         AFCFIDUCC
750         AFCFIDS
751         AFCFIDSCC
752         AFCTID
753         AFCTIDCC
754         AFCTIDZ
755         AFCTIDZCC
756         ALDAR
757         AMOVD
758         AMOVDU
759         AMOVWZ
760         AMOVWZU
761         AMULHD
762         AMULHDCC
763         AMULHDU
764         AMULHDUCC
765         AMULLD
766         AMULLDCC
767         AMULLDVCC
768         AMULLDV
769         ARFID
770         ARLDMI
771         ARLDMICC
772         ARLDIMI
773         ARLDIMICC
774         ARLDC
775         ARLDCCC
776         ARLDCR
777         ARLDCRCC
778         ARLDICR
779         ARLDICRCC
780         ARLDCL
781         ARLDCLCC
782         ARLDICL
783         ARLDICLCC
784         ARLDIC
785         ARLDICCC
786         ACLRLSLDI
787         AROTL
788         AROTLW
789         ASLBIA
790         ASLBIE
791         ASLBMFEE
792         ASLBMFEV
793         ASLBMTE
794         ASLD
795         ASLDCC
796         ASRD
797         ASRAD
798         ASRADCC
799         ASRDCC
800         AEXTSWSLI
801         AEXTSWSLICC
802         ASTDCCC
803         ATD
804         ASETB
805
806         /* 64-bit pseudo operation */
807         ADWORD
808         AREMD
809         AREMDU
810
811         /* more 64-bit operations */
812         AHRFID
813         APOPCNTD
814         APOPCNTW
815         APOPCNTB
816         ACNTTZW
817         ACNTTZWCC
818         ACNTTZD
819         ACNTTZDCC
820         ACOPY
821         APASTECC
822         ADARN
823         AMADDHD
824         AMADDHDU
825         AMADDLD
826
827         /* Vector */
828         ALVEBX
829         ALVEHX
830         ALVEWX
831         ALVX
832         ALVXL
833         ALVSL
834         ALVSR
835         ASTVEBX
836         ASTVEHX
837         ASTVEWX
838         ASTVX
839         ASTVXL
840         AVAND
841         AVANDC
842         AVNAND
843         AVOR
844         AVORC
845         AVNOR
846         AVXOR
847         AVEQV
848         AVADDUM
849         AVADDUBM
850         AVADDUHM
851         AVADDUWM
852         AVADDUDM
853         AVADDUQM
854         AVADDCU
855         AVADDCUQ
856         AVADDCUW
857         AVADDUS
858         AVADDUBS
859         AVADDUHS
860         AVADDUWS
861         AVADDSS
862         AVADDSBS
863         AVADDSHS
864         AVADDSWS
865         AVADDE
866         AVADDEUQM
867         AVADDECUQ
868         AVSUBUM
869         AVSUBUBM
870         AVSUBUHM
871         AVSUBUWM
872         AVSUBUDM
873         AVSUBUQM
874         AVSUBCU
875         AVSUBCUQ
876         AVSUBCUW
877         AVSUBUS
878         AVSUBUBS
879         AVSUBUHS
880         AVSUBUWS
881         AVSUBSS
882         AVSUBSBS
883         AVSUBSHS
884         AVSUBSWS
885         AVSUBE
886         AVSUBEUQM
887         AVSUBECUQ
888         AVMULESB
889         AVMULOSB
890         AVMULEUB
891         AVMULOUB
892         AVMULESH
893         AVMULOSH
894         AVMULEUH
895         AVMULOUH
896         AVMULESW
897         AVMULOSW
898         AVMULEUW
899         AVMULOUW
900         AVMULUWM
901         AVPMSUM
902         AVPMSUMB
903         AVPMSUMH
904         AVPMSUMW
905         AVPMSUMD
906         AVMSUMUDM
907         AVR
908         AVRLB
909         AVRLH
910         AVRLW
911         AVRLD
912         AVS
913         AVSLB
914         AVSLH
915         AVSLW
916         AVSL
917         AVSLO
918         AVSRB
919         AVSRH
920         AVSRW
921         AVSR
922         AVSRO
923         AVSLD
924         AVSRD
925         AVSA
926         AVSRAB
927         AVSRAH
928         AVSRAW
929         AVSRAD
930         AVSOI
931         AVSLDOI
932         AVCLZ
933         AVCLZB
934         AVCLZH
935         AVCLZW
936         AVCLZD
937         AVPOPCNT
938         AVPOPCNTB
939         AVPOPCNTH
940         AVPOPCNTW
941         AVPOPCNTD
942         AVCMPEQ
943         AVCMPEQUB
944         AVCMPEQUBCC
945         AVCMPEQUH
946         AVCMPEQUHCC
947         AVCMPEQUW
948         AVCMPEQUWCC
949         AVCMPEQUD
950         AVCMPEQUDCC
951         AVCMPGT
952         AVCMPGTUB
953         AVCMPGTUBCC
954         AVCMPGTUH
955         AVCMPGTUHCC
956         AVCMPGTUW
957         AVCMPGTUWCC
958         AVCMPGTUD
959         AVCMPGTUDCC
960         AVCMPGTSB
961         AVCMPGTSBCC
962         AVCMPGTSH
963         AVCMPGTSHCC
964         AVCMPGTSW
965         AVCMPGTSWCC
966         AVCMPGTSD
967         AVCMPGTSDCC
968         AVCMPNEZB
969         AVCMPNEZBCC
970         AVCMPNEB
971         AVCMPNEBCC
972         AVCMPNEH
973         AVCMPNEHCC
974         AVCMPNEW
975         AVCMPNEWCC
976         AVPERM
977         AVPERMXOR
978         AVPERMR
979         AVBPERMQ
980         AVBPERMD
981         AVSEL
982         AVSPLTB
983         AVSPLTH
984         AVSPLTW
985         AVSPLTISB
986         AVSPLTISH
987         AVSPLTISW
988         AVCIPH
989         AVCIPHER
990         AVCIPHERLAST
991         AVNCIPH
992         AVNCIPHER
993         AVNCIPHERLAST
994         AVSBOX
995         AVSHASIGMA
996         AVSHASIGMAW
997         AVSHASIGMAD
998         AVMRGEW
999         AVMRGOW
1000         AVCLZLSBB
1001         AVCTZLSBB
1002
1003         /* VSX */
1004         ALXV
1005         ALXVL
1006         ALXVLL
1007         ALXVD2X
1008         ALXVW4X
1009         ALXVH8X
1010         ALXVB16X
1011         ALXVX
1012         ALXVDSX
1013         ASTXV
1014         ASTXVL
1015         ASTXVLL
1016         ASTXVD2X
1017         ASTXVW4X
1018         ASTXVH8X
1019         ASTXVB16X
1020         ASTXVX
1021         ALXSDX
1022         ASTXSDX
1023         ALXSIWAX
1024         ALXSIWZX
1025         ASTXSIWX
1026         AMFVSRD
1027         AMFFPRD
1028         AMFVRD
1029         AMFVSRWZ
1030         AMFVSRLD
1031         AMTVSRD
1032         AMTFPRD
1033         AMTVRD
1034         AMTVSRWA
1035         AMTVSRWZ
1036         AMTVSRDD
1037         AMTVSRWS
1038         AXXLAND
1039         AXXLANDC
1040         AXXLEQV
1041         AXXLNAND
1042         AXXLOR
1043         AXXLORC
1044         AXXLNOR
1045         AXXLORQ
1046         AXXLXOR
1047         AXXSEL
1048         AXXMRGHW
1049         AXXMRGLW
1050         AXXSPLTW
1051         AXXSPLTIB
1052         AXXPERM
1053         AXXPERMDI
1054         AXXSLDWI
1055         AXXBRQ
1056         AXXBRD
1057         AXXBRW
1058         AXXBRH
1059         AXSCVDPSP
1060         AXSCVSPDP
1061         AXSCVDPSPN
1062         AXSCVSPDPN
1063         AXVCVDPSP
1064         AXVCVSPDP
1065         AXSCVDPSXDS
1066         AXSCVDPSXWS
1067         AXSCVDPUXDS
1068         AXSCVDPUXWS
1069         AXSCVSXDDP
1070         AXSCVUXDDP
1071         AXSCVSXDSP
1072         AXSCVUXDSP
1073         AXVCVDPSXDS
1074         AXVCVDPSXWS
1075         AXVCVDPUXDS
1076         AXVCVDPUXWS
1077         AXVCVSPSXDS
1078         AXVCVSPSXWS
1079         AXVCVSPUXDS
1080         AXVCVSPUXWS
1081         AXVCVSXDDP
1082         AXVCVSXWDP
1083         AXVCVUXDDP
1084         AXVCVUXWDP
1085         AXVCVSXDSP
1086         AXVCVSXWSP
1087         AXVCVUXDSP
1088         AXVCVUXWSP
1089         ALASTAOUT // The last instruction in this list. Also the first opcode generated by ppc64map.
1090
1091         // aliases
1092         ABR   = obj.AJMP
1093         ABL   = obj.ACALL
1094         ALAST = ALASTGEN // The final enumerated instruction value + 1. This is used to size the oprange table.
1095 )