Text file src/cmd/asm/internal/asm/testdata/s390x.s

     1  // Copyright 2016 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  #include "../../../../../runtime/textflag.h"
     6  
     7  TEXT main·foo(SB),DUPOK|NOSPLIT,$16-0 // TEXT main.foo(SB), DUPOK|NOSPLIT, $16-0
     8  	MOVD	R1, R2                // b9040021
     9  	MOVW	R3, R4                // b9140043
    10  	MOVH	R5, R6                // b9070065
    11  	MOVB	R7, R8                // b9060087
    12  	MOVWZ	R1, R2                // b9160021
    13  	MOVHZ	R2, R3                // b9850032
    14  	MOVBZ	R4, R5                // b9840054
    15  	MOVDBR	R1, R2                // b90f0021
    16  	MOVWBR	R3, R4                // b91f0043
    17  
    18  	MOVDEQ	R0, R1                // b9e28010
    19  	MOVDGE	R2, R3                // b9e2a032
    20  	MOVDGT	R4, R5                // b9e22054
    21  	MOVDLE	R6, R7                // b9e2c076
    22  	MOVDLT	R8, R9                // b9e24098
    23  	MOVDNE	R10, R11              // b9e270ba
    24  
    25  	LOCR	$3, R2, R1            // b9f23012
    26  	LOCGR	$7, R5, R6            // b9e27065
    27  
    28  	MOVD	(R15), R1             // e310f0000004
    29  	MOVW	(R15), R2             // e320f0000014
    30  	MOVH	(R15), R3             // e330f0000015
    31  	MOVB	(R15), R4             // e340f0000077
    32  	MOVWZ	(R15), R5             // e350f0000016
    33  	MOVHZ	(R15), R6             // e360f0000091
    34  	MOVBZ	(R15), R7             // e370f0000090
    35  	MOVDBR	(R15), R8             // e380f000000f
    36  	MOVWBR	(R15), R9             // e390f000001e
    37  
    38  	MOVD	R1, n-8(SP)           // e310f0100024
    39  	MOVW	R2, n-8(SP)           // 5020f010
    40  	MOVH	R3, n-8(SP)           // 4030f010
    41  	MOVB	R4, n-8(SP)           // 4240f010
    42  	MOVWZ	R5, n-8(SP)           // 5050f010
    43  	MOVHZ	R6, n-8(SP)           // 4060f010
    44  	MOVBZ	R7, n-8(SP)           // 4270f010
    45  	MOVDBR	R8, n-8(SP)           // e380f010002f
    46  	MOVWBR	R9, n-8(SP)           // e390f010003e
    47  
    48  	MOVD	$-8589934592, R1      // c01efffffffe
    49  	MOVW	$-131072, R2          // c021fffe0000
    50  	MOVH	$-512, R3             // a739fe00
    51  	MOVB	$-1, R4               // a749ffff
    52  
    53  	MOVD	$32767, n-8(SP)       // e548f0107fff
    54  	MOVD	$-1, -524288(R1)      // e3a010008071e548a000ffff
    55  	MOVW	$32767, n-8(SP)       // e54cf0107fff
    56  	MOVW	$-32768, 4096(R2)     // e3a020000171e54ca0008000
    57  	MOVH	$512, n-8(SP)         // e544f0100200
    58  	MOVH	$-512, 524288(R3)     // c0a10008000041aa3000e544a000fe00
    59  	MOVB	$-1, n-8(SP)          // 92fff010
    60  	MOVB	$255, 4096(R4)        // ebff40000152
    61  	MOVB	$-128, -524288(R5)    // eb8050008052
    62  	MOVB	$1, -524289(R6)       // c0a1fff7ffff41aa60009201a000
    63  
    64  	// RX (12-bit displacement) and RXY (20-bit displacement) instruction encoding (e.g: ST vs STY)
    65  	MOVW	R1, 4095(R2)(R3)       // 50132fff
    66  	MOVW	R1, 4096(R2)(R3)       // e31320000150
    67  	MOVWZ	R1, 4095(R2)(R3)       // 50132fff
    68  	MOVWZ	R1, 4096(R2)(R3)       // e31320000150
    69  	MOVH	R1, 4095(R2)(R3)       // 40132fff
    70  	MOVHZ   R1, 4095(R2)(R3)       // 40132fff
    71  	MOVH	R1, 4096(R2)(R3)       // e31320000170
    72  	MOVHZ	R1, 4096(R2)(R3)       // e31320000170
    73  	MOVB	R1, 4095(R2)(R3)       // 42132fff
    74  	MOVBZ	R1, 4095(R2)(R3)       // 42132fff
    75  	MOVB	R1, 4096(R2)(R3)       // e31320000172
    76  	MOVBZ	R1, 4096(R2)(R3)       // e31320000172
    77  
    78  	ADD	R1, R2                // b9e81022
    79  	ADD	R1, R2, R3            // b9e81032
    80  	ADD	$8192, R1             // a71b2000
    81  	ADD	$8192, R1, R2         // ec21200000d9
    82  	ADD	$32768, R1            // c21800008000
    83  	ADD	$32768, R1, R2        // b9040021c22800008000
    84  	ADDC	R1, R2                // b9ea1022
    85  	ADDC	$1, R1, R2            // ec21000100db
    86  	ADDC	$-1, R1, R2           // ec21ffff00db
    87  	ADDC	R1, R2, R3            // b9ea1032
    88  	ADDW	R1, R2                // 1a21
    89  	ADDW	R1, R2, R3            // b9f81032
    90  	ADDW	$8192, R1             // a71a2000
    91  	ADDW	$8192, R1, R2         // ec21200000d8
    92  	ADDE	R1, R2                // b9880021
    93  	SUB	R3, R4                // b9090043
    94  	SUB	R3, R4, R5            // b9e93054
    95  	SUB	$8192, R3             // a73be000
    96  	SUB	$8192, R3, R4         // ec43e00000d9
    97  	SUBC	R1, R2                // b90b0021
    98  	SUBC	$1, R1, R2            // ec21ffff00db
    99  	SUBC	R2, R3, R4            // b9eb2043
   100  	SUBW	R3, R4                // 1b43
   101  	SUBW	R3, R4, R5            // b9f93054
   102  	SUBW	$8192, R1             // c21500002000
   103  	SUBW	$8192, R1, R2         // 1821c22500002000
   104  	MULLW	R6, R7                // b91c0076
   105  	MULLW	R6, R7, R8            // b9040087b91c0086
   106  	MULLW	$8192, R6             // a76c2000
   107  	MULLW	$8192, R6, R7         // 1876a77c2000
   108  	MULLW	$-32769, R8           // c281ffff7fff
   109  	MULLW   $-32769, R8, R9       // 1898c291ffff7fff
   110  	MULLD	$-2147483648, R1      // c21080000000
   111  	MULLD   $-2147483648, R1, R2  // b9040021c22080000000
   112  	MULHD	R9, R8                // b90400b8b98600a9ebb9003f000ab98000b8b90900abebb8003f000ab98000b9b9e9b08a
   113  	MULHD	R7, R2, R1            // b90400b2b98600a7ebb7003f000ab98000b2b90900abebb2003f000ab98000b7b9e9b01a
   114  	MULHDU	R3, R4                // b90400b4b98600a3b904004a
   115  	MULHDU	R5, R6, R7            // b90400b6b98600a5b904007a
   116  	MLGR	R1, R2                // b9860021
   117  	DIVD	R1, R2                // b90400b2b90d00a1b904002b
   118  	DIVD	R1, R2, R3            // b90400b2b90d00a1b904003b
   119  	DIVW	R4, R5                // b90400b5b91d00a4b904005b
   120  	DIVW	R4, R5, R6            // b90400b5b91d00a4b904006b
   121  	DIVDU	R7, R8                // a7a90000b90400b8b98700a7b904008b
   122  	DIVDU	R7, R8, R9            // a7a90000b90400b8b98700a7b904009b
   123  	DIVWU	R1, R2                // a7a90000b90400b2b99700a1b904002b
   124  	DIVWU	R1, R2, R3            // a7a90000b90400b2b99700a1b904003b
   125  	MODD	R1, R2                // b90400b2b90d00a1b904002a
   126  	MODD	R1, R2, R3            // b90400b2b90d00a1b904003a
   127  	MODW	R4, R5                // b90400b5b91d00a4b904005a
   128  	MODW	R4, R5, R6            // b90400b5b91d00a4b904006a
   129  	MODDU	R7, R8                // a7a90000b90400b8b98700a7b904008a
   130  	MODDU	R7, R8, R9            // a7a90000b90400b8b98700a7b904009a
   131  	MODWU	R1, R2                // a7a90000b90400b2b99700a1b904002a
   132  	MODWU	R1, R2, R3            // a7a90000b90400b2b99700a1b904003a
   133  	NEG	R1                    // b9030011
   134  	NEG	R1, R2                // b9030021
   135  	NEGW	R1                    // b9130011
   136  	NEGW	R1, R2                // b9130021
   137  	FLOGR	R2, R2                // b9830022
   138  	POPCNT	R3, R4                // b9e10043
   139  
   140  	AND	R1, R2                // b9800021
   141  	AND	R1, R2, R3            // b9e42031
   142  	AND	$-2, R1               // a517fffe
   143  	AND	$-65536, R1           // c01bffff0000
   144  	AND	$1, R1                // c0a100000001b980001a
   145  	ANDW	R1, R2                // 1421
   146  	ANDW	R1, R2, R3            // b9f42031
   147  	ANDW	$1, R1                // c01b00000001
   148  	ANDW	$131071, R1           // a5160001
   149  	ANDW	$65536, R1            // c01b00010000
   150  	ANDW	$-2, R1               // a517fffe
   151  	OR	R1, R2                // b9810021
   152  	OR	R1, R2, R3            // b9e62031
   153  	OR	$1, R1                // a51b0001
   154  	OR	$131071, R1           // c01d0001ffff
   155  	OR	$65536, R1            // c01d00010000
   156  	OR	$-2, R1               // c0a1fffffffeb981001a
   157  	ORW	R1, R2                // 1621
   158  	ORW	R1, R2, R3            // b9f62031
   159  	ORW	$1, R1                // a51b0001
   160  	ORW	$131071, R1           // c01d0001ffff
   161  	ORW	$65536, R1            // a51a0001
   162  	ORW	$-2, R1               // c01dfffffffe
   163  	XOR	R1, R2                // b9820021
   164  	XOR	R1, R2, R3            // b9e72031
   165  	XOR	$1, R1                // c01700000001
   166  	XOR	$131071, R1           // c0170001ffff
   167  	XOR	$65536, R1            // c01700010000
   168  	XOR	$-2, R1               // c0a1fffffffeb982001a
   169  	XORW	R1, R2                // 1721
   170  	XORW	R1, R2, R3            // b9f72031
   171  	XORW	$1, R1                // c01700000001
   172  	XORW	$131071, R1           // c0170001ffff
   173  	XORW	$65536, R1            // c01700010000
   174  	XORW	$-2, R1               // c017fffffffe
   175  
   176  	ADD	-524288(R1), R2       // e32010008008
   177  	ADD	524287(R3), R4        // e3403fff7f08
   178  	ADD	-524289(R1), R2       // c0a1fff7ffffe32a10000008
   179  	ADD	524288(R3), R4        // c0a100080000e34a30000008
   180  	ADD	-524289(R1)(R2*1), R3 // c0a1fff7ffff41aa2000e33a10000008
   181  	ADD	524288(R3)(R4*1), R5  // c0a10008000041aa4000e35a30000008
   182  	ADDC	(R1), R2              // e3201000000a
   183  	ADDW	(R5), R6              // 5a605000
   184  	ADDW	4095(R7), R8          // 5a807fff
   185  	ADDW	-1(R1), R2            // e3201fffff5a
   186  	ADDW	4096(R3), R4          // e3403000015a
   187  	ADDE	4096(R3), R4          // e34030000188
   188  	ADDE	4096(R3)(R2*1), R4    // e34230000188
   189  	ADDE	524288(R3)(R4*1), R5  // c0a10008000041aa4000e35a30000088
   190  	MULLD	(R1)(R2*1), R3        // e3321000000c
   191  	MULLW	(R3)(R4*1), R5        // 71543000
   192  	MULLW	4096(R3), R4          // e34030000151
   193  	SUB	(R1), R2              // e32010000009
   194  	SUBC	(R1), R2              // e3201000000b
   195  	SUBE	(R1), R2              // e32010000089
   196  	SUBW	(R1), R2              // 5b201000
   197  	SUBW	-1(R1), R2            // e3201fffff5b
   198  	AND	(R1), R2              // e32010000080
   199  	ANDW	(R1), R2              // 54201000
   200  	ANDW	-1(R1), R2            // e3201fffff54
   201  	OR	(R1), R2              // e32010000081
   202  	ORW	(R1), R2              // 56201000
   203  	ORW	-1(R1), R2            // e3201fffff56
   204  	XOR	(R1), R2              // e32010000082
   205  	XORW	(R1), R2              // 57201000
   206  	XORW	-1(R1), R2            // e3201fffff57
   207  
   208  	// shift and rotate instructions
   209  	SRD	$4, R4, R7              // eb740004000c
   210  	SRD	R1, R4, R7              // eb741000000c
   211  	SRW	$4, R4, R7              // eb74000400de
   212  	SRW	R1, R4, R7              // eb74100000de
   213  	SLW	$4, R3, R6              // eb63000400df
   214  	SLW	R2, R3, R6              // eb63200000df
   215  	SLD	$4, R3, R6              // eb630004000d
   216  	SLD	R2, R3, R6              // eb632000000d
   217  	SRAD	$4, R5, R8              // eb850004000a
   218  	SRAD	R3, R5, R8              // eb853000000a
   219  	SRAW	$4, R5, R8              // eb85000400dc
   220  	SRAW	R3, R5, R8              // eb85300000dc
   221  	RLL	R1, R2, R3              // eb321000001d
   222  	RLL	$4, R2, R3              // eb320004001d
   223  	RLLG	R1, R2, R3              // eb321000001c
   224  	RLLG	$4, R2, R3              // eb320004001c
   225  
   226  	RNSBG	$0, $31, $32, R1, R2  // ec21001f2054
   227  	RXSBG	$17, $8, $16, R3, R4  // ec4311081057
   228  	ROSBG	$9, $24, $11, R5, R6  // ec6509180b56
   229  	RNSBGT	$0, $31, $32, R7, R8  // ec87801f2054
   230  	RXSBGT	$17, $8, $16, R9, R10 // eca991081057
   231  	ROSBGT	$9, $24, $11, R11, R0 // ec0b89180b56
   232  	RISBG	$0, $31, $32, R1, R2  // ec21001f2055
   233  	RISBGN	$17, $8, $16, R3, R4  // ec4311081059
   234  	RISBGZ	$9, $24, $11, R5, R6  // ec6509980b55
   235  	RISBGNZ	$0, $31, $32, R7, R8  // ec87009f2059
   236  	RISBHG	$17, $8, $16, R9, R10 // eca91108105d
   237  	RISBLG	$9, $24, $11, R11, R0 // ec0b09180b51
   238  	RISBHGZ	$17, $8, $16, R9, R10 // eca91188105d
   239  	RISBLGZ	$9, $24, $11, R11, R0 // ec0b09980b51
   240  
   241  	LAA	R1, R2, 524287(R3)    // eb213fff7ff8
   242  	LAAG	R4, R5, -524288(R6)   // eb54600080e8
   243  	LAAL	R7, R8, 8192(R9)      // eb87900002fa
   244  	LAALG	R10, R11, -8192(R12)  // ebbac000feea
   245  	LAN	R1, R2, (R3)          // eb21300000f4
   246  	LANG	R4, R5, (R6)          // eb54600000e4
   247  	LAX	R7, R8, (R9)          // eb87900000f7
   248  	LAXG	R10, R11, (R12)       // ebbac00000e7
   249  	LAO	R1, R2, (R3)          // eb21300000f6
   250  	LAOG	R4, R5, (R6)          // eb54600000e6
   251  
   252  	// load and store multiple
   253  	LMG	n-8(SP), R3, R4         // eb34f0100004
   254  	LMG	-5(R5), R3, R4          // eb345ffbff04
   255  	LMY	n-8(SP), R3, R4         // 9834f010
   256  	LMY	4096(R1), R3, R4        // eb3410000198
   257  	STMG	R1, R2, n-8(SP)         // eb12f0100024
   258  	STMG	R1, R2, -5(R3)          // eb123ffbff24
   259  	STMY	R1, R2, n-8(SP)         // 9012f010
   260  	STMY	R1, R2, 4096(R3)        // eb1230000190
   261  
   262  	XC	$8, (R15), n-8(SP)       // d707f010f000
   263  	NC	$8, (R15), n-8(SP)       // d407f010f000
   264  	OC	$8, (R15), n-8(SP)       // d607f010f000
   265  	MVC	$8, (R15), n-8(SP)       // d207f010f000
   266  	MVCIN	$8, (R15), n-8(SP)       // e807f010f000
   267  	CLC	$8, (R15), n-8(SP)       // d507f000f010
   268  	XC	$256, -8(R15), -8(R15)   // b90400afc2a8fffffff8d7ffa000a000
   269  	MVC	$256, 8192(R1), 8192(R2) // b90400a2c2a800002000b90400b1c2b800002000d2ffa000b000
   270  
   271  	CMP	R1, R2                 // b9200012
   272  	CMP	R3, $32767             // a73f7fff
   273  	CMP	R3, $32768             // c23c00008000
   274  	CMP	R3, $-2147483648       // c23c80000000
   275  	CMPU	R4, R5                 // b9210045
   276  	CMPU	R6, $4294967295        // c26effffffff
   277  	CMPW	R7, R8                 // 1978
   278  	CMPW	R9, $-32768            // a79e8000
   279  	CMPW	R9, $-32769            // c29dffff7fff
   280  	CMPW	R9, $-2147483648       // c29d80000000
   281  	CMPWU	R1, R2                 // 1512
   282  	CMPWU	R3, $4294967295        // c23fffffffff
   283  
   284  	TMHH	R1, $65535             // a712ffff
   285  	TMHL	R2, $1                 // a7230001
   286  	TMLH	R3, $0                 // a7300000
   287  	TMLL	R4, $32768             // a7418000
   288  
   289  	IPM	R3                     // b2220030
   290  	IPM	R12                    // b22200c0
   291  
   292  	SPM	R1                     // 0410
   293  	SPM	R10                    // 04a0
   294  
   295  	BRC	$7, 0(PC)              // a7740000
   296  	BNE	0(PC)                  // a7740000
   297  	BEQ	0(PC)                  // a7840000
   298  	BLT	0(PC)                  // a7440000
   299  	BLE	0(PC)                  // a7c40000
   300  	BGT	0(PC)                  // a7240000
   301  	BGE	0(PC)                  // a7a40000
   302  	BLTU	0(PC)                  // a7540000
   303  	BLEU	0(PC)                  // a7d40000
   304  
   305  	BRCT	R1, 0(PC)              // a7160000
   306  	BRCTG	R2, 0(PC)              // a7270000
   307  
   308  	CMPBNE	R1, R2, 0(PC)          // ec1200007064
   309  	CMPBEQ	R3, R4, 0(PC)          // ec3400008064
   310  	CMPBLT	R5, R6, 0(PC)          // ec5600004064
   311  	CMPBLE	R7, R8, 0(PC)          // ec780000c064
   312  	CMPBGT	R9, R1, 0(PC)          // ec9100002064
   313  	CMPBGE	R2, R3, 0(PC)          // ec230000a064
   314  
   315  	CMPBNE	R1, $-127, 0(PC)       // ec170000817c
   316  	CMPBEQ	R3, $0, 0(PC)          // ec380000007c
   317  	CMPBLT	R5, $128, 0(PC)        // ec540000807c
   318  	CMPBLE	R7, $127, 0(PC)        // ec7c00007f7c
   319  	CMPBGT	R9, $0, 0(PC)          // ec920000007c
   320  	CMPBGE	R2, $128, 0(PC)        // ec2a0000807c
   321  
   322  	CMPUBNE	R1, R2, 0(PC)          // ec1200007065
   323  	CMPUBEQ	R3, R4, 0(PC)          // ec3400008065
   324  	CMPUBLT	R5, R6, 0(PC)          // ec5600004065
   325  	CMPUBLE	R7, R8, 0(PC)          // ec780000c065
   326  	CMPUBGT	R9, R1, 0(PC)          // ec9100002065
   327  	CMPUBGE	R2, R3, 0(PC)          // ec230000a065
   328  
   329  	CMPUBNE	R1, $256, 0(PC)        // ec170000007d
   330  	CMPUBEQ	R3, $0, 0(PC)          // ec380000007d
   331  	CMPUBLT	R5, $256, 0(PC)        // ec540000007d
   332  	CMPUBLE	R7, $0, 0(PC)          // ec7c0000007d
   333  	CMPUBGT	R9, $256, 0(PC)        // ec920000007d
   334  	CMPUBGE	R2, $0, 0(PC)          // ec2a0000007d
   335  
   336  	CRJ	$15, R1, R2, 0(PC)     // ec120000f076
   337  	CGRJ	$12, R3, R4, 0(PC)     // ec340000c064
   338  	CLRJ	$3, R5, R6, 0(PC)      // ec5600003077
   339  	CLGRJ	$0, R7, R8, 0(PC)      // ec7800000065
   340  
   341  	CIJ	$4, R9, $127, 0(PC)    // ec9400007f7e
   342  	CGIJ	$8, R11, $-128, 0(PC)  // ecb80000807c
   343  	CLIJ	$1, R1, $255, 0(PC)    // ec110000ff7f
   344  	CLGIJ	$2, R3, $0, 0(PC)      // ec320000007d
   345  
   346  	LGDR	F1, R12                // b3cd00c1
   347  	LDGR	R2, F15                // b3c100f2
   348  
   349  	CEFBRA	R0, F15                // b39400f0
   350  	CDFBRA	R1, F14                // b39500e1
   351  	CEGBRA	R2, F13                // b3a400d2
   352  	CDGBRA	R3, F12                // b3a500c3
   353  
   354  	CELFBR	R0, F15                // b39000f0
   355  	CDLFBR	R1, F14                // b39100e1
   356  	CELGBR	R2, F13                // b3a000d2
   357  	CDLGBR	R3, F12                // b3a100c3
   358  
   359  	CFEBRA	F15, R1                // b398501f
   360  	CFDBRA	F14, R2                // b399502e
   361  	CGEBRA	F13, R3                // b3a8503d
   362  	CGDBRA	F12, R4                // b3a9504c
   363  
   364  	CLFEBR	F15, R1                // b39c501f
   365  	CLFDBR	F14, R2                // b39d502e
   366  	CLGEBR	F13, R3                // b3ac503d
   367  	CLGDBR	F12, R4                // b3ad504c
   368  
   369  	FMOVS	$0, F11                // b37400b0
   370  	FMOVD	$0, F12                // b37500c0
   371  	FMOVS	(R1)(R2*1), F0         // 78021000
   372  	FMOVS	n-8(SP), F15           // 78f0f010
   373  	FMOVD	-9999999(R8)(R9*1), F8 // c0a1ff67698141aa9000688a8000
   374  	FMOVD	F4, F5                 // 2854
   375  
   376  	// RX (12-bit displacement) and RXY (20-bit displacement) instruction encoding (e.g. LD vs LDY)
   377  	FMOVD	(R1), F0               // 68001000
   378  	FMOVD	4095(R2), F13          // 68d02fff
   379  	FMOVD	4096(R2), F15          // edf020000165
   380  	FMOVS	4095(R2)(R3), F13      // 78d32fff
   381  	FMOVS	4096(R2)(R4), F15      // edf420000164
   382  	FMOVD	F0, 4095(R1)           // 60001fff
   383  	FMOVD	F0, 4096(R1)           // ed0010000167
   384  	FMOVS	F13, 4095(R2)(R3)      // 70d32fff
   385  	FMOVS	F13, 4096(R2)(R3)      // edd320000166
   386  
   387  	FADDS	F0, F15                // b30a00f0
   388  	FADD	F1, F14                // b31a00e1
   389  	FSUBS	F2, F13                // b30b00d2
   390  	FSUB	F3, F12                // b31b00c3
   391  	FMULS	F4, F11                // b31700b4
   392  	FMUL	F5, F10                // b31c00a5
   393  	FDIVS	F6, F9                 // b30d0096
   394  	FDIV	F7, F8                 // b31d0087
   395  	FABS	F1, F2                 // b3100021
   396  	FSQRTS	F3, F4                 // b3140043
   397  	FSQRT	F5, F15                // b31500f5
   398  	FIEBR	$0, F0, F1             // b3570010
   399  	FIDBR	$7, F2, F3             // b35f7032
   400  	FMADD	F1, F1, F1             // b31e1011
   401  	FMADDS	F1, F2, F3             // b30e3012
   402  	FMSUB	F4, F5, F5             // b31f5045
   403  	FMSUBS	F6, F6, F7             // b30f7066
   404  	LPDFR	F1, F2                 // b3700021
   405  	LNDFR	F3, F4                 // b3710043
   406  	CPSDR	F5, F6, F7             // b3725076
   407  	LTEBR	F1, F2                 // b3020021
   408  	LTDBR	F3, F4                 // b3120043
   409  	TCEB	F5, $8                 // ed5000080010
   410  	TCDB	F15, $4095             // edf00fff0011
   411  
   412  	UNDEF                          // 00000000
   413  	BRRK			       // 0001
   414  	NOPH                           // 0700
   415  
   416  	SYNC                           // 07e0
   417  
   418  	KM	R2, R4                 // b92e0024
   419  	KMC	R2, R6                 // b92f0026
   420  	KLMD	R2, R8                 // b93f0028
   421  	KIMD	R0, R4                 // b93e0004
   422  	KDSA	R0, R8                 // b93a0008
   423  	KMA	R2, R6, R4              // b9296024
   424  	KMCTR   R2, R6, R4              // b92d6024
   425  
   426  	// vector add and sub instructions
   427  	VAB	V3, V4, V4              // e743400000f3
   428  	VAH	V3, V4, V4              // e743400010f3
   429  	VAF	V3, V4, V4              // e743400020f3
   430  	VAG	V3, V4, V4              // e743400030f3
   431  	VAQ	V3, V4, V4              // e743400040f3
   432  	VAB	V1, V2                  // e721200000f3
   433  	VAH	V1, V2                  // e721200010f3
   434  	VAF	V1, V2                  // e721200020f3
   435  	VAG	V1, V2                  // e721200030f3
   436  	VAQ	V1, V2                  // e721200040f3
   437  	VSB	V3, V4, V4              // e744300000f7
   438  	VSH	V3, V4, V4              // e744300010f7
   439  	VSF	V3, V4, V4              // e744300020f7
   440  	VSG	V3, V4, V4              // e744300030f7
   441  	VSQ	V3, V4, V4              // e744300040f7
   442  	VSB	V1, V2                  // e722100000f7
   443  	VSH	V1, V2                  // e722100010f7
   444  	VSF	V1, V2                  // e722100020f7
   445  	VSG	V1, V2                  // e722100030f7
   446  	VSQ	V1, V2                  // e722100040f7
   447  
   448  	VCEQB	V1, V3, V3              // e731300000f8
   449  	VL	(R15), V1               // e710f0000006
   450  	VST	V1, (R15)               // e710f000000e
   451  	VL	(R15), V31              // e7f0f0000806
   452  	VST	V31, (R15)              // e7f0f000080e
   453  	VESLB	$5, V14                 // e7ee00050030
   454  	VESRAG	$0, V15, V16            // e70f0000383a
   455  	VLM	(R15), V8, V23          // e787f0000436
   456  	VSTM	V8, V23, (R15)          // e787f000043e
   457  	VONE	V1                      // e710ffff0044
   458  	VZERO	V16                     // e70000000844
   459  	VGBM	$52428, V31             // e7f0cccc0844
   460  	VREPIB	$255, V4                // e74000ff0045
   461  	VREPIH	$-1, V16                // e700ffff1845
   462  	VREPIF	$-32768, V0             // e70080002045
   463  	VREPIG	$32767, V31             // e7f07fff3845
   464  	VREPG	$1, V4, V16             // e7040001384d
   465  	VREPB	$4, V31, V1             // e71f0004044d
   466  	VFTCIDB	$4095, V1, V2           // e721fff0304a
   467  	WFTCIDB	$3276, V15, V16         // e70fccc8384a
   468  	VPOPCT	V8, V19                 // e73800000850
   469  	VFEEZBS	V1, V2, V31             // e7f120300880
   470  	WFCHDBS	V22, V23, V4            // e746701836eb
   471  	VMNH	V1, V2, V30             // e7e1200018fe
   472  	VERLLVF	V2, V30, V27            // e7be20002c73
   473  	VSCBIB	V0, V23, V24            // e78700000cf5
   474  	VN	V2, V1, V0              // e70210000068
   475  	VNC	V2, V1, V0              // e70210000069
   476  	VO	V2, V1, V0              // e7021000006a
   477  	VX	V2, V1, V0              // e7021000006d
   478  	VN	V16, V1                 // e71010000468
   479  	VNC	V16, V1                 // e71010000469
   480  	VO	V16, V1                 // e7101000046a
   481  	VX	V16, V1                 // e7101000046d
   482  	VNOT	V16, V1                 // e7101000046b
   483  	VCLZF	V16, V17                // e71000002c53
   484  	VLVGP	R3, R4, V8              // e78340000062
   485  	VGEG	$1, 8(R15)(V30*1), V31  // e7fef0081c12
   486  	VSCEG	$1, V31, 16(R15)(V30*1) // e7fef0101c1a
   487  	VGEF	$0, 2048(R15)(V1*1), V2 // e721f8000013
   488  	VSCEF	$0, V2, 4095(R15)(V1*1) // e721ffff001b
   489  	VLL	R0, (R15), V1           // e710f0000037
   490  	VSTL	R0, V16, (R15)          // e700f000083f
   491  	VGMH	$8, $16, V12            // e7c008101046
   492  	VLEIB	$15, $255, V0           // e70000fff040
   493  	VLEIH	$7, $-32768, V15        // e7f080007041
   494  	VLEIF	$2, $-43, V16           // e700ffd52843
   495  	VLEIG	$1, $32767, V31         // e7f07fff1842
   496  	VSLDB	$3, V1, V16, V18        // e72100030a77
   497  	VERIMB	$2, V31, V1, V2         // e72f10020472
   498  	VSEL	V1, V2, V3, V4          // e7412000308d
   499  	VGFMAH	V21, V31, V24, V0       // e705f10087bc
   500  	VFMADB	V16, V8, V9, V10        // e7a08300948f
   501  	WFMADB	V17, V18, V19, V20      // e74123083f8f
   502  	VFMSDB	V2, V25, V24, V31       // e7f293008b8e
   503  	WFMSDB	V31, V2, V3, V4         // e74f2308348e
   504  	VPERM	V31, V0, V2, V3         // e73f0000248c
   505  	VPDI	$1, V2, V31, V1         // e712f0001284
   506  	VLEG	$1, (R3), V1            // e71030001002
   507  	VLEF	$2, (R0), V31           // e7f000002803
   508  	VLEH	$3, (R12), V16          // e700c0003801
   509  	VLEB	$15, 4095(R9), V15      // e7f09ffff000
   510  	VSTEG	$1, V30, (R1)(R2*1)     // e7e21000180a
   511  	VSTEF	$3, V2, (R9)            // e7209000300b
   512  	VSTEH	$7, V31, (R2)           // e7f020007809
   513  	VSTEB	$15, V29, 4094(R12)     // e7d0cffef808
   514  	VMSLG	V21, V22, V23, V24      // e78563007fb8
   515  	VMSLEG  V21, V22, V23, V24      // e78563807fb8
   516  	VMSLOG  V21, V22, V23, V24      // e78563407fb8
   517  	VMSLEOG V21, V22, V23, V24      // e78563c07fb8
   518  	VSUMGH	V1, V2, V3              // e73120001065
   519  	VSUMGF	V16, V17, V18           // e72010002e65
   520  	VSUMQF	V4, V5, V6              // e76450002067
   521  	VSUMQG	V19, V20, V21           // e75340003e67
   522  	VSUMB	V7, V8, V9              // e79780000064
   523  	VSUMH	V22, V23, V24           // e78670001e64
   524  
   525  	RET
   526  	RET	foo(SB)
   527  
   528  TEXT main·init(SB),DUPOK|NOSPLIT,$0 // TEXT main.init(SB), DUPOK|NOSPLIT, $0
   529  	RET
   530  
   531  TEXT main·main(SB),DUPOK|NOSPLIT,$0 // TEXT main.main(SB), DUPOK|NOSPLIT, $0
   532  	BL      main·foo(SB)    // CALL main.foo(SB)
   533  	RET
   534  

View as plain text