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

     1  // Copyright 2015 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  // This input was created by taking the instruction productions in
     6  // the old assembler's (5a's) grammar and hand-writing complete
     7  // instructions for each rule, to guarantee we cover the same space.
     8  
     9  #include "../../../../../runtime/textflag.h"
    10  
    11  TEXT	foo(SB), DUPOK|NOSPLIT, $0
    12  
    13  // ADD
    14  //
    15  //	LTYPE1 cond imsr ',' spreg ',' reg
    16  //	{
    17  //		outcode($1, $2, &$3, $5, &$7);
    18  //	}
    19  // Cover some operand space here too.
    20  	ADD	$1, R2, R3
    21  	ADD	R1<<R2, R3, R4
    22  	ADD	R1>>R2, R3, R4
    23  	ADD	R1@>R2, R3, R4
    24  	ADD	R1->R2, R3, R4
    25  	ADD	R1, R2, R3
    26  	ADD	R(1)<<R(2), R(3), R(4) // ADD	R1<<R2, R3, R4
    27  
    28  //	LTYPE1 cond imsr ',' spreg ',' // asm doesn't support trailing comma.
    29  //	{
    30  //		outcode($1, $2, &$3, $5, &nullgen);
    31  //	}
    32  //	LTYPE1 cond imsr ',' reg
    33  //	{
    34  //		outcode($1, $2, &$3, 0, &$5);
    35  //	}
    36  	ADD	$1, R2
    37  	ADD	R1<<R2, R3
    38  	ADD	R1>>R2, R3
    39  	ADD	R1@>R2, R3
    40  	ADD	R1->R2, R3
    41  	ADD	R1, R2
    42  
    43  //
    44  // MVN
    45  //
    46  //	LTYPE2 cond imsr ',' reg
    47  //	{
    48  //		outcode($1, $2, &$3, 0, &$5);
    49  //	}
    50  	CLZ	R1, R2
    51  
    52  //
    53  // MOVW
    54  //
    55  //	LTYPE3 cond gen ',' gen
    56  //	{
    57  //		outcode($1, $2, &$3, 0, &$5);
    58  //	}
    59  	MOVW.S	R1, R2
    60  	MOVW	$1, R2
    61  	MOVW.S	R1<<R2, R3
    62  
    63  //
    64  // B/BL
    65  //
    66  //	LTYPE4 cond comma rel
    67  //	{
    68  //		outcode($1, $2, &nullgen, 0, &$4);
    69  //	}
    70  	B.EQ	1(PC) // BEQ 1(PC)
    71  
    72  //	LTYPE4 cond comma nireg
    73  //	{
    74  //		outcode($1, $2, &nullgen, 0, &$4);
    75  //	}
    76  	BEQ	2(PC)
    77  	B	foo(SB) // JMP foo(SB)
    78  	BEQ	2(PC)
    79  	B	bar<>(SB) // JMP bar<>(SB)
    80  
    81  //
    82  // BX
    83  //
    84  //	LTYPEBX comma ireg
    85  //	{
    86  //		outcode($1, Always, &nullgen, 0, &$3);
    87  //	}
    88  	BX	(R0)
    89  
    90  //
    91  // BEQ
    92  //
    93  //	LTYPE5 comma rel
    94  //	{
    95  //		outcode($1, Always, &nullgen, 0, &$3);
    96  //	}
    97  	BEQ	1(PC)
    98  
    99  //
   100  // SWI
   101  //
   102  //	LTYPE6 cond comma gen
   103  //	{
   104  //		outcode($1, $2, &nullgen, 0, &$4);
   105  //	}
   106  	SWI	$2
   107  	SWI	$3
   108  //	SWI	foo(SB) - TODO: classifying foo(SB) as C_TLS_LE
   109  
   110  //
   111  // CMP
   112  //
   113  //	LTYPE7 cond imsr ',' spreg
   114  //	{
   115  //		outcode($1, $2, &$3, $5, &nullgen);
   116  //	}
   117  	CMP	$1, R2
   118  	CMP	R1<<R2, R3
   119  	CMP	R1, R2
   120  
   121  //
   122  // MOVM
   123  //
   124  //	LTYPE8 cond ioreg ',' '[' reglist ']'
   125  //	{
   126  //		var g obj.Addr
   127  //
   128  //		g = nullgen;
   129  //		g.Type = obj.TYPE_CONST;
   130  //		g.Offset = int64($6);
   131  //		outcode($1, $2, &$3, 0, &g);
   132  //	}
   133  	MOVM	0(R1), [R2,R5,R8,g] // MOVM	(R1), [R2,R5,R8,g]
   134  	MOVM	(R1), [R2-R5] // MOVM (R1), [R2,R3,R4,R5]
   135  	MOVM	(R1), [R2]
   136  
   137  //	LTYPE8 cond '[' reglist ']' ',' ioreg
   138  //	{
   139  //		var g obj.Addr
   140  //
   141  //		g = nullgen;
   142  //		g.Type = obj.TYPE_CONST;
   143  //		g.Offset = int64($4);
   144  //		outcode($1, $2, &g, 0, &$7);
   145  //	}
   146  	MOVM	[R2,R5,R8,g], 0(R1) // MOVM	[R2,R5,R8,g], (R1)
   147  	MOVM	[R2-R5], (R1) // MOVM [R2,R3,R4,R5], (R1)
   148  	MOVM	[R2], (R1)
   149  
   150  //
   151  // SWAP
   152  //
   153  //	LTYPE9 cond reg ',' ireg ',' reg
   154  //	{
   155  //		outcode($1, $2, &$5, int32($3.Reg), &$7);
   156  //	}
   157  	STREX	R1, (R2), R3 // STREX (R2), R1, R3
   158  
   159  //
   160  // word
   161  //
   162  //	LTYPEH comma ximm
   163  //	{
   164  //		outcode($1, Always, &nullgen, 0, &$3);
   165  //	}
   166  	WORD	$1234
   167  
   168  //
   169  // floating-point coprocessor
   170  //
   171  //	LTYPEI cond freg ',' freg
   172  //	{
   173  //		outcode($1, $2, &$3, 0, &$5);
   174  //	}
   175  	ABSF	F1, F2
   176  
   177  //	LTYPEK cond frcon ',' freg
   178  //	{
   179  //		outcode($1, $2, &$3, 0, &$5);
   180  //	}
   181  	ADDD	F1, F2
   182  	MOVF	$0.5, F2 // MOVF $(0.5), F2
   183  
   184  //	LTYPEK cond frcon ',' LFREG ',' freg
   185  //	{
   186  //		outcode($1, $2, &$3, $5, &$7);
   187  //	}
   188  	ADDD	F1, F2, F3
   189  
   190  //	LTYPEL cond freg ',' freg
   191  //	{
   192  //		outcode($1, $2, &$3, int32($5.Reg), &nullgen);
   193  //	}
   194  	CMPD	F1, F2
   195  
   196  //
   197  // MCR MRC
   198  //
   199  //	LTYPEJ cond con ',' expr ',' spreg ',' creg ',' creg oexpr
   200  //	{
   201  //		var g obj.Addr
   202  //
   203  //		g = nullgen;
   204  //		g.Type = obj.TYPE_CONST;
   205  //		g.Offset = int64(
   206  //			(0xe << 24) |		/* opcode */
   207  //			($1 << 20) |		/* MCR/MRC */
   208  //			(($2^C_SCOND_XOR) << 28) |		/* scond */
   209  //			(($3 & 15) << 8) |	/* coprocessor number */
   210  //			(($5 & 7) << 21) |	/* coprocessor operation */
   211  //			(($7 & 15) << 12) |	/* arm register */
   212  //			(($9 & 15) << 16) |	/* Crn */
   213  //			(($11 & 15) << 0) |	/* Crm */
   214  //			(($12 & 7) << 5) |	/* coprocessor information */
   215  //			(1<<4));			/* must be set */
   216  //		outcode(AMRC, Always, &nullgen, 0, &g);
   217  //	}
   218  	MRC.S	4, 6, R1, C2, C3, 7 // MRC $8301712627
   219  	MCR.S	4, 6, R1, C2, C3, 7 // MRC $8300664051
   220  
   221  //
   222  // MULL r1,r2,(hi,lo)
   223  //
   224  //	LTYPEM cond reg ',' reg ',' regreg
   225  //	{
   226  //		outcode($1, $2, &$3, int32($5.Reg), &$7);
   227  //	}
   228  	MULL	R1, R2, (R3,R4)
   229  
   230  //
   231  // MULA r1,r2,r3,r4: (r1*r2+r3) & 0xffffffff . r4
   232  // MULAW{T,B} r1,r2,r3,r4
   233  //
   234  //	LTYPEN cond reg ',' reg ',' reg ',' spreg
   235  //	{
   236  //		$7.Type = obj.TYPE_REGREG2;
   237  //		$7.Offset = int64($9);
   238  //		outcode($1, $2, &$3, int32($5.Reg), &$7);
   239  //	}
   240  	MULAWT	R1, R2, R3, R4
   241  //
   242  // PLD
   243  //
   244  //	LTYPEPLD oreg
   245  //	{
   246  //		outcode($1, Always, &$2, 0, &nullgen);
   247  //	}
   248  	PLD	(R1)
   249  	PLD	4(R1)
   250  
   251  //
   252  // RET
   253  //
   254  //	LTYPEA cond
   255  //	{
   256  //		outcode($1, $2, &nullgen, 0, &nullgen);
   257  //	}
   258  	BEQ	2(PC)
   259  	RET
   260  
   261  // More B/BL cases, and canonical names JMP, CALL.
   262  
   263  	BEQ	2(PC)
   264  	B	foo(SB) // JMP foo(SB)
   265  	BL	foo(SB) // CALL foo(SB)
   266  	BEQ	2(PC)
   267  	JMP	foo(SB)
   268  	CALL	foo(SB)
   269  
   270  // CMPF and CMPD are special.
   271  	CMPF F1, F2
   272  	CMPD F1, F2
   273  
   274  // AND
   275  	AND	$255, R0, R1         // ff1000e2
   276  	AND	$4278190080, R0, R1  // ff1400e2
   277  	AND.S	$255, R0, R1         // ff1010e2
   278  	AND.S	$4278190080, R0, R1  // ff1410e2
   279  	AND	$255, R0             // ff0000e2
   280  	AND	$4278190080, R0      // ff0400e2
   281  	AND.S	$255, R0             // ff0010e2
   282  	AND.S	$4278190080, R0      // ff0410e2
   283  	AND	R0, R1, R2           // 002001e0
   284  	AND.S	R0, R1, R2           // 002011e0
   285  	AND	R0, R1               // 001001e0
   286  	AND.S	R0, R1               // 001011e0
   287  	AND	R0>>28, R1, R2       // 202e01e0
   288  	AND	R0<<28, R1, R2       // 002e01e0
   289  	AND	R0->28, R1, R2       // 402e01e0
   290  	AND	R0@>28, R1, R2       // 602e01e0
   291  	AND.S	R0>>28, R1, R2       // 202e11e0
   292  	AND.S	R0<<28, R1, R2       // 002e11e0
   293  	AND.S	R0->28, R1, R2       // 402e11e0
   294  	AND.S	R0@>28, R1, R2       // 602e11e0
   295  	AND	R0<<28, R1           // 001e01e0
   296  	AND	R0>>28, R1           // 201e01e0
   297  	AND	R0->28, R1           // 401e01e0
   298  	AND	R0@>28, R1           // 601e01e0
   299  	AND.S	R0<<28, R1           // 001e11e0
   300  	AND.S	R0>>28, R1           // 201e11e0
   301  	AND.S	R0->28, R1           // 401e11e0
   302  	AND.S	R0@>28, R1           // 601e11e0
   303  	AND	R0<<R1, R2, R3       // 103102e0
   304  	AND	R0>>R1, R2, R3       // 303102e0
   305  	AND	R0->R1, R2, R3       // 503102e0
   306  	AND	R0@>R1, R2, R3       // 703102e0
   307  	AND.S	R0<<R1, R2, R3       // 103112e0
   308  	AND.S	R0>>R1, R2, R3       // 303112e0
   309  	AND.S	R0->R1, R2, R3       // 503112e0
   310  	AND.S	R0@>R1, R2, R3       // 703112e0
   311  	AND	R0<<R1, R2           // 102102e0
   312  	AND	R0>>R1, R2           // 302102e0
   313  	AND	R0->R1, R2           // 502102e0
   314  	AND	R0@>R1, R2           // 702102e0
   315  	AND.S	R0<<R1, R2           // 102112e0
   316  	AND.S	R0>>R1, R2           // 302112e0
   317  	AND.S	R0->R1, R2           // 502112e0
   318  	AND.S	R0@>R1, R2           // 702112e0
   319  
   320  // EOR
   321  	EOR	$255, R0, R1         // ff1020e2
   322  	EOR	$4278190080, R0, R1  // ff1420e2
   323  	EOR.S	$255, R0, R1         // ff1030e2
   324  	EOR.S	$4278190080, R0, R1  // ff1430e2
   325  	EOR	$255, R0             // ff0020e2
   326  	EOR	$4278190080, R0      // ff0420e2
   327  	EOR.S	$255, R0             // ff0030e2
   328  	EOR.S	$4278190080, R0      // ff0430e2
   329  	EOR	R0, R1, R2           // 002021e0
   330  	EOR.S	R0, R1, R2           // 002031e0
   331  	EOR	R0, R1               // 001021e0
   332  	EOR.S	R0, R1               // 001031e0
   333  	EOR	R0>>28, R1, R2       // 202e21e0
   334  	EOR	R0<<28, R1, R2       // 002e21e0
   335  	EOR	R0->28, R1, R2       // 402e21e0
   336  	EOR	R0@>28, R1, R2       // 602e21e0
   337  	EOR.S	R0>>28, R1, R2       // 202e31e0
   338  	EOR.S	R0<<28, R1, R2       // 002e31e0
   339  	EOR.S	R0->28, R1, R2       // 402e31e0
   340  	EOR.S	R0@>28, R1, R2       // 602e31e0
   341  	EOR	R0<<28, R1           // 001e21e0
   342  	EOR	R0>>28, R1           // 201e21e0
   343  	EOR	R0->28, R1           // 401e21e0
   344  	EOR	R0@>28, R1           // 601e21e0
   345  	EOR.S	R0<<28, R1           // 001e31e0
   346  	EOR.S	R0>>28, R1           // 201e31e0
   347  	EOR.S	R0->28, R1           // 401e31e0
   348  	EOR.S	R0@>28, R1           // 601e31e0
   349  	EOR	R0<<R1, R2, R3       // 103122e0
   350  	EOR	R0>>R1, R2, R3       // 303122e0
   351  	EOR	R0->R1, R2, R3       // 503122e0
   352  	EOR	R0@>R1, R2, R3       // 703122e0
   353  	EOR.S	R0<<R1, R2, R3       // 103132e0
   354  	EOR.S	R0>>R1, R2, R3       // 303132e0
   355  	EOR.S	R0->R1, R2, R3       // 503132e0
   356  	EOR.S	R0@>R1, R2, R3       // 703132e0
   357  	EOR	R0<<R1, R2           // 102122e0
   358  	EOR	R0>>R1, R2           // 302122e0
   359  	EOR	R0->R1, R2           // 502122e0
   360  	EOR	R0@>R1, R2           // 702122e0
   361  	EOR.S	R0<<R1, R2           // 102132e0
   362  	EOR.S	R0>>R1, R2           // 302132e0
   363  	EOR.S	R0->R1, R2           // 502132e0
   364  	EOR.S	R0@>R1, R2           // 702132e0
   365  
   366  // ORR
   367  	ORR	$255, R0, R1         // ff1080e3
   368  	ORR	$4278190080, R0, R1  // ff1480e3
   369  	ORR.S	$255, R0, R1         // ff1090e3
   370  	ORR.S	$4278190080, R0, R1  // ff1490e3
   371  	ORR	$255, R0             // ff0080e3
   372  	ORR	$4278190080, R0      // ff0480e3
   373  	ORR.S	$255, R0             // ff0090e3
   374  	ORR.S	$4278190080, R0      // ff0490e3
   375  	ORR	R0, R1, R2           // 002081e1
   376  	ORR.S	R0, R1, R2           // 002091e1
   377  	ORR	R0, R1               // 001081e1
   378  	ORR.S	R0, R1               // 001091e1
   379  	ORR	R0>>28, R1, R2       // 202e81e1
   380  	ORR	R0<<28, R1, R2       // 002e81e1
   381  	ORR	R0->28, R1, R2       // 402e81e1
   382  	ORR	R0@>28, R1, R2       // 602e81e1
   383  	ORR.S	R0>>28, R1, R2       // 202e91e1
   384  	ORR.S	R0<<28, R1, R2       // 002e91e1
   385  	ORR.S	R0->28, R1, R2       // 402e91e1
   386  	ORR.S	R0@>28, R1, R2       // 602e91e1
   387  	ORR	R0<<28, R1           // 001e81e1
   388  	ORR	R0>>28, R1           // 201e81e1
   389  	ORR	R0->28, R1           // 401e81e1
   390  	ORR	R0@>28, R1           // 601e81e1
   391  	ORR.S	R0<<28, R1           // 001e91e1
   392  	ORR.S	R0>>28, R1           // 201e91e1
   393  	ORR.S	R0->28, R1           // 401e91e1
   394  	ORR.S	R0@>28, R1           // 601e91e1
   395  	ORR	R0<<R1, R2, R3       // 103182e1
   396  	ORR	R0>>R1, R2, R3       // 303182e1
   397  	ORR	R0->R1, R2, R3       // 503182e1
   398  	ORR	R0@>R1, R2, R3       // 703182e1
   399  	ORR.S	R0<<R1, R2, R3       // 103192e1
   400  	ORR.S	R0>>R1, R2, R3       // 303192e1
   401  	ORR.S	R0->R1, R2, R3       // 503192e1
   402  	ORR.S	R0@>R1, R2, R3       // 703192e1
   403  	ORR	R0<<R1, R2           // 102182e1
   404  	ORR	R0>>R1, R2           // 302182e1
   405  	ORR	R0->R1, R2           // 502182e1
   406  	ORR	R0@>R1, R2           // 702182e1
   407  	ORR.S	R0<<R1, R2           // 102192e1
   408  	ORR.S	R0>>R1, R2           // 302192e1
   409  	ORR.S	R0->R1, R2           // 502192e1
   410  	ORR.S	R0@>R1, R2           // 702192e1
   411  
   412  // SUB
   413  	SUB	$255, R0, R1         // ff1040e2
   414  	SUB	$4278190080, R0, R1  // ff1440e2
   415  	SUB.S	$255, R0, R1         // ff1050e2
   416  	SUB.S	$4278190080, R0, R1  // ff1450e2
   417  	SUB	$255, R0             // ff0040e2
   418  	SUB	$4278190080, R0      // ff0440e2
   419  	SUB.S	$255, R0             // ff0050e2
   420  	SUB.S	$4278190080, R0      // ff0450e2
   421  	SUB	R0, R1, R2           // 002041e0
   422  	SUB.S	R0, R1, R2           // 002051e0
   423  	SUB	R0, R1               // 001041e0
   424  	SUB.S	R0, R1               // 001051e0
   425  	SUB	R0>>28, R1, R2       // 202e41e0
   426  	SUB	R0<<28, R1, R2       // 002e41e0
   427  	SUB	R0->28, R1, R2       // 402e41e0
   428  	SUB	R0@>28, R1, R2       // 602e41e0
   429  	SUB.S	R0>>28, R1, R2       // 202e51e0
   430  	SUB.S	R0<<28, R1, R2       // 002e51e0
   431  	SUB.S	R0->28, R1, R2       // 402e51e0
   432  	SUB.S	R0@>28, R1, R2       // 602e51e0
   433  	SUB	R0<<28, R1           // 001e41e0
   434  	SUB	R0>>28, R1           // 201e41e0
   435  	SUB	R0->28, R1           // 401e41e0
   436  	SUB	R0@>28, R1           // 601e41e0
   437  	SUB.S	R0<<28, R1           // 001e51e0
   438  	SUB.S	R0>>28, R1           // 201e51e0
   439  	SUB.S	R0->28, R1           // 401e51e0
   440  	SUB.S	R0@>28, R1           // 601e51e0
   441  	SUB	R0<<R1, R2, R3       // 103142e0
   442  	SUB	R0>>R1, R2, R3       // 303142e0
   443  	SUB	R0->R1, R2, R3       // 503142e0
   444  	SUB	R0@>R1, R2, R3       // 703142e0
   445  	SUB.S	R0<<R1, R2, R3       // 103152e0
   446  	SUB.S	R0>>R1, R2, R3       // 303152e0
   447  	SUB.S	R0->R1, R2, R3       // 503152e0
   448  	SUB.S	R0@>R1, R2, R3       // 703152e0
   449  	SUB	R0<<R1, R2           // 102142e0
   450  	SUB	R0>>R1, R2           // 302142e0
   451  	SUB	R0->R1, R2           // 502142e0
   452  	SUB	R0@>R1, R2           // 702142e0
   453  	SUB.S	R0<<R1, R2           // 102152e0
   454  	SUB.S	R0>>R1, R2           // 302152e0
   455  	SUB.S	R0->R1, R2           // 502152e0
   456  	SUB.S	R0@>R1, R2           // 702152e0
   457  
   458  // SBC
   459  	SBC	$255, R0, R1         // ff10c0e2
   460  	SBC	$4278190080, R0, R1  // ff14c0e2
   461  	SBC.S	$255, R0, R1         // ff10d0e2
   462  	SBC.S	$4278190080, R0, R1  // ff14d0e2
   463  	SBC	$255, R0             // ff00c0e2
   464  	SBC	$4278190080, R0      // ff04c0e2
   465  	SBC.S	$255, R0             // ff00d0e2
   466  	SBC.S	$4278190080, R0      // ff04d0e2
   467  	SBC	R0, R1, R2           // 0020c1e0
   468  	SBC.S	R0, R1, R2           // 0020d1e0
   469  	SBC	R0, R1               // 0010c1e0
   470  	SBC.S	R0, R1               // 0010d1e0
   471  	SBC	R0>>28, R1, R2       // 202ec1e0
   472  	SBC	R0<<28, R1, R2       // 002ec1e0
   473  	SBC	R0->28, R1, R2       // 402ec1e0
   474  	SBC	R0@>28, R1, R2       // 602ec1e0
   475  	SBC.S	R0>>28, R1, R2       // 202ed1e0
   476  	SBC.S	R0<<28, R1, R2       // 002ed1e0
   477  	SBC.S	R0->28, R1, R2       // 402ed1e0
   478  	SBC.S	R0@>28, R1, R2       // 602ed1e0
   479  	SBC	R0<<28, R1           // 001ec1e0
   480  	SBC	R0>>28, R1           // 201ec1e0
   481  	SBC	R0->28, R1           // 401ec1e0
   482  	SBC	R0@>28, R1           // 601ec1e0
   483  	SBC.S	R0<<28, R1           // 001ed1e0
   484  	SBC.S	R0>>28, R1           // 201ed1e0
   485  	SBC.S	R0->28, R1           // 401ed1e0
   486  	SBC.S	R0@>28, R1           // 601ed1e0
   487  	SBC	R0<<R1, R2, R3       // 1031c2e0
   488  	SBC	R0>>R1, R2, R3       // 3031c2e0
   489  	SBC	R0->R1, R2, R3       // 5031c2e0
   490  	SBC	R0@>R1, R2, R3       // 7031c2e0
   491  	SBC.S	R0<<R1, R2, R3       // 1031d2e0
   492  	SBC.S	R0>>R1, R2, R3       // 3031d2e0
   493  	SBC.S	R0->R1, R2, R3       // 5031d2e0
   494  	SBC.S	R0@>R1, R2, R3       // 7031d2e0
   495  	SBC	R0<<R1, R2           // 1021c2e0
   496  	SBC	R0>>R1, R2           // 3021c2e0
   497  	SBC	R0->R1, R2           // 5021c2e0
   498  	SBC	R0@>R1, R2           // 7021c2e0
   499  	SBC.S	R0<<R1, R2           // 1021d2e0
   500  	SBC.S	R0>>R1, R2           // 3021d2e0
   501  	SBC.S	R0->R1, R2           // 5021d2e0
   502  	SBC.S	R0@>R1, R2           // 7021d2e0
   503  
   504  // RSB
   505  	RSB	$255, R0, R1         // ff1060e2
   506  	RSB	$4278190080, R0, R1  // ff1460e2
   507  	RSB.S	$255, R0, R1         // ff1070e2
   508  	RSB.S	$4278190080, R0, R1  // ff1470e2
   509  	RSB	$255, R0             // ff0060e2
   510  	RSB	$4278190080, R0      // ff0460e2
   511  	RSB.S	$255, R0             // ff0070e2
   512  	RSB.S	$4278190080, R0      // ff0470e2
   513  	RSB	R0, R1, R2           // 002061e0
   514  	RSB.S	R0, R1, R2           // 002071e0
   515  	RSB	R0, R1               // 001061e0
   516  	RSB.S	R0, R1               // 001071e0
   517  	RSB	R0>>28, R1, R2       // 202e61e0
   518  	RSB	R0<<28, R1, R2       // 002e61e0
   519  	RSB	R0->28, R1, R2       // 402e61e0
   520  	RSB	R0@>28, R1, R2       // 602e61e0
   521  	RSB.S	R0>>28, R1, R2       // 202e71e0
   522  	RSB.S	R0<<28, R1, R2       // 002e71e0
   523  	RSB.S	R0->28, R1, R2       // 402e71e0
   524  	RSB.S	R0@>28, R1, R2       // 602e71e0
   525  	RSB	R0<<28, R1           // 001e61e0
   526  	RSB	R0>>28, R1           // 201e61e0
   527  	RSB	R0->28, R1           // 401e61e0
   528  	RSB	R0@>28, R1           // 601e61e0
   529  	RSB.S	R0<<28, R1           // 001e71e0
   530  	RSB.S	R0>>28, R1           // 201e71e0
   531  	RSB.S	R0->28, R1           // 401e71e0
   532  	RSB.S	R0@>28, R1           // 601e71e0
   533  	RSB	R0<<R1, R2, R3       // 103162e0
   534  	RSB	R0>>R1, R2, R3       // 303162e0
   535  	RSB	R0->R1, R2, R3       // 503162e0
   536  	RSB	R0@>R1, R2, R3       // 703162e0
   537  	RSB.S	R0<<R1, R2, R3       // 103172e0
   538  	RSB.S	R0>>R1, R2, R3       // 303172e0
   539  	RSB.S	R0->R1, R2, R3       // 503172e0
   540  	RSB.S	R0@>R1, R2, R3       // 703172e0
   541  	RSB	R0<<R1, R2           // 102162e0
   542  	RSB	R0>>R1, R2           // 302162e0
   543  	RSB	R0->R1, R2           // 502162e0
   544  	RSB	R0@>R1, R2           // 702162e0
   545  	RSB.S	R0<<R1, R2           // 102172e0
   546  	RSB.S	R0>>R1, R2           // 302172e0
   547  	RSB.S	R0->R1, R2           // 502172e0
   548  	RSB.S	R0@>R1, R2           // 702172e0
   549  
   550  // RSC
   551  	RSC	$255, R0, R1         // ff10e0e2
   552  	RSC	$4278190080, R0, R1  // ff14e0e2
   553  	RSC.S	$255, R0, R1         // ff10f0e2
   554  	RSC.S	$4278190080, R0, R1  // ff14f0e2
   555  	RSC	$255, R0             // ff00e0e2
   556  	RSC	$4278190080, R0      // ff04e0e2
   557  	RSC.S	$255, R0             // ff00f0e2
   558  	RSC.S	$4278190080, R0      // ff04f0e2
   559  	RSC	R0, R1, R2           // 0020e1e0
   560  	RSC.S	R0, R1, R2           // 0020f1e0
   561  	RSC	R0, R1               // 0010e1e0
   562  	RSC.S	R0, R1               // 0010f1e0
   563  	RSC	R0>>28, R1, R2       // 202ee1e0
   564  	RSC	R0<<28, R1, R2       // 002ee1e0
   565  	RSC	R0->28, R1, R2       // 402ee1e0
   566  	RSC	R0@>28, R1, R2       // 602ee1e0
   567  	RSC.S	R0>>28, R1, R2       // 202ef1e0
   568  	RSC.S	R0<<28, R1, R2       // 002ef1e0
   569  	RSC.S	R0->28, R1, R2       // 402ef1e0
   570  	RSC.S	R0@>28, R1, R2       // 602ef1e0
   571  	RSC	R0<<28, R1           // 001ee1e0
   572  	RSC	R0>>28, R1           // 201ee1e0
   573  	RSC	R0->28, R1           // 401ee1e0
   574  	RSC	R0@>28, R1           // 601ee1e0
   575  	RSC.S	R0<<28, R1           // 001ef1e0
   576  	RSC.S	R0>>28, R1           // 201ef1e0
   577  	RSC.S	R0->28, R1           // 401ef1e0
   578  	RSC.S	R0@>28, R1           // 601ef1e0
   579  	RSC	R0<<R1, R2, R3       // 1031e2e0
   580  	RSC	R0>>R1, R2, R3       // 3031e2e0
   581  	RSC	R0->R1, R2, R3       // 5031e2e0
   582  	RSC	R0@>R1, R2, R3       // 7031e2e0
   583  	RSC.S	R0<<R1, R2, R3       // 1031f2e0
   584  	RSC.S	R0>>R1, R2, R3       // 3031f2e0
   585  	RSC.S	R0->R1, R2, R3       // 5031f2e0
   586  	RSC.S	R0@>R1, R2, R3       // 7031f2e0
   587  	RSC	R0<<R1, R2           // 1021e2e0
   588  	RSC	R0>>R1, R2           // 3021e2e0
   589  	RSC	R0->R1, R2           // 5021e2e0
   590  	RSC	R0@>R1, R2           // 7021e2e0
   591  	RSC.S	R0<<R1, R2           // 1021f2e0
   592  	RSC.S	R0>>R1, R2           // 3021f2e0
   593  	RSC.S	R0->R1, R2           // 5021f2e0
   594  	RSC.S	R0@>R1, R2           // 7021f2e0
   595  
   596  // ADD
   597  	ADD	$255, R0, R1         // ff1080e2
   598  	ADD	$4278190080, R0, R1  // ff1480e2
   599  	ADD.S	$255, R0, R1         // ff1090e2
   600  	ADD.S	$4278190080, R0, R1  // ff1490e2
   601  	ADD	$255, R0             // ff0080e2
   602  	ADD	$4278190080, R0      // ff0480e2
   603  	ADD.S	$255, R0             // ff0090e2
   604  	ADD.S	$4278190080, R0      // ff0490e2
   605  	ADD	R0, R1, R2           // 002081e0
   606  	ADD.S	R0, R1, R2           // 002091e0
   607  	ADD	R0, R1               // 001081e0
   608  	ADD.S	R0, R1               // 001091e0
   609  	ADD	R0>>28, R1, R2       // 202e81e0
   610  	ADD	R0<<28, R1, R2       // 002e81e0
   611  	ADD	R0->28, R1, R2       // 402e81e0
   612  	ADD	R0@>28, R1, R2       // 602e81e0
   613  	ADD.S	R0>>28, R1, R2       // 202e91e0
   614  	ADD.S	R0<<28, R1, R2       // 002e91e0
   615  	ADD.S	R0->28, R1, R2       // 402e91e0
   616  	ADD.S	R0@>28, R1, R2       // 602e91e0
   617  	ADD	R0<<28, R1           // 001e81e0
   618  	ADD	R0>>28, R1           // 201e81e0
   619  	ADD	R0->28, R1           // 401e81e0
   620  	ADD	R0@>28, R1           // 601e81e0
   621  	ADD.S	R0<<28, R1           // 001e91e0
   622  	ADD.S	R0>>28, R1           // 201e91e0
   623  	ADD.S	R0->28, R1           // 401e91e0
   624  	ADD.S	R0@>28, R1           // 601e91e0
   625  	ADD	R0<<R1, R2, R3       // 103182e0
   626  	ADD	R0>>R1, R2, R3       // 303182e0
   627  	ADD	R0->R1, R2, R3       // 503182e0
   628  	ADD	R0@>R1, R2, R3       // 703182e0
   629  	ADD.S	R0<<R1, R2, R3       // 103192e0
   630  	ADD.S	R0>>R1, R2, R3       // 303192e0
   631  	ADD.S	R0->R1, R2, R3       // 503192e0
   632  	ADD.S	R0@>R1, R2, R3       // 703192e0
   633  	ADD	R0<<R1, R2           // 102182e0
   634  	ADD	R0>>R1, R2           // 302182e0
   635  	ADD	R0->R1, R2           // 502182e0
   636  	ADD	R0@>R1, R2           // 702182e0
   637  	ADD.S	R0<<R1, R2           // 102192e0
   638  	ADD.S	R0>>R1, R2           // 302192e0
   639  	ADD.S	R0->R1, R2           // 502192e0
   640  	ADD.S	R0@>R1, R2           // 702192e0
   641  
   642  // ADC
   643  	ADC	$255, R0, R1         // ff10a0e2
   644  	ADC	$4278190080, R0, R1  // ff14a0e2
   645  	ADC.S	$255, R0, R1         // ff10b0e2
   646  	ADC.S	$4278190080, R0, R1  // ff14b0e2
   647  	ADC	$255, R0             // ff00a0e2
   648  	ADC	$4278190080, R0      // ff04a0e2
   649  	ADC.S	$255, R0             // ff00b0e2
   650  	ADC.S	$4278190080, R0      // ff04b0e2
   651  	ADC	R0, R1, R2           // 0020a1e0
   652  	ADC.S	R0, R1, R2           // 0020b1e0
   653  	ADC	R0, R1               // 0010a1e0
   654  	ADC.S	R0, R1               // 0010b1e0
   655  	ADC	R0>>28, R1, R2       // 202ea1e0
   656  	ADC	R0<<28, R1, R2       // 002ea1e0
   657  	ADC	R0->28, R1, R2       // 402ea1e0
   658  	ADC	R0@>28, R1, R2       // 602ea1e0
   659  	ADC.S	R0>>28, R1, R2       // 202eb1e0
   660  	ADC.S	R0<<28, R1, R2       // 002eb1e0
   661  	ADC.S	R0->28, R1, R2       // 402eb1e0
   662  	ADC.S	R0@>28, R1, R2       // 602eb1e0
   663  	ADC	R0<<28, R1           // 001ea1e0
   664  	ADC	R0>>28, R1           // 201ea1e0
   665  	ADC	R0->28, R1           // 401ea1e0
   666  	ADC	R0@>28, R1           // 601ea1e0
   667  	ADC.S	R0<<28, R1           // 001eb1e0
   668  	ADC.S	R0>>28, R1           // 201eb1e0
   669  	ADC.S	R0->28, R1           // 401eb1e0
   670  	ADC.S	R0@>28, R1           // 601eb1e0
   671  	ADC	R0<<R1, R2, R3       // 1031a2e0
   672  	ADC	R0>>R1, R2, R3       // 3031a2e0
   673  	ADC	R0->R1, R2, R3       // 5031a2e0
   674  	ADC	R0@>R1, R2, R3       // 7031a2e0
   675  	ADC.S	R0<<R1, R2, R3       // 1031b2e0
   676  	ADC.S	R0>>R1, R2, R3       // 3031b2e0
   677  	ADC.S	R0->R1, R2, R3       // 5031b2e0
   678  	ADC.S	R0@>R1, R2, R3       // 7031b2e0
   679  	ADC	R0<<R1, R2           // 1021a2e0
   680  	ADC	R0>>R1, R2           // 3021a2e0
   681  	ADC	R0->R1, R2           // 5021a2e0
   682  	ADC	R0@>R1, R2           // 7021a2e0
   683  	ADC.S	R0<<R1, R2           // 1021b2e0
   684  	ADC.S	R0>>R1, R2           // 3021b2e0
   685  	ADC.S	R0->R1, R2           // 5021b2e0
   686  	ADC.S	R0@>R1, R2           // 7021b2e0
   687  
   688  // TEQ
   689  	TEQ	$255, R7             // ff0037e3
   690  	TEQ	$4278190080, R9      // ff0439e3
   691  	TEQ	R9<<30, R7           // 090f37e1
   692  	TEQ	R9>>30, R7           // 290f37e1
   693  	TEQ	R9->30, R7           // 490f37e1
   694  	TEQ	R9@>30, R7           // 690f37e1
   695  	TEQ	R9<<R8, R7           // 190837e1
   696  	TEQ	R9>>R8, R7           // 390837e1
   697  	TEQ	R9->R8, R7           // 590837e1
   698  	TEQ	R9@>R8, R7           // 790837e1
   699  
   700  // TST
   701  	TST	$255, R7             // ff0017e3
   702  	TST	$4278190080, R9      // ff0419e3
   703  	TST	R9<<30, R7           // 090f17e1
   704  	TST	R9>>30, R7           // 290f17e1
   705  	TST	R9->30, R7           // 490f17e1
   706  	TST	R9@>30, R7           // 690f17e1
   707  	TST	R9<<R8, R7           // 190817e1
   708  	TST	R9>>R8, R7           // 390817e1
   709  	TST	R9->R8, R7           // 590817e1
   710  	TST	R9@>R8, R7           // 790817e1
   711  
   712  // CMP
   713  	CMP	$255, R7             // ff0057e3
   714  	CMP	$4278190080, R9      // ff0459e3
   715  	CMP	R9<<30, R7           // 090f57e1
   716  	CMP	R9>>30, R7           // 290f57e1
   717  	CMP	R9->30, R7           // 490f57e1
   718  	CMP	R9@>30, R7           // 690f57e1
   719  	CMP	R9<<R8, R7           // 190857e1
   720  	CMP	R9>>R8, R7           // 390857e1
   721  	CMP	R9->R8, R7           // 590857e1
   722  	CMP	R9@>R8, R7           // 790857e1
   723  
   724  // CMN
   725  	CMN	$255, R7             // ff0077e3
   726  	CMN	$4278190080, R9      // ff0479e3
   727  	CMN	R9<<30, R7           // 090f77e1
   728  	CMN	R9>>30, R7           // 290f77e1
   729  	CMN	R9->30, R7           // 490f77e1
   730  	CMN	R9@>30, R7           // 690f77e1
   731  	CMN	R9<<R8, R7           // 190877e1
   732  	CMN	R9>>R8, R7           // 390877e1
   733  	CMN	R9->R8, R7           // 590877e1
   734  	CMN	R9@>R8, R7           // 790877e1
   735  
   736  // B*
   737  	BEQ	14(PC) // BEQ 14(PC)   // 0c00000a
   738  	BNE	13(PC) // BNE 13(PC)   // 0b00001a
   739  	BCS	12(PC) // BCS 12(PC)   // 0a00002a
   740  	BCC	11(PC) // BCC 11(PC)   // 0900003a
   741  	BMI	10(PC) // BMI 10(PC)   // 0800004a
   742  	BPL	9(PC)  // BPL 9(PC)    // 0700005a
   743  	BVS	8(PC)  // BVS 8(PC)    // 0600006a
   744  	BVC	7(PC)  // BVC 7(PC)    // 0500007a
   745  	BHI	6(PC)  // BHI 6(PC)    // 0400008a
   746  	BLS	5(PC)  // BLS 5(PC)    // 0300009a
   747  	BGE	4(PC)  // BGE 4(PC)    // 020000aa
   748  	BLT	3(PC)  // BLT 3(PC)    // 010000ba
   749  	BGT	2(PC)  // BGT 2(PC)    // 000000ca
   750  	BLE	1(PC)  // BLE 1(PC)    // ffffffda
   751  	ADD	$0, R0, R0
   752  	B	-1(PC) // JMP -1(PC)   // fdffffea
   753  	B	-2(PC) // JMP -2(PC)   // fcffffea
   754  	B	-3(PC) // JMP -3(PC)   // fbffffea
   755  	B	-4(PC) // JMP -4(PC)   // faffffea
   756  	B	-5(PC) // JMP -5(PC)   // f9ffffea
   757  	B	jmp_label_0 // JMP     // 010000ea
   758  	B	jmp_label_0 // JMP     // 000000ea
   759  	B	jmp_label_0 // JMP     // ffffffea
   760  jmp_label_0:
   761  	ADD	$0, R0, R0
   762  	BEQ	jmp_label_0 // BEQ 519 // fdffff0a
   763  	BNE	jmp_label_0 // BNE 519 // fcffff1a
   764  	BCS	jmp_label_0 // BCS 519 // fbffff2a
   765  	BCC	jmp_label_0 // BCC 519 // faffff3a
   766  	BMI	jmp_label_0 // BMI 519 // f9ffff4a
   767  	BPL	jmp_label_0 // BPL 519 // f8ffff5a
   768  	BVS	jmp_label_0 // BVS 519 // f7ffff6a
   769  	BVC	jmp_label_0 // BVC 519 // f6ffff7a
   770  	BHI	jmp_label_0 // BHI 519 // f5ffff8a
   771  	BLS	jmp_label_0 // BLS 519 // f4ffff9a
   772  	BGE	jmp_label_0 // BGE 519 // f3ffffaa
   773  	BLT	jmp_label_0 // BLT 519 // f2ffffba
   774  	BGT	jmp_label_0 // BGT 519 // f1ffffca
   775  	BLE	jmp_label_0 // BLE 519 // f0ffffda
   776  	B	jmp_label_0 // JMP 519 // efffffea
   777  	B	0(PC)    // JMP 0(PC)  // feffffea
   778  jmp_label_1:
   779  	B	jmp_label_1 // JMP     // feffffea
   780  
   781  // BL
   782  	BL.EQ	14(PC) // CALL.EQ 14(PC)   // 0c00000b
   783  	BL.NE	13(PC) // CALL.NE 13(PC)   // 0b00001b
   784  	BL.CS	12(PC) // CALL.CS 12(PC)   // 0a00002b
   785  	BL.CC	11(PC) // CALL.CC 11(PC)   // 0900003b
   786  	BL.MI	10(PC) // CALL.MI 10(PC)   // 0800004b
   787  	BL.PL	9(PC)  // CALL.PL 9(PC)    // 0700005b
   788  	BL.VS	8(PC)  // CALL.VS 8(PC)    // 0600006b
   789  	BL.VC	7(PC)  // CALL.VC 7(PC)    // 0500007b
   790  	BL.HI	6(PC)  // CALL.HI 6(PC)    // 0400008b
   791  	BL.LS	5(PC)  // CALL.LS 5(PC)    // 0300009b
   792  	BL.GE	4(PC)  // CALL.GE 4(PC)    // 020000ab
   793  	BL.LT	3(PC)  // CALL.LT 3(PC)    // 010000bb
   794  	BL.GT	2(PC)  // CALL.GT 2(PC)    // 000000cb
   795  	BL.LE	1(PC)  // CALL.LE 1(PC)    // ffffffdb
   796  	ADD	$0, R0, R0
   797  	BL	-1(PC) // CALL -1(PC)      // fdffffeb
   798  	BL	-2(PC) // CALL -2(PC)      // fcffffeb
   799  	BL	-3(PC) // CALL -3(PC)      // fbffffeb
   800  	BL	-4(PC) // CALL -4(PC)      // faffffeb
   801  	BL	-5(PC) // CALL -5(PC)      // f9ffffeb
   802  	BL	jmp_label_2 // CALL        // 010000eb
   803  	BL	jmp_label_2 // CALL        // 000000eb
   804  	BL	jmp_label_2 // CALL        // ffffffeb
   805  jmp_label_2:
   806  	ADD	$0, R0, R0
   807  	BL.EQ	jmp_label_2 // CALL.EQ 560 // fdffff0b
   808  	BL.NE	jmp_label_2 // CALL.NE 560 // fcffff1b
   809  	BL.CS	jmp_label_2 // CALL.CS 560 // fbffff2b
   810  	BL.CC	jmp_label_2 // CALL.CC 560 // faffff3b
   811  	BL.MI	jmp_label_2 // CALL.MI 560 // f9ffff4b
   812  	BL.PL	jmp_label_2 // CALL.PL 560 // f8ffff5b
   813  	BL.VS	jmp_label_2 // CALL.VS 560 // f7ffff6b
   814  	BL.VC	jmp_label_2 // CALL.VC 560 // f6ffff7b
   815  	BL.HI	jmp_label_2 // CALL.HI 560 // f5ffff8b
   816  	BL.LS	jmp_label_2 // CALL.LS 560 // f4ffff9b
   817  	BL.GE	jmp_label_2 // CALL.GE 560 // f3ffffab
   818  	BL.LT	jmp_label_2 // CALL.LT 560 // f2ffffbb
   819  	BL.GT	jmp_label_2 // CALL.GT 560 // f1ffffcb
   820  	BL.LE	jmp_label_2 // CALL.LE 560 // f0ffffdb
   821  	BL	jmp_label_2 // CALL 560    // efffffeb
   822  	BL	0(PC)    // CALL 0(PC)     // feffffeb
   823  jmp_label_3:
   824  	BL	jmp_label_3 // CALL        // feffffeb
   825  
   826  // BIC
   827  	BIC	$255, R0, R1         // ff10c0e3
   828  	BIC	$4278190080, R0, R1  // ff14c0e3
   829  	BIC.S	$255, R0, R1         // ff10d0e3
   830  	BIC.S	$4278190080, R0, R1  // ff14d0e3
   831  	BIC	$255, R0             // ff00c0e3
   832  	BIC	$4278190080, R0      // ff04c0e3
   833  	BIC.S	$255, R0             // ff00d0e3
   834  	BIC.S	$4278190080, R0      // ff04d0e3
   835  	BIC	R0, R1, R2           // 0020c1e1
   836  	BIC.S	R0, R1, R2           // 0020d1e1
   837  	BIC	R0, R1               // 0010c1e1
   838  	BIC.S	R0, R1               // 0010d1e1
   839  	BIC	R0>>28, R1, R2       // 202ec1e1
   840  	BIC	R0<<28, R1, R2       // 002ec1e1
   841  	BIC	R0->28, R1, R2       // 402ec1e1
   842  	BIC	R0@>28, R1, R2       // 602ec1e1
   843  	BIC.S	R0>>28, R1, R2       // 202ed1e1
   844  	BIC.S	R0<<28, R1, R2       // 002ed1e1
   845  	BIC.S	R0->28, R1, R2       // 402ed1e1
   846  	BIC.S	R0@>28, R1, R2       // 602ed1e1
   847  	BIC	R0<<28, R1           // 001ec1e1
   848  	BIC	R0>>28, R1           // 201ec1e1
   849  	BIC	R0->28, R1           // 401ec1e1
   850  	BIC	R0@>28, R1           // 601ec1e1
   851  	BIC.S	R0<<28, R1           // 001ed1e1
   852  	BIC.S	R0>>28, R1           // 201ed1e1
   853  	BIC.S	R0->28, R1           // 401ed1e1
   854  	BIC.S	R0@>28, R1           // 601ed1e1
   855  	BIC	R0<<R1, R2, R3       // 1031c2e1
   856  	BIC	R0>>R1, R2, R3       // 3031c2e1
   857  	BIC	R0->R1, R2, R3       // 5031c2e1
   858  	BIC	R0@>R1, R2, R3       // 7031c2e1
   859  	BIC.S	R0<<R1, R2, R3       // 1031d2e1
   860  	BIC.S	R0>>R1, R2, R3       // 3031d2e1
   861  	BIC.S	R0->R1, R2, R3       // 5031d2e1
   862  	BIC.S	R0@>R1, R2, R3       // 7031d2e1
   863  	BIC	R0<<R1, R2           // 1021c2e1
   864  	BIC	R0>>R1, R2           // 3021c2e1
   865  	BIC	R0->R1, R2           // 5021c2e1
   866  	BIC	R0@>R1, R2           // 7021c2e1
   867  	BIC.S	R0<<R1, R2           // 1021d2e1
   868  	BIC.S	R0>>R1, R2           // 3021d2e1
   869  	BIC.S	R0->R1, R2           // 5021d2e1
   870  	BIC.S	R0@>R1, R2           // 7021d2e1
   871  
   872  // SRL
   873  	SRL	$0, R5, R6           // 0560a0e1
   874  	SRL	$1, R5, R6           // a560a0e1
   875  	SRL	$14, R5, R6          // 2567a0e1
   876  	SRL	$15, R5, R6          // a567a0e1
   877  	SRL	$30, R5, R6          // 256fa0e1
   878  	SRL	$31, R5, R6          // a56fa0e1
   879  	SRL	$32, R5, R6          // 2560a0e1
   880  	SRL.S	$14, R5, R6          // 2567b0e1
   881  	SRL.S	$15, R5, R6          // a567b0e1
   882  	SRL.S	$30, R5, R6          // 256fb0e1
   883  	SRL.S	$31, R5, R6          // a56fb0e1
   884  	SRL	$14, R5              // 2557a0e1
   885  	SRL	$15, R5              // a557a0e1
   886  	SRL	$30, R5              // 255fa0e1
   887  	SRL	$31, R5              // a55fa0e1
   888  	SRL.S	$14, R5              // 2557b0e1
   889  	SRL.S	$15, R5              // a557b0e1
   890  	SRL.S	$30, R5              // 255fb0e1
   891  	SRL.S	$31, R5              // a55fb0e1
   892  	SRL	R5, R6, R7           // 3675a0e1
   893  	SRL.S	R5, R6, R7           // 3675b0e1
   894  	SRL	R5, R7               // 3775a0e1
   895  	SRL.S	R5, R7               // 3775b0e1
   896  
   897  // SRA
   898  	SRA	$0, R5, R6           // 0560a0e1
   899  	SRA	$1, R5, R6           // c560a0e1
   900  	SRA	$14, R5, R6          // 4567a0e1
   901  	SRA	$15, R5, R6          // c567a0e1
   902  	SRA	$30, R5, R6          // 456fa0e1
   903  	SRA	$31, R5, R6          // c56fa0e1
   904  	SRA	$32, R5, R6          // 4560a0e1
   905  	SRA.S	$14, R5, R6          // 4567b0e1
   906  	SRA.S	$15, R5, R6          // c567b0e1
   907  	SRA.S	$30, R5, R6          // 456fb0e1
   908  	SRA.S	$31, R5, R6          // c56fb0e1
   909  	SRA	$14, R5              // 4557a0e1
   910  	SRA	$15, R5              // c557a0e1
   911  	SRA	$30, R5              // 455fa0e1
   912  	SRA	$31, R5              // c55fa0e1
   913  	SRA.S	$14, R5              // 4557b0e1
   914  	SRA.S	$15, R5              // c557b0e1
   915  	SRA.S	$30, R5              // 455fb0e1
   916  	SRA.S	$31, R5              // c55fb0e1
   917  	SRA	R5, R6, R7           // 5675a0e1
   918  	SRA.S	R5, R6, R7           // 5675b0e1
   919  	SRA	R5, R7               // 5775a0e1
   920  	SRA.S	R5, R7               // 5775b0e1
   921  
   922  // SLL
   923  	SLL	$0, R5, R6           // 0560a0e1
   924  	SLL	$1, R5, R6           // 8560a0e1
   925  	SLL	$14, R5, R6          // 0567a0e1
   926  	SLL	$15, R5, R6          // 8567a0e1
   927  	SLL	$30, R5, R6          // 056fa0e1
   928  	SLL	$31, R5, R6          // 856fa0e1
   929  	SLL.S	$14, R5, R6          // 0567b0e1
   930  	SLL.S	$15, R5, R6          // 8567b0e1
   931  	SLL.S	$30, R5, R6          // 056fb0e1
   932  	SLL.S	$31, R5, R6          // 856fb0e1
   933  	SLL	$14, R5              // 0557a0e1
   934  	SLL	$15, R5              // 8557a0e1
   935  	SLL	$30, R5              // 055fa0e1
   936  	SLL	$31, R5              // 855fa0e1
   937  	SLL.S	$14, R5              // 0557b0e1
   938  	SLL.S	$15, R5              // 8557b0e1
   939  	SLL.S	$30, R5              // 055fb0e1
   940  	SLL.S	$31, R5              // 855fb0e1
   941  	SLL	R5, R6, R7           // 1675a0e1
   942  	SLL.S	R5, R6, R7           // 1675b0e1
   943  	SLL	R5, R7               // 1775a0e1
   944  	SLL.S	R5, R7               // 1775b0e1
   945  
   946  // Ops with zero shifts should encode as left shifts
   947  	ADD	R0<<0, R1, R2	     // 002081e0
   948  	ADD	R0>>0, R1, R2	     // 002081e0
   949  	ADD	R0->0, R1, R2	     // 002081e0
   950  	ADD	R0@>0, R1, R2	     // 002081e0
   951  	MOVW	R0<<0(R1), R2        // 002091e7
   952  	MOVW	R0>>0(R1), R2        // 002091e7
   953  	MOVW	R0->0(R1), R2        // 002091e7
   954  	MOVW	R0@>0(R1), R2        // 002091e7
   955  	MOVW	R0, R1<<0(R2)        // 010082e7
   956  	MOVW	R0, R1>>0(R2)        // 010082e7
   957  	MOVW	R0, R1->0(R2)        // 010082e7
   958  	MOVW	R0, R1@>0(R2)        // 010082e7
   959  
   960  // MULA / MULS
   961  	MULAWT		R1, R2, R3, R4       // c23124e1
   962  	MULAWB		R1, R2, R3, R4       // 823124e1
   963  	MULS		R1, R2, R3, R4       // 923164e0
   964  	MULA		R1, R2, R3, R4       // 923124e0
   965  	MULA.S		R1, R2, R3, R4       // 923134e0
   966  	MMULA		R1, R2, R3, R4       // 123154e7
   967  	MMULS		R1, R2, R3, R4       // d23154e7
   968  	MULABB		R1, R2, R3, R4       // 823104e1
   969  	MULAL		R1, R2, (R4, R3)     // 9231e4e0
   970  	MULAL.S		R1, R2, (R4, R3)     // 9231f4e0
   971  	MULALU		R1, R2, (R4, R3)     // 9231a4e0
   972  	MULALU.S	R1, R2, (R4, R3)     // 9231b4e0
   973  
   974  // MUL
   975  	MUL	R2, R3, R4           // 930204e0
   976  	MUL	R2, R4               // 940204e0
   977  	MUL	R2, R4, R4           // 940204e0
   978  	MUL.S	R2, R3, R4           // 930214e0
   979  	MUL.S	R2, R4               // 940214e0
   980  	MUL.S	R2, R4, R4           // 940214e0
   981  	MULU	R5, R6, R7           // 960507e0
   982  	MULU	R5, R7               // 970507e0
   983  	MULU	R5, R7, R7           // 970507e0
   984  	MULU.S	R5, R6, R7           // 960517e0
   985  	MULU.S	R5, R7               // 970517e0
   986  	MULU.S	R5, R7, R7           // 970517e0
   987  	MULLU	R1, R2, (R4, R3)     // 923184e0
   988  	MULLU.S	R1, R2, (R4, R3)     // 923194e0
   989  	MULL	R1, R2, (R4, R3)     // 9231c4e0
   990  	MULL.S	R1, R2, (R4, R3)     // 9231d4e0
   991  	MMUL	R1, R2, R3           // 12f153e7
   992  	MULBB	R1, R2, R3           // 820163e1
   993  	MULWB	R1, R2, R3           // a20123e1
   994  	MULWT	R1, R2, R3           // e20123e1
   995  
   996  // REV
   997  	REV	R1, R2               // 312fbfe6
   998  	REV16	R1, R2               // b12fbfe6
   999  	REVSH	R1, R2               // b12fffe6
  1000  	RBIT	R1, R2               // 312fffe6
  1001  
  1002  // XTAB/XTAH/XTABU/XTAHU
  1003  	XTAB	R2@>0, R8            // 7280a8e6
  1004  	XTAB	R2@>8, R8            // 7284a8e6
  1005  	XTAB	R2@>16, R8           // 7288a8e6
  1006  	XTAB	R2@>24, R8           // 728ca8e6
  1007  	XTAH	R3@>0, R9            // 7390b9e6
  1008  	XTAH	R3@>8, R9            // 7394b9e6
  1009  	XTAH	R3@>16, R9           // 7398b9e6
  1010  	XTAH	R3@>24, R9           // 739cb9e6
  1011  	XTABU	R4@>0, R7            // 7470e7e6
  1012  	XTABU	R4@>8, R7            // 7474e7e6
  1013  	XTABU	R4@>16, R7           // 7478e7e6
  1014  	XTABU	R4@>24, R7           // 747ce7e6
  1015  	XTAHU	R5@>0, R1            // 7510f1e6
  1016  	XTAHU	R5@>8, R1            // 7514f1e6
  1017  	XTAHU	R5@>16, R1           // 7518f1e6
  1018  	XTAHU	R5@>24, R1           // 751cf1e6
  1019  	XTAB	R2@>0, R4, R8        // 7280a4e6
  1020  	XTAB	R2@>8, R4, R8        // 7284a4e6
  1021  	XTAB	R2@>16, R4, R8       // 7288a4e6
  1022  	XTAB	R2@>24, R4, R8       // 728ca4e6
  1023  	XTAH	R3@>0, R4, R9        // 7390b4e6
  1024  	XTAH	R3@>8, R4, R9        // 7394b4e6
  1025  	XTAH	R3@>16, R4, R9       // 7398b4e6
  1026  	XTAH	R3@>24, R4, R9       // 739cb4e6
  1027  	XTABU	R4@>0, R0, R7        // 7470e0e6
  1028  	XTABU	R4@>8, R0, R7        // 7474e0e6
  1029  	XTABU	R4@>16, R0, R7       // 7478e0e6
  1030  	XTABU	R4@>24, R0, R7       // 747ce0e6
  1031  	XTAHU	R5@>0, R9, R1        // 7510f9e6
  1032  	XTAHU	R5@>8, R9, R1        // 7514f9e6
  1033  	XTAHU	R5@>16, R9, R1       // 7518f9e6
  1034  	XTAHU	R5@>24, R9, R1       // 751cf9e6
  1035  
  1036  // DIVHW R0, R1, R2: R1 / R0 -> R2
  1037  	DIVHW	R0, R1, R2           // 11f012e7
  1038  	DIVUHW	R0, R1, R2           // 11f032e7
  1039  // DIVHW R0, R1: R1 / R0 -> R1
  1040  	DIVHW	R0, R1               // 11f011e7
  1041  	DIVUHW	R0, R1               // 11f031e7
  1042  
  1043  // misc
  1044  	CLZ	R1, R2         // 112f6fe1
  1045  	WORD	$0             // 00000000
  1046  	WORD	$4294967295    // ffffffff
  1047  	WORD	$2863311530    // aaaaaaaa
  1048  	WORD	$1431655765    // 55555555
  1049  	PLD	4080(R6)       // f0ffd6f5
  1050  	PLD	-4080(R9)      // f0ff59f5
  1051  	RFE	               // 0080fde8
  1052  	SWPW	R3, (R7), R9   // SWPW  (R7), R3, R9 // 939007e1
  1053  	SWPBU	R4, (R2), R8   // SWPBU (R2), R4, R8 // 948042e1
  1054  	SWI	$0             // 000000ef
  1055  	SWI	$65535         // ffff00ef
  1056  	SWI	               // 000000ef
  1057  
  1058  // BFX/BFXU/BFC/BFI
  1059  	BFX	$16, $8, R1, R2 // BFX $16, R1, $8, R2   // 5124afe7
  1060  	BFX	$29, $2, R8                              // 5881bce7
  1061  	BFXU	$16, $8, R1, R2 // BFXU $16, R1, $8, R2  // 5124efe7
  1062  	BFXU	$29, $2, R8                              // 5881fce7
  1063  	BFC	$29, $2, R8                              // 1f81dee7
  1064  	BFI	$29, $2, R8                              // 1881dee7
  1065  	BFI	$16, $8, R1, R2 // BFI $16, R1, $8, R2   // 1124d7e7
  1066  
  1067  // synthetic arithmetic
  1068  	ADD	$0xffffffaa, R2, R3 // ADD $4294967210, R2, R3   // 55b0e0e30b3082e0
  1069  	ADD	$0xffffff55, R5     // ADD $4294967125, R5       // aab0e0e30b5085e0
  1070  	ADD.S	$0xffffffab, R2, R3 // ADD.S $4294967211, R2, R3 // 54b0e0e30b3092e0
  1071  	ADD.S	$0xffffff54, R5     // ADD.S $4294967124, R5     // abb0e0e30b5095e0
  1072  	ADC	$0xffffffac, R2, R3 // ADC $4294967212, R2, R3   // 53b0e0e30b30a2e0
  1073  	ADC	$0xffffff53, R5     // ADC $4294967123, R5       // acb0e0e30b50a5e0
  1074  	ADC.S	$0xffffffad, R2, R3 // ADC.S $4294967213, R2, R3 // 52b0e0e30b30b2e0
  1075  	ADC.S	$0xffffff52, R5     // ADC.S $4294967122, R5     // adb0e0e30b50b5e0
  1076  	SUB	$0xffffffae, R2, R3 // SUB $4294967214, R2, R3   // 51b0e0e30b3042e0
  1077  	SUB	$0xffffff51, R5     // SUB $4294967121, R5       // aeb0e0e30b5045e0
  1078  	SUB.S	$0xffffffaf, R2, R3 // SUB.S $4294967215, R2, R3 // 50b0e0e30b3052e0
  1079  	SUB.S	$0xffffff50, R5     // SUB.S $4294967120, R5     // afb0e0e30b5055e0
  1080  	SBC	$0xffffffb0, R2, R3 // SBC $4294967216, R2, R3   // 4fb0e0e30b30c2e0
  1081  	SBC	$0xffffff4f, R5     // SBC $4294967119, R5       // b0b0e0e30b50c5e0
  1082  	SBC.S	$0xffffffb1, R2, R3 // SBC.S $4294967217, R2, R3 // 4eb0e0e30b30d2e0
  1083  	SBC.S	$0xffffff4e, R5     // SBC.S $4294967118, R5     // b1b0e0e30b50d5e0
  1084  	RSB	$0xffffffb2, R2, R3 // RSB $4294967218, R2, R3   // 4db0e0e30b3062e0
  1085  	RSB	$0xffffff4d, R5     // RSB $4294967117, R5       // b2b0e0e30b5065e0
  1086  	RSB.S	$0xffffffb3, R2, R3 // RSB.S $4294967219, R2, R3 // 4cb0e0e30b3072e0
  1087  	RSB.S	$0xffffff4c, R5     // RSB.S $4294967116, R5     // b3b0e0e30b5075e0
  1088  	RSC	$0xffffffb4, R2, R3 // RSC $4294967220, R2, R3   // 4bb0e0e30b30e2e0
  1089  	RSC	$0xffffff4b, R5     // RSC $4294967115, R5       // b4b0e0e30b50e5e0
  1090  	RSC.S	$0xffffffb5, R2, R3 // RSC.S $4294967221, R2, R3 // 4ab0e0e30b30f2e0
  1091  	RSC.S	$0xffffff4a, R5     // RSC.S $4294967114, R5     // b5b0e0e30b50f5e0
  1092  	AND	$0xffffffaa, R2, R3 // AND $4294967210, R2, R3   // 55b0e0e30b3002e0
  1093  	AND	$0xffffff55, R5     // AND $4294967125, R5       // aab0e0e30b5005e0
  1094  	AND.S	$0xffffffab, R2, R3 // AND.S $4294967211, R2, R3 // 54b0e0e30b3012e0
  1095  	AND.S	$0xffffff54, R5     // AND.S $4294967124, R5     // abb0e0e30b5015e0
  1096  	ORR	$0xffffffaa, R2, R3 // ORR $4294967210, R2, R3   // 55b0e0e30b3082e1
  1097  	ORR	$0xffffff55, R5     // ORR $4294967125, R5       // aab0e0e30b5085e1
  1098  	ORR.S	$0xffffffab, R2, R3 // ORR.S $4294967211, R2, R3 // 54b0e0e30b3092e1
  1099  	ORR.S	$0xffffff54, R5     // ORR.S $4294967124, R5     // abb0e0e30b5095e1
  1100  	EOR	$0xffffffaa, R2, R3 // EOR $4294967210, R2, R3   // 55b0e0e30b3022e0
  1101  	EOR	$0xffffff55, R5     // EOR $4294967125, R5       // aab0e0e30b5025e0
  1102  	EOR.S	$0xffffffab, R2, R3 // EOR.S $4294967211, R2, R3 // 54b0e0e30b3032e0
  1103  	EOR.S	$0xffffff54, R5     // EOR.S $4294967124, R5     // abb0e0e30b5035e0
  1104  	BIC	$0xffffffaa, R2, R3 // BIC $4294967210, R2, R3   // 55b0e0e30b30c2e1
  1105  	BIC	$0xffffff55, R5     // BIC $4294967125, R5       // aab0e0e30b50c5e1
  1106  	BIC.S	$0xffffffab, R2, R3 // BIC.S $4294967211, R2, R3 // 54b0e0e30b30d2e1
  1107  	BIC.S	$0xffffff54, R5     // BIC.S $4294967124, R5     // abb0e0e30b50d5e1
  1108  	CMP	$0xffffffab, R2     // CMP $4294967211, R2       // 54b0e0e30b0052e1
  1109  	CMN	$0xffffffac, R3     // CMN $4294967212, R3       // 53b0e0e30b0073e1
  1110  	TST	$0xffffffad, R4     // TST $4294967213, R4       // 52b0e0e30b0014e1
  1111  	TEQ	$0xffffffae, R5     // TEQ $4294967214, R5       // 51b0e0e30b0035e1
  1112  
  1113  // immediate decomposition
  1114  	ADD	$0xff0000ff, R0, R1 // ADD $4278190335, R0, R1 // ff1080e2ff1481e2
  1115  	EOR	$0xff0000ff, R0, R1 // EOR $4278190335, R0, R1 // ff1020e2ff1421e2
  1116  	ORR	$0xff0000ff, R0, R1 // ORR $4278190335, R0, R1 // ff1080e3ff1481e3
  1117  	SUB	$0xff0000ff, R0, R1 // SUB $4278190335, R0, R1 // ff1040e2ff1441e2
  1118  	BIC	$0xff0000ff, R0, R1 // BIC $4278190335, R0, R1 // ff10c0e3ff14c1e3
  1119  	RSB	$0xff0000ff, R0, R1 // RSB $4278190335, R0, R1 // ff1060e2ff1481e2
  1120  	ADC	$0xff0000ff, R0, R1 // ADC $4278190335, R0, R1 // ff10a0e2ff1481e2
  1121  	SBC	$0xff0000ff, R0, R1 // SBC $4278190335, R0, R1 // ff10c0e2ff1441e2
  1122  	RSC	$0xff0000ff, R0, R1 // RSC $4278190335, R0, R1 // ff10e0e2ff1481e2
  1123  	ADD	$0x000fffff, R0, R1 // ADD $1048575, R0, R1    // 011680e2011041e2
  1124  	ADC	$0x000fffff, R0, R1 // ADC $1048575, R0, R1    // 0116a0e2011041e2
  1125  	SUB	$0x000fffff, R0, R1 // SUB $1048575, R0, R1    // 011640e2011081e2
  1126  	SBC	$0x000fffff, R0, R1 // SBC $1048575, R0, R1    // 0116c0e2011081e2
  1127  	RSB	$0x000fffff, R0, R1 // RSB $1048575, R0, R1    // 011660e2011041e2
  1128  	RSC	$0x000fffff, R0, R1 // RSC $1048575, R0, R1    // 0116e0e2011041e2
  1129  	ADD	$0xff0000ff, R1     // ADD $4278190335, R1     // ff1081e2ff1481e2
  1130  	EOR	$0xff0000ff, R1     // EOR $4278190335, R1     // ff1021e2ff1421e2
  1131  	ORR	$0xff0000ff, R1     // ORR $4278190335, R1     // ff1081e3ff1481e3
  1132  	SUB	$0xff0000ff, R1     // SUB $4278190335, R1     // ff1041e2ff1441e2
  1133  	BIC	$0xff0000ff, R1     // BIC $4278190335, R1     // ff10c1e3ff14c1e3
  1134  	RSB	$0xff0000ff, R1     // RSB $4278190335, R1     // ff1061e2ff1481e2
  1135  	ADC	$0xff0000ff, R1     // ADC $4278190335, R1     // ff10a1e2ff1481e2
  1136  	SBC	$0xff0000ff, R1     // SBC $4278190335, R1     // ff10c1e2ff1441e2
  1137  	RSC	$0xff0000ff, R1     // RSC $4278190335, R1     // ff10e1e2ff1481e2
  1138  	ADD	$0x000fffff, R1     // ADD $1048575, R1        // 011681e2011041e2
  1139  	ADC	$0x000fffff, R1     // ADC $1048575, R1        // 0116a1e2011041e2
  1140  	SUB	$0x000fffff, R1     // SUB $1048575, R1        // 011641e2011081e2
  1141  	SBC	$0x000fffff, R1     // SBC $1048575, R1        // 0116c1e2011081e2
  1142  	RSB	$0x000fffff, R1     // RSB $1048575, R1        // 011661e2011041e2
  1143  	RSC	$0x000fffff, R1     // RSC $1048575, R1        // 0116e1e2011041e2
  1144  
  1145  // MVN
  1146  	MVN	$0xff, R1        // MVN $255, R1          // ff10e0e3
  1147  	MVN	$0xff000000, R1  // MVN $4278190080, R1   // ff14e0e3
  1148  	MVN	R9<<30, R7       // 097fe0e1
  1149  	MVN	R9>>30, R7       // 297fe0e1
  1150  	MVN	R9->30, R7       // 497fe0e1
  1151  	MVN	R9@>30, R7       // 697fe0e1
  1152  	MVN.S	R9<<30, R7       // 097ff0e1
  1153  	MVN.S	R9>>30, R7       // 297ff0e1
  1154  	MVN.S	R9->30, R7       // 497ff0e1
  1155  	MVN.S	R9@>30, R7       // 697ff0e1
  1156  	MVN	R9<<R8, R7       // 1978e0e1
  1157  	MVN	R9>>R8, R7       // 3978e0e1
  1158  	MVN	R9->R8, R7       // 5978e0e1
  1159  	MVN	R9@>R8, R7       // 7978e0e1
  1160  	MVN.S	R9<<R8, R7       // 1978f0e1
  1161  	MVN.S	R9>>R8, R7       // 3978f0e1
  1162  	MVN.S	R9->R8, R7       // 5978f0e1
  1163  	MVN.S	R9@>R8, R7       // 7978f0e1
  1164  	MVN	$0xffffffbe, R5  // MVN $4294967230, R5   // 4150a0e3
  1165  
  1166  // MOVM
  1167  	MOVM.IA   [R0,R2,R4,R6], (R1)        // MOVM.U [R0,R2,R4,R6], (R1)                      // 550081e8
  1168  	MOVM.IA   [R0-R4,R6,R8,R9-R11], (R1) // MOVM.U [R0,R1,R2,R3,R4,R6,R8,R9,g,R11], (R1)    // 5f0f81e8
  1169  	MOVM.IA.W [R0,R2,R4,R6], (R1)        // MOVM.W.U [R0,R2,R4,R6], (R1)                    // 5500a1e8
  1170  	MOVM.IA.W [R0-R4,R6,R8,R9-R11], (R1) // MOVM.W.U [R0,R1,R2,R3,R4,R6,R8,R9,g,R11], (R1)  // 5f0fa1e8
  1171  	MOVM.IA   (R1), [R0,R2,R4,R6]        // MOVM.U (R1), [R0,R2,R4,R6]                      // 550091e8
  1172  	MOVM.IA   (R1), [R0-R4,R6,R8,R9-R11] // MOVM.U (R1), [R0,R1,R2,R3,R4,R6,R8,R9,g,R11]    // 5f0f91e8
  1173  	MOVM.IA.W (R1), [R0,R2,R4,R6]        // MOVM.W.U (R1), [R0,R2,R4,R6]                    // 5500b1e8
  1174  	MOVM.IA.W (R1), [R0-R4,R6,R8,R9-R11] // MOVM.W.U (R1), [R0,R1,R2,R3,R4,R6,R8,R9,g,R11]  // 5f0fb1e8
  1175  	MOVM.DA   [R0,R2,R4,R6], (R1)        // MOVM [R0,R2,R4,R6], (R1)                        // 550001e8
  1176  	MOVM.DA   [R0-R4,R6,R8,R9-R11], (R1) // MOVM [R0,R1,R2,R3,R4,R6,R8,R9,g,R11], (R1)      // 5f0f01e8
  1177  	MOVM.DA.W [R0,R2,R4,R6], (R1)        // MOVM.W [R0,R2,R4,R6], (R1)                      // 550021e8
  1178  	MOVM.DA.W [R0-R4,R6,R8,R9-R11], (R1) // MOVM.W [R0,R1,R2,R3,R4,R6,R8,R9,g,R11], (R1)    // 5f0f21e8
  1179  	MOVM.DA   (R1), [R0,R2,R4,R6]        // MOVM (R1), [R0,R2,R4,R6]                        // 550011e8
  1180  	MOVM.DA   (R1), [R0-R4,R6,R8,R9-R11] // MOVM (R1), [R0,R1,R2,R3,R4,R6,R8,R9,g,R11]      // 5f0f11e8
  1181  	MOVM.DA.W (R1), [R0,R2,R4,R6]        // MOVM.W (R1), [R0,R2,R4,R6]                      // 550031e8
  1182  	MOVM.DA.W (R1), [R0-R4,R6,R8,R9-R11] // MOVM.W (R1), [R0,R1,R2,R3,R4,R6,R8,R9,g,R11]    // 5f0f31e8
  1183  	MOVM.DB   [R0,R2,R4,R6], (R1)        // MOVM.P [R0,R2,R4,R6], (R1)                      // 550001e9
  1184  	MOVM.DB   [R0-R4,R6,R8,R9-R11], (R1) // MOVM.P [R0,R1,R2,R3,R4,R6,R8,R9,g,R11], (R1)    // 5f0f01e9
  1185  	MOVM.DB.W [R0,R2,R4,R6], (R1)        // MOVM.P.W [R0,R2,R4,R6], (R1)                    // 550021e9
  1186  	MOVM.DB.W [R0-R4,R6,R8,R9-R11], (R1) // MOVM.P.W [R0,R1,R2,R3,R4,R6,R8,R9,g,R11], (R1)  // 5f0f21e9
  1187  	MOVM.DB   (R1), [R0,R2,R4,R6]        // MOVM.P (R1), [R0,R2,R4,R6]                      // 550011e9
  1188  	MOVM.DB   (R1), [R0-R4,R6,R8,R9-R11] // MOVM.P (R1), [R0,R1,R2,R3,R4,R6,R8,R9,g,R11]    // 5f0f11e9
  1189  	MOVM.DB.W (R1), [R0,R2,R4,R6]        // MOVM.P.W (R1), [R0,R2,R4,R6]                    // 550031e9
  1190  	MOVM.DB.W (R1), [R0-R4,R6,R8,R9-R11] // MOVM.P.W (R1), [R0,R1,R2,R3,R4,R6,R8,R9,g,R11]  // 5f0f31e9
  1191  	MOVM.IB   [R0,R2,R4,R6], (g)         // MOVM.P.U [R0,R2,R4,R6], (g)                     // 55008ae9
  1192  	MOVM.IB   [R0-R4,R6,R8,R9-R11], (g)  // MOVM.P.U [R0,R1,R2,R3,R4,R6,R8,R9,g,R11], (g)   // 5f0f8ae9
  1193  	MOVM.IB.W [R0,R2,R4,R6], (g)         // MOVM.P.W.U [R0,R2,R4,R6], (g)                   // 5500aae9
  1194  	MOVM.IB.W [R0-R4,R6,R8,R9-R11], (g)  // MOVM.P.W.U [R0,R1,R2,R3,R4,R6,R8,R9,g,R11], (g) // 5f0faae9
  1195  	MOVM.IB   (g), [R0,R2,R4,R6]         // MOVM.P.U (g), [R0,R2,R4,R6]                     // 55009ae9
  1196  	MOVM.IB   (g), [R0-R4,R6,R8,R9-R11]  // MOVM.P.U (g), [R0,R1,R2,R3,R4,R6,R8,R9,g,R11]   // 5f0f9ae9
  1197  	MOVM.IB.W (g), [R0,R2,R4,R6]         // MOVM.P.W.U (g), [R0,R2,R4,R6]                   // 5500bae9
  1198  	MOVM.IB.W (g), [R0-R4,R6,R8,R9-R11]  // MOVM.P.W.U (g), [R0,R1,R2,R3,R4,R6,R8,R9,g,R11] // 5f0fbae9
  1199  
  1200  // MOVW
  1201  	MOVW	R3, R4                                            // 0340a0e1
  1202  	MOVW.S	R3, R4                                            // 0340b0e1
  1203  	MOVW	R9, R2                                            // 0920a0e1
  1204  	MOVW.S	R9, R2                                            // 0920b0e1
  1205  	MOVW	R5>>1, R2                                         // a520a0e1
  1206  	MOVW.S	R5>>1, R2                                         // a520b0e1
  1207  	MOVW	R5<<1, R2                                         // 8520a0e1
  1208  	MOVW.S	R5<<1, R2                                         // 8520b0e1
  1209  	MOVW	R5->1, R2                                         // c520a0e1
  1210  	MOVW.S	R5->1, R2                                         // c520b0e1
  1211  	MOVW	R5@>1, R2                                         // e520a0e1
  1212  	MOVW.S	R5@>1, R2                                         // e520b0e1
  1213  	MOVW	$0xff, R9            // MOVW $255, R9             // ff90a0e3
  1214  	MOVW	$0xff000000, R9      // MOVW $4278190080, R9      // ff94a0e3
  1215  	MOVW	$0xff(R0), R1        // MOVW $255(R0), R1         // ff1080e2
  1216  	MOVW.S	$0xff(R0), R1        // MOVW.S $255(R0), R1       // ff1090e2
  1217  	MOVW	$-0xff(R0), R1       // MOVW $-255(R0), R1        // ff1040e2
  1218  	MOVW.S	$-0xff(R0), R1       // MOVW.S $-255(R0), R1      // ff1050e2
  1219  	MOVW	$0xffffffae, R1      // MOVW $4294967214, R1      // 5110e0e3
  1220  	MOVW	$0xaaaaaaaa, R1      // MOVW $2863311530, R1
  1221  	MOVW	R1, (R2)                                          // 001082e5
  1222  	MOVW.P	R1, (R2)                                          // 001082e4
  1223  	MOVW.W	R1, (R2)                                          // 0010a2e5
  1224  	MOVW	R1, 0x20(R2)         // MOVW R1, 32(R2)           // 201082e5
  1225  	MOVW.P	R1, 0x20(R2)         // MOVW.P R1, 32(R2)         // 201082e4
  1226  	MOVW.W	R1, 0x20(R2)         // MOVW.W R1, 32(R2)         // 2010a2e5
  1227  	MOVW	R1, -0x20(R2)        // MOVW R1, -32(R2)          // 201002e5
  1228  	MOVW.P	R1, -0x20(R2)        // MOVW.P R1, -32(R2)        // 201002e4
  1229  	MOVW.W	R1, -0x20(R2)        // MOVW.W R1, -32(R2)        // 201022e5
  1230  	MOVW	(R2), R1                                          // 001092e5
  1231  	MOVW.P	(R2), R1                                          // 001092e4
  1232  	MOVW.W	(R2), R1                                          // 0010b2e5
  1233  	MOVW	0x20(R2), R1         // MOVW 32(R2), R1           // 201092e5
  1234  	MOVW.P	0x20(R2), R1         // MOVW.P 32(R2), R1         // 201092e4
  1235  	MOVW.W	0x20(R2), R1         // MOVW.W 32(R2), R1         // 2010b2e5
  1236  	MOVW	-0x20(R2), R1        // MOVW -32(R2), R1          // 201012e5
  1237  	MOVW.P	-0x20(R2), R1        // MOVW.P -32(R2), R1        // 201012e4
  1238  	MOVW.W	-0x20(R2), R1        // MOVW.W -32(R2), R1        // 201032e5
  1239  	MOVW	R1, 0x00ffffff(R2)   // MOVW R1, 16777215(R2)
  1240  	MOVW	0x00ffffff(R2), R1   // MOVW 16777215(R2), R1
  1241  	MOVW	CPSR, R1                                          // 00100fe1
  1242  	MOVW	R1, CPSR                                          // 01f02ce1
  1243  	MOVW	$0xff, CPSR          // MOVW $255, CPSR           // fff02ce3
  1244  	MOVW	$0xff000000, CPSR    // MOVW $4278190080, CPSR    // fff42ce3
  1245  	MOVW	FPSR, R9                                          // 109af1ee
  1246  	MOVW	FPSR, g                                           // 10aaf1ee
  1247  	MOVW	R9, FPSR                                          // 109ae1ee
  1248  	MOVW	g, FPSR                                           // 10aae1ee
  1249  	MOVW	R0>>28(R1), R2                                    // 202e91e7
  1250  	MOVW	R0<<28(R1), R2                                    // 002e91e7
  1251  	MOVW	R0->28(R1), R2                                    // 402e91e7
  1252  	MOVW	R0@>28(R1), R2                                    // 602e91e7
  1253  	MOVW.U	R0>>28(R1), R2                                    // 202e11e7
  1254  	MOVW.U	R0<<28(R1), R2                                    // 002e11e7
  1255  	MOVW.U	R0->28(R1), R2                                    // 402e11e7
  1256  	MOVW.U	R0@>28(R1), R2                                    // 602e11e7
  1257  	MOVW.W	R0>>28(R1), R2                                    // 202eb1e7
  1258  	MOVW.W	R0<<28(R1), R2                                    // 002eb1e7
  1259  	MOVW.W	R0->28(R1), R2                                    // 402eb1e7
  1260  	MOVW.W	R0@>28(R1), R2                                    // 602eb1e7
  1261  	MOVW.P	R0>>28(g), R2                                     // 202e9ae6
  1262  	MOVW.P	R0<<28(g), R2                                     // 002e9ae6
  1263  	MOVW.P	R0->28(g), R2                                     // 402e9ae6
  1264  	MOVW.P	R0@>28(g), R2                                     // 602e9ae6
  1265  	MOVW	R2, R0>>28(R1)                                    // 202e81e7
  1266  	MOVW	R2, R0<<28(R1)                                    // 002e81e7
  1267  	MOVW	R2, R0->28(R1)                                    // 402e81e7
  1268  	MOVW	R2, R0@>28(R1)                                    // 602e81e7
  1269  	MOVW.U	R2, R0>>28(R1)                                    // 202e01e7
  1270  	MOVW.U	R2, R0<<28(R1)                                    // 002e01e7
  1271  	MOVW.U	R2, R0->28(R1)                                    // 402e01e7
  1272  	MOVW.U	R2, R0@>28(R1)                                    // 602e01e7
  1273  	MOVW.W	R2, R0>>28(R1)                                    // 202ea1e7
  1274  	MOVW.W	R2, R0<<28(R1)                                    // 002ea1e7
  1275  	MOVW.W	R2, R0->28(R1)                                    // 402ea1e7
  1276  	MOVW.W	R2, R0@>28(R1)                                    // 602ea1e7
  1277  	MOVW.P	R2, R0>>28(R5)                                    // 202e85e6
  1278  	MOVW.P	R2, R0<<28(R5)                                    // 002e85e6
  1279  	MOVW.P	R2, R0->28(R5)                                    // 402e85e6
  1280  	MOVW.P	R2, R0@>28(R5)                                    // 602e85e6
  1281  	MOVW	R0, math·Exp(SB)     // MOVW R0, math.Exp(SB)
  1282  	MOVW	math·Exp(SB), R0     // MOVW math.Exp(SB), R0
  1283  
  1284  // MOVB
  1285  	MOVB	R3, R4                                            // 0340a0e1
  1286  	MOVB	R9, R2                                            // 0920a0e1
  1287  	MOVBU	R0, R1                                            // ff1000e2
  1288  	MOVBS	R5, R6                                            // 056ca0e1466ca0e1
  1289  	MOVB	R1, (R2)                                          // 0010c2e5
  1290  	MOVB.P	R1, (R2)                                          // 0010c2e4
  1291  	MOVB.W	R1, (R2)                                          // 0010e2e5
  1292  	MOVB	R1, 0x20(R2)         // MOVB R1, 32(R2)           // 2010c2e5
  1293  	MOVB.P	R1, 0x20(R2)         // MOVB.P R1, 32(R2)         // 2010c2e4
  1294  	MOVB.W	R1, 0x20(R2)         // MOVB.W R1, 32(R2)         // 2010e2e5
  1295  	MOVB	R1, -0x20(R2)        // MOVB R1, -32(R2)          // 201042e5
  1296  	MOVB.P	R1, -0x20(R2)        // MOVB.P R1, -32(R2)        // 201042e4
  1297  	MOVB.W	R1, -0x20(R2)        // MOVB.W R1, -32(R2)        // 201062e5
  1298  	MOVBS	R1, (R2)                                          // 0010c2e5
  1299  	MOVBS.P	R1, (R2)                                          // 0010c2e4
  1300  	MOVBS.W	R1, (R2)                                          // 0010e2e5
  1301  	MOVBS	R1, 0x20(R2)         // MOVBS R1, 32(R2)          // 2010c2e5
  1302  	MOVBS.P	R1, 0x20(R2)         // MOVBS.P R1, 32(R2)        // 2010c2e4
  1303  	MOVBS.W	R1, 0x20(R2)         // MOVBS.W R1, 32(R2)        // 2010e2e5
  1304  	MOVBS	R1, -0x20(R2)        // MOVBS R1, -32(R2)         // 201042e5
  1305  	MOVBS.P	R1, -0x20(R2)        // MOVBS.P R1, -32(R2)       // 201042e4
  1306  	MOVBS.W	R1, -0x20(R2)        // MOVBS.W R1, -32(R2)       // 201062e5
  1307  	MOVBU	R1, (R2)                                          // 0010c2e5
  1308  	MOVBU.P	R1, (R2)                                          // 0010c2e4
  1309  	MOVBU.W	R1, (R2)                                          // 0010e2e5
  1310  	MOVBU	R1, 0x20(R2)         // MOVBU R1, 32(R2)          // 2010c2e5
  1311  	MOVBU.P	R1, 0x20(R2)         // MOVBU.P R1, 32(R2)        // 2010c2e4
  1312  	MOVBU.W	R1, 0x20(R2)         // MOVBU.W R1, 32(R2)        // 2010e2e5
  1313  	MOVBU	R1, -0x20(R2)        // MOVBU R1, -32(R2)         // 201042e5
  1314  	MOVBU.P	R1, -0x20(R2)        // MOVBU.P R1, -32(R2)       // 201042e4
  1315  	MOVBU.W	R1, -0x20(R2)        // MOVBU.W R1, -32(R2)       // 201062e5
  1316  	MOVB	(R2), R1                                          // d010d2e1
  1317  	MOVB.P	(R2), R1                                          // d010d2e0
  1318  	MOVB.W	(R2), R1                                          // d010f2e1
  1319  	MOVB	0x20(R2), R1         // MOVB 32(R2), R1           // d012d2e1
  1320  	MOVB.P	0x20(R2), R1         // MOVB.P 32(R2), R1         // d012d2e0
  1321  	MOVB.W	0x20(R2), R1         // MOVB.W 32(R2), R1         // d012f2e1
  1322  	MOVB	-0x20(R2), R1        // MOVB -32(R2), R1          // d01252e1
  1323  	MOVB.P	-0x20(R2), R1        // MOVB.P -32(R2), R1        // d01252e0
  1324  	MOVB.W	-0x20(R2), R1        // MOVB.W -32(R2), R1        // d01272e1
  1325  	MOVBS	(R2), R1                                          // d010d2e1
  1326  	MOVBS.P	(R2), R1                                          // d010d2e0
  1327  	MOVBS.W	(R2), R1                                          // d010f2e1
  1328  	MOVBS	0x20(R2), R1         // MOVBS 32(R2), R1          // d012d2e1
  1329  	MOVBS.P	0x20(R2), R1         // MOVBS.P 32(R2), R1        // d012d2e0
  1330  	MOVBS.W	0x20(R2), R1         // MOVBS.W 32(R2), R1        // d012f2e1
  1331  	MOVBS	-0x20(R2), R1        // MOVBS -32(R2), R1         // d01252e1
  1332  	MOVBS.P	-0x20(R2), R1        // MOVBS.P -32(R2), R1       // d01252e0
  1333  	MOVBS.W	-0x20(R2), R1        // MOVBS.W -32(R2), R1       // d01272e1
  1334  	MOVBU	(R2), R1                                          // 0010d2e5
  1335  	MOVBU.P	(R2), R1                                          // 0010d2e4
  1336  	MOVBU.W	(R2), R1                                          // 0010f2e5
  1337  	MOVBU	0x20(R2), R1         // MOVBU 32(R2), R1          // 2010d2e5
  1338  	MOVBU.P	0x20(R2), R1         // MOVBU.P 32(R2), R1        // 2010d2e4
  1339  	MOVBU.W	0x20(R2), R1         // MOVBU.W 32(R2), R1        // 2010f2e5
  1340  	MOVBU	-0x20(R2), R1        // MOVBU -32(R2), R1         // 201052e5
  1341  	MOVBU.P	-0x20(R2), R1        // MOVBU.P -32(R2), R1       // 201052e4
  1342  	MOVBU.W	-0x20(R2), R1        // MOVBU.W -32(R2), R1       // 201072e5
  1343  	MOVB	R1, 0x00ffffff(R2)   // MOVB R1, 16777215(R2)
  1344  	MOVB.W	R1, 0x00ffffff(R2)   // MOVB.W R1, 16777215(R2)
  1345  	MOVB.P	R1, 0x00ffffff(R2)   // MOVB.P R1, 16777215(R2)
  1346  	MOVB	R1, -0x00ffffff(R2)  // MOVB R1, -16777215(R2)
  1347  	MOVB.W	R1, -0x00ffffff(R2)  // MOVB.W R1, -16777215(R2)
  1348  	MOVB.P	R1, -0x00ffffff(R2)  // MOVB.P R1, -16777215(R2)
  1349  	MOVB	0x00ffffff(R2), R1   // MOVB 16777215(R2), R1
  1350  	MOVB.P	0x00ffffff(R2), R1   // MOVB.P 16777215(R2), R1
  1351  	MOVB.W	0x00ffffff(R2), R1   // MOVB.W 16777215(R2), R1
  1352  	MOVB	-0x00ffffff(R2), R1  // MOVB -16777215(R2), R1
  1353  	MOVB.P	-0x00ffffff(R2), R1  // MOVB.P -16777215(R2), R1
  1354  	MOVB.W	-0x00ffffff(R2), R1  // MOVB.W -16777215(R2), R1
  1355  	MOVBS	R1, 0x00ffffff(R2)   // MOVBS R1, 16777215(R2)
  1356  	MOVBS.W	R1, 0x00ffffff(R2)   // MOVBS.W R1, 16777215(R2)
  1357  	MOVBS.P	R1, 0x00ffffff(R2)   // MOVBS.P R1, 16777215(R2)
  1358  	MOVBS	R1, -0x00ffffff(R2)  // MOVBS R1, -16777215(R2)
  1359  	MOVBS.W	R1, -0x00ffffff(R2)  // MOVBS.W R1, -16777215(R2)
  1360  	MOVBS.P	R1, -0x00ffffff(R2)  // MOVBS.P R1, -16777215(R2)
  1361  	MOVBS	0x00ffffff(R2), R1   // MOVBS 16777215(R2), R1
  1362  	MOVBS.P	0x00ffffff(R2), R1   // MOVBS.P 16777215(R2), R1
  1363  	MOVBS.W	0x00ffffff(R2), R1   // MOVBS.W 16777215(R2), R1
  1364  	MOVBS	-0x00ffffff(R2), R1  // MOVBS -16777215(R2), R1
  1365  	MOVBS.P	-0x00ffffff(R2), R1  // MOVBS.P -16777215(R2), R1
  1366  	MOVBS.W	-0x00ffffff(R2), R1  // MOVBS.W -16777215(R2), R1
  1367  	MOVBU	R1, 0x00ffffff(R2)   // MOVBU R1, 16777215(R2)
  1368  	MOVBU.W	R1, 0x00ffffff(R2)   // MOVBU.W R1, 16777215(R2)
  1369  	MOVBU.P	R1, 0x00ffffff(R2)   // MOVBU.P R1, 16777215(R2)
  1370  	MOVBU	R1, -0x00ffffff(R2)  // MOVBU R1, -16777215(R2)
  1371  	MOVBU.W	R1, -0x00ffffff(R2)  // MOVBU.W R1, -16777215(R2)
  1372  	MOVBU.P	R1, -0x00ffffff(R2)  // MOVBU.P R1, -16777215(R2)
  1373  	MOVBU	0x00ffffff(R2), R1   // MOVBU 16777215(R2), R1
  1374  	MOVBU.P	0x00ffffff(R2), R1   // MOVBU.P 16777215(R2), R1
  1375  	MOVBU.W	0x00ffffff(R2), R1   // MOVBU.W 16777215(R2), R1
  1376  	MOVBU	-0x00ffffff(R2), R1  // MOVBU -16777215(R2), R1
  1377  	MOVBU.P	-0x00ffffff(R2), R1  // MOVBU.P -16777215(R2), R1
  1378  	MOVBU.W	-0x00ffffff(R2), R1  // MOVBU.W -16777215(R2), R1
  1379  	MOVB	R0, math·Exp(SB)     // MOVB R0, math.Exp(SB)
  1380  	MOVB	math·Exp(SB), R0     // MOVB math.Exp(SB), R0
  1381  	MOVBS	R0, math·Exp(SB)     // MOVBS R0, math.Exp(SB)
  1382  	MOVBS	math·Exp(SB), R0     // MOVBS math.Exp(SB), R0
  1383  	MOVBU	R0, math·Exp(SB)     // MOVBU R0, math.Exp(SB)
  1384  	MOVBU	math·Exp(SB), R0     // MOVBU math.Exp(SB), R0
  1385  	MOVB	R2, R0>>28(R1)                                    // 202ec1e7
  1386  	MOVB	R2, R0<<28(R1)                                    // 002ec1e7
  1387  	MOVB	R2, R0->28(R1)                                    // 402ec1e7
  1388  	MOVB	R2, R0@>28(R1)                                    // 602ec1e7
  1389  	MOVB.U	R2, R0>>28(R1)                                    // 202e41e7
  1390  	MOVB.U	R2, R0<<28(R1)                                    // 002e41e7
  1391  	MOVB.U	R2, R0->28(R1)                                    // 402e41e7
  1392  	MOVB.U	R2, R0@>28(R1)                                    // 602e41e7
  1393  	MOVB.W	R2, R0>>28(R1)                                    // 202ee1e7
  1394  	MOVB.W	R2, R0<<28(R1)                                    // 002ee1e7
  1395  	MOVB.W	R2, R0->28(R1)                                    // 402ee1e7
  1396  	MOVB.W	R2, R0@>28(R1)                                    // 602ee1e7
  1397  	MOVB.P	R2, R0>>28(R5)                                    // 202ec5e6
  1398  	MOVB.P	R2, R0<<28(R5)                                    // 002ec5e6
  1399  	MOVB.P	R2, R0->28(R5)                                    // 402ec5e6
  1400  	MOVB.P	R2, R0@>28(R5)                                    // 602ec5e6
  1401  	MOVBS	R2, R0>>28(R1)                                    // 202ec1e7
  1402  	MOVBS	R2, R0<<28(R1)                                    // 002ec1e7
  1403  	MOVBS	R2, R0->28(R1)                                    // 402ec1e7
  1404  	MOVBS	R2, R0@>28(R1)                                    // 602ec1e7
  1405  	MOVBS.U	R2, R0>>28(R1)                                    // 202e41e7
  1406  	MOVBS.U	R2, R0<<28(R1)                                    // 002e41e7
  1407  	MOVBS.U	R2, R0->28(R1)                                    // 402e41e7
  1408  	MOVBS.U	R2, R0@>28(R1)                                    // 602e41e7
  1409  	MOVBS.W	R2, R0>>28(R1)                                    // 202ee1e7
  1410  	MOVBS.W	R2, R0<<28(R1)                                    // 002ee1e7
  1411  	MOVBS.W	R2, R0->28(R1)                                    // 402ee1e7
  1412  	MOVBS.W	R2, R0@>28(R1)                                    // 602ee1e7
  1413  	MOVBS.P	R2, R0>>28(R5)                                    // 202ec5e6
  1414  	MOVBS.P	R2, R0<<28(R5)                                    // 002ec5e6
  1415  	MOVBS.P	R2, R0->28(R5)                                    // 402ec5e6
  1416  	MOVBS.P	R2, R0@>28(R5)                                    // 602ec5e6
  1417  	MOVBU	R2, R0>>28(R1)                                    // 202ec1e7
  1418  	MOVBU	R2, R0<<28(R1)                                    // 002ec1e7
  1419  	MOVBU	R2, R0->28(R1)                                    // 402ec1e7
  1420  	MOVBU	R2, R0@>28(R1)                                    // 602ec1e7
  1421  	MOVBU.U	R2, R0>>28(R1)                                    // 202e41e7
  1422  	MOVBU.U	R2, R0<<28(R1)                                    // 002e41e7
  1423  	MOVBU.U	R2, R0->28(R1)                                    // 402e41e7
  1424  	MOVBU.U	R2, R0@>28(R1)                                    // 602e41e7
  1425  	MOVBU.W	R2, R0>>28(R1)                                    // 202ee1e7
  1426  	MOVBU.W	R2, R0<<28(R1)                                    // 002ee1e7
  1427  	MOVBU.W	R2, R0->28(R1)                                    // 402ee1e7
  1428  	MOVBU.W	R2, R0@>28(R1)                                    // 602ee1e7
  1429  	MOVBU.P	R2, R0>>28(R5)                                    // 202ec5e6
  1430  	MOVBU.P	R2, R0<<28(R5)                                    // 002ec5e6
  1431  	MOVBU.P	R2, R0->28(R5)                                    // 402ec5e6
  1432  	MOVBU.P	R2, R0@>28(R5)                                    // 602ec5e6
  1433  	MOVBU	R0>>28(R1), R2                                    // 202ed1e7
  1434  	MOVBU	R0<<28(R1), R2                                    // 002ed1e7
  1435  	MOVBU	R0->28(R1), R2                                    // 402ed1e7
  1436  	MOVBU	R0@>28(R1), R2                                    // 602ed1e7
  1437  	MOVBU.U	R0>>28(R1), R2                                    // 202e51e7
  1438  	MOVBU.U	R0<<28(R1), R2                                    // 002e51e7
  1439  	MOVBU.U	R0->28(R1), R2                                    // 402e51e7
  1440  	MOVBU.U	R0@>28(R1), R2                                    // 602e51e7
  1441  	MOVBU.W	R0>>28(R1), R2                                    // 202ef1e7
  1442  	MOVBU.W	R0<<28(R1), R2                                    // 002ef1e7
  1443  	MOVBU.W	R0->28(R1), R2                                    // 402ef1e7
  1444  	MOVBU.W	R0@>28(R1), R2                                    // 602ef1e7
  1445  	MOVBU.P	R0>>28(g), R2                                     // 202edae6
  1446  	MOVBU.P	R0<<28(g), R2                                     // 002edae6
  1447  	MOVBU.P	R0->28(g), R2                                     // 402edae6
  1448  	MOVBU.P	R0@>28(g), R2                                     // 602edae6
  1449  	MOVBS	R0<<0(R1), R2                                     // d02091e1
  1450  	MOVBS.U	R0<<0(R1), R2                                     // d02011e1
  1451  	MOVBS.W	R0<<0(R1), R2                                     // d020b1e1
  1452  	MOVBS.P	R0<<0(R1), R2                                     // d02091e0
  1453  	MOVB	R0<<0(R1), R2                                     // d02091e1
  1454  	MOVB.U	R0<<0(R1), R2                                     // d02011e1
  1455  	MOVB.W	R0<<0(R1), R2                                     // d020b1e1
  1456  	MOVB.P	R0<<0(R1), R2                                     // d02091e0
  1457  	MOVBS	R2@>0, R8                                         // 7280afe6
  1458  	MOVBS	R2@>8, R8                                         // 7284afe6
  1459  	MOVBS	R2@>16, R8                                        // 7288afe6
  1460  	MOVBS	R2@>24, R8                                        // 728cafe6
  1461  	MOVB	R2@>0, R8                                         // 7280afe6
  1462  	MOVB	R2@>8, R8                                         // 7284afe6
  1463  	MOVB	R2@>16, R8                                        // 7288afe6
  1464  	MOVB	R2@>24, R8                                        // 728cafe6
  1465  	MOVBU	R4@>0, R7                                         // 7470efe6
  1466  	MOVBU	R4@>8, R7                                         // 7474efe6
  1467  	MOVBU	R4@>16, R7                                        // 7478efe6
  1468  	MOVBU	R4@>24, R7                                        // 747cefe6
  1469  
  1470  // MOVH
  1471  	MOVH	R3, R4                                            // 0340a0e1
  1472  	MOVH	R9, R2                                            // 0920a0e1
  1473  	MOVHS	R5, R6                                            // 0568a0e14668a0e1
  1474  	MOVHU	R5, R6                                            // 0568a0e12668a0e1
  1475  	MOVH	R4, (R3)                                          // b040c3e1
  1476  	MOVHS.W	R4, (R3)                                          // b040e3e1
  1477  	MOVHS.P	R4, (R3)                                          // b040c3e0
  1478  	MOVHS	R4, (R3)                                          // b040c3e1
  1479  	MOVHS.W	R4, (R3)                                          // b040e3e1
  1480  	MOVHS.P	R4, (R3)                                          // b040c3e0
  1481  	MOVHU	R4, (R3)                                          // b040c3e1
  1482  	MOVHU.W	R4, (R3)                                          // b040e3e1
  1483  	MOVHU.P	R4, (R3)                                          // b040c3e0
  1484  	MOVH	R3, 0x20(R4)         // MOVH R3, 32(R4)           // b032c4e1
  1485  	MOVH.W	R3, 0x20(R4)         // MOVH.W R3, 32(R4)         // b032e4e1
  1486  	MOVH.P	R3, 0x20(R4)         // MOVH.P R3, 32(R4)         // b032c4e0
  1487  	MOVHS	R3, 0x20(R4)         // MOVHS R3, 32(R4)          // b032c4e1
  1488  	MOVHS.W	R3, 0x20(R4)         // MOVHS.W R3, 32(R4)        // b032e4e1
  1489  	MOVHS.P	R3, 0x20(R4)         // MOVHS.P R3, 32(R4)        // b032c4e0
  1490  	MOVHU	R3, 0x20(R4)         // MOVHU R3, 32(R4)          // b032c4e1
  1491  	MOVHU.W	R3, 0x20(R4)         // MOVHU.W R3, 32(R4)        // b032e4e1
  1492  	MOVHU.P	R3, 0x20(R4)         // MOVHU.P R3, 32(R4)        // b032c4e0
  1493  	MOVH	R3, -0x20(R4)        // MOVH R3, -32(R4)          // b03244e1
  1494  	MOVH.W	R3, -0x20(R4)        // MOVH.W R3, -32(R4)        // b03264e1
  1495  	MOVH.P	R3, -0x20(R4)        // MOVH.P R3, -32(R4)        // b03244e0
  1496  	MOVHS	R3, -0x20(R4)        // MOVHS R3, -32(R4)         // b03244e1
  1497  	MOVHS.W	R3, -0x20(R4)        // MOVHS.W R3, -32(R4)       // b03264e1
  1498  	MOVHS.P	R3, -0x20(R4)        // MOVHS.P R3, -32(R4)       // b03244e0
  1499  	MOVHU	R3, -0x20(R4)        // MOVHU R3, -32(R4)         // b03244e1
  1500  	MOVHU.W	R3, -0x20(R4)        // MOVHU.W R3, -32(R4)       // b03264e1
  1501  	MOVHU.P	R3, -0x20(R4)        // MOVHU.P R3, -32(R4)       // b03244e0
  1502  	MOVHU	(R9), R8                                          // b080d9e1
  1503  	MOVHU.W	(R9), R8                                          // b080f9e1
  1504  	MOVHU.P	(R9), R8                                          // b080d9e0
  1505  	MOVH	(R9), R8                                          // f080d9e1
  1506  	MOVH.W	(R9), R8                                          // f080f9e1
  1507  	MOVH.P	(R9), R8                                          // f080d9e0
  1508  	MOVHS	(R9), R8                                          // f080d9e1
  1509  	MOVHS.W	(R9), R8                                          // f080f9e1
  1510  	MOVHS.P	(R9), R8                                          // f080d9e0
  1511  	MOVHU	0x22(R9), R8         // MOVHU 34(R9), R8          // b282d9e1
  1512  	MOVHU.W	0x22(R9), R8         // MOVHU.W 34(R9), R8        // b282f9e1
  1513  	MOVHU.P	0x22(R9), R8         // MOVHU.P 34(R9), R8        // b282d9e0
  1514  	MOVH	0x22(R9), R8         // MOVH 34(R9), R8           // f282d9e1
  1515  	MOVH.W	0x22(R9), R8         // MOVH.W 34(R9), R8         // f282f9e1
  1516  	MOVH.P	0x22(R9), R8         // MOVH.P 34(R9), R8         // f282d9e0
  1517  	MOVHS	0x22(R9), R8         // MOVHS 34(R9), R8          // f282d9e1
  1518  	MOVHS.W	0x22(R9), R8         // MOVHS.W 34(R9), R8        // f282f9e1
  1519  	MOVHS.P	0x22(R9), R8         // MOVHS.P 34(R9), R8        // f282d9e0
  1520  	MOVHU	-0x24(R9), R8        // MOVHU -36(R9), R8         // b48259e1
  1521  	MOVHU.W	-0x24(R9), R8        // MOVHU.W -36(R9), R8       // b48279e1
  1522  	MOVHU.P	-0x24(R9), R8        // MOVHU.P -36(R9), R8       // b48259e0
  1523  	MOVH	-0x24(R9), R8        // MOVH -36(R9), R8          // f48259e1
  1524  	MOVH.W	-0x24(R9), R8        // MOVH.W -36(R9), R8        // f48279e1
  1525  	MOVH.P	-0x24(R9), R8        // MOVH.P -36(R9), R8        // f48259e0
  1526  	MOVHS	-0x24(R9), R8        // MOVHS -36(R9), R8         // f48259e1
  1527  	MOVHS.W	-0x24(R9), R8        // MOVHS.W -36(R9), R8       // f48279e1
  1528  	MOVHS.P	-0x24(R9), R8        // MOVHS.P -36(R9), R8       // f48259e0
  1529  	MOVH	R1, 0x00ffffff(R2)   // MOVH R1, 16777215(R2)
  1530  	MOVH.W	R1, 0x00ffffff(R2)   // MOVH.W R1, 16777215(R2)
  1531  	MOVH.P	R1, 0x00ffffff(R2)   // MOVH.P R1, 16777215(R2)
  1532  	MOVH	R1, -0x00ffffff(R2)  // MOVH R1, -16777215(R2)
  1533  	MOVH.W	R1, -0x00ffffff(R2)  // MOVH.W R1, -16777215(R2)
  1534  	MOVH.P	R1, -0x00ffffff(R2)  // MOVH.P R1, -16777215(R2)
  1535  	MOVH	0x00ffffff(R2), R1   // MOVH 16777215(R2), R1
  1536  	MOVH.P	0x00ffffff(R2), R1   // MOVH.P 16777215(R2), R1
  1537  	MOVH.W	0x00ffffff(R2), R1   // MOVH.W 16777215(R2), R1
  1538  	MOVH	-0x00ffffff(R2), R1  // MOVH -16777215(R2), R1
  1539  	MOVH.P	-0x00ffffff(R2), R1  // MOVH.P -16777215(R2), R1
  1540  	MOVH.W	-0x00ffffff(R2), R1  // MOVH.W -16777215(R2), R1
  1541  	MOVHS	R1, 0x00ffffff(R2)   // MOVHS R1, 16777215(R2)
  1542  	MOVHS.W	R1, 0x00ffffff(R2)   // MOVHS.W R1, 16777215(R2)
  1543  	MOVHS.P	R1, 0x00ffffff(R2)   // MOVHS.P R1, 16777215(R2)
  1544  	MOVHS	R1, -0x00ffffff(R2)  // MOVHS R1, -16777215(R2)
  1545  	MOVHS.W	R1, -0x00ffffff(R2)  // MOVHS.W R1, -16777215(R2)
  1546  	MOVHS.P	R1, -0x00ffffff(R2)  // MOVHS.P R1, -16777215(R2)
  1547  	MOVHS	0x00ffffff(R2), R1   // MOVHS 16777215(R2), R1
  1548  	MOVHS.P	0x00ffffff(R2), R1   // MOVHS.P 16777215(R2), R1
  1549  	MOVHS.W	0x00ffffff(R2), R1   // MOVHS.W 16777215(R2), R1
  1550  	MOVHS	-0x00ffffff(R2), R1  // MOVHS -16777215(R2), R1
  1551  	MOVHS.P	-0x00ffffff(R2), R1  // MOVHS.P -16777215(R2), R1
  1552  	MOVHS.W	-0x00ffffff(R2), R1  // MOVHS.W -16777215(R2), R1
  1553  	MOVHU	R1, 0x00ffffff(R2)   // MOVHU R1, 16777215(R2)
  1554  	MOVHU.W	R1, 0x00ffffff(R2)   // MOVHU.W R1, 16777215(R2)
  1555  	MOVHU.P	R1, 0x00ffffff(R2)   // MOVHU.P R1, 16777215(R2)
  1556  	MOVHU	R1, -0x00ffffff(R2)  // MOVHU R1, -16777215(R2)
  1557  	MOVHU.W	R1, -0x00ffffff(R2)  // MOVHU.W R1, -16777215(R2)
  1558  	MOVHU.P	R1, -0x00ffffff(R2)  // MOVHU.P R1, -16777215(R2)
  1559  	MOVHU	0x00ffffff(R2), R1   // MOVHU 16777215(R2), R1
  1560  	MOVHU.P	0x00ffffff(R2), R1   // MOVHU.P 16777215(R2), R1
  1561  	MOVHU.W	0x00ffffff(R2), R1   // MOVHU.W 16777215(R2), R1
  1562  	MOVHU	-0x00ffffff(R2), R1  // MOVHU -16777215(R2), R1
  1563  	MOVHU.P	-0x00ffffff(R2), R1  // MOVHU.P -16777215(R2), R1
  1564  	MOVHU.W	-0x00ffffff(R2), R1  // MOVHU.W -16777215(R2), R1
  1565  	MOVH	R0, math·Exp(SB)     // MOVH R0, math.Exp(SB)
  1566  	MOVH	math·Exp(SB), R0     // MOVH math.Exp(SB), R0
  1567  	MOVHS	R0, math·Exp(SB)     // MOVHS R0, math.Exp(SB)
  1568  	MOVHS	math·Exp(SB), R0     // MOVHS math.Exp(SB), R0
  1569  	MOVHU	R0, math·Exp(SB)     // MOVHU R0, math.Exp(SB)
  1570  	MOVHU	math·Exp(SB), R0     // MOVHU math.Exp(SB), R0
  1571  	MOVHS	R0<<0(R1), R2                                     // f02091e1
  1572  	MOVHS.U	R0<<0(R1), R2                                     // f02011e1
  1573  	MOVHS.W	R0<<0(R1), R2                                     // f020b1e1
  1574  	MOVHS.P	R0<<0(R1), R2                                     // f02091e0
  1575  	MOVH	R0<<0(R1), R2                                     // f02091e1
  1576  	MOVH.U	R0<<0(R1), R2                                     // f02011e1
  1577  	MOVH.W	R0<<0(R1), R2                                     // f020b1e1
  1578  	MOVH.P	R0<<0(R1), R2                                     // f02091e0
  1579  	MOVHU	R0<<0(R1), R2                                     // b02091e1
  1580  	MOVHU.U	R0<<0(R1), R2                                     // b02011e1
  1581  	MOVHU.W	R0<<0(R1), R2                                     // b020b1e1
  1582  	MOVHU.P	R0<<0(R1), R2                                     // b02091e0
  1583  	MOVHS	R2, R5<<0(R1)                                     // b52081e1
  1584  	MOVHS.U	R2, R5<<0(R1)                                     // b52001e1
  1585  	MOVHS.W	R2, R5<<0(R1)                                     // b520a1e1
  1586  	MOVHS.P	R2, R5<<0(R1)                                     // b52081e0
  1587  	MOVH	R2, R5<<0(R1)                                     // b52081e1
  1588  	MOVH.U	R2, R5<<0(R1)                                     // b52001e1
  1589  	MOVH.W	R2, R5<<0(R1)                                     // b520a1e1
  1590  	MOVH.P	R2, R5<<0(R1)                                     // b52081e0
  1591  	MOVHU	R2, R5<<0(R1)                                     // b52081e1
  1592  	MOVHU.U	R2, R5<<0(R1)                                     // b52001e1
  1593  	MOVHU.W	R2, R5<<0(R1)                                     // b520a1e1
  1594  	MOVHU.P	R2, R5<<0(R1)                                     // b52081e0
  1595  	MOVHS	R3@>0, R9                                         // 7390bfe6
  1596  	MOVHS	R3@>8, R9                                         // 7394bfe6
  1597  	MOVHS	R3@>16, R9                                        // 7398bfe6
  1598  	MOVHS	R3@>24, R9                                        // 739cbfe6
  1599  	MOVH	R3@>0, R9                                         // 7390bfe6
  1600  	MOVH	R3@>8, R9                                         // 7394bfe6
  1601  	MOVH	R3@>16, R9                                        // 7398bfe6
  1602  	MOVH	R3@>24, R9                                        // 739cbfe6
  1603  	MOVHU	R5@>0, R1                                         // 7510ffe6
  1604  	MOVHU	R5@>8, R1                                         // 7514ffe6
  1605  	MOVHU	R5@>16, R1                                        // 7518ffe6
  1606  	MOVHU	R5@>24, R1                                        // 751cffe6
  1607  
  1608  	RET	foo(SB)
  1609  
  1610  //
  1611  // END
  1612  //
  1613  //	LTYPEE
  1614  //	{
  1615  //		outcode($1, Always, &nullgen, 0, &nullgen);
  1616  //	}
  1617  	END
  1618  

View as plain text