1878cc677SRichard Henderson# SPDX-License-Identifier: LGPL-2.0+ 2878cc677SRichard Henderson# 3878cc677SRichard Henderson# Sparc instruction decode definitions. 4878cc677SRichard Henderson# Copyright (c) 2023 Richard Henderson <rth@twiddle.net> 5878cc677SRichard Henderson 66d2a0768SRichard Henderson## 76d2a0768SRichard Henderson## Major Opcodes 00 and 01 -- branches, call, and sethi. 86d2a0768SRichard Henderson## 96d2a0768SRichard Henderson 10276567aaSRichard Henderson&bcc i a cond cc 11276567aaSRichard HendersonBPcc 00 a:1 cond:4 001 cc:1 0 - i:s19 &bcc 12276567aaSRichard HendersonBicc 00 a:1 cond:4 010 i:s22 &bcc cc=0 1345196ea4SRichard HendersonFBPfcc 00 a:1 cond:4 101 cc:2 - i:s19 &bcc 1445196ea4SRichard HendersonFBfcc 00 a:1 cond:4 110 i:s22 &bcc cc=0 15276567aaSRichard Henderson 16ab9ffe98SRichard Henderson%d16 20:s2 0:14 17ab9ffe98SRichard HendersonBPr 00 a:1 0 cond:3 011 .. - rs1:5 .............. i=%d16 18ab9ffe98SRichard Henderson 1945196ea4SRichard HendersonNCP 00 - ---- 111 ---------------------- # CBcc 2045196ea4SRichard Henderson 216d2a0768SRichard HendersonSETHI 00 rd:5 100 i:22 226d2a0768SRichard Henderson 2323ada1b1SRichard HendersonCALL 01 i:s30 2430376636SRichard Henderson 250faef01bSRichard Henderson## 260faef01bSRichard Henderson## Major Opcode 10 -- integer, floating-point, vis, and system insns. 270faef01bSRichard Henderson## 280faef01bSRichard Henderson 290faef01bSRichard Henderson&r_r_ri rd rs1 rs2_or_imm imm:bool 300faef01bSRichard Henderson@n_r_ri .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri rd=0 3186b82fe0SRichard Henderson@r_r_ri .. rd:5 ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri 320faef01bSRichard Henderson 33428881deSRichard Henderson&r_r_ri_cc rd rs1 rs2_or_imm imm:bool cc:bool 34428881deSRichard Henderson@r_r_ri_cc .. rd:5 . cc:1 .... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri_cc 3522188d7dSRichard Henderson@r_r_ri_cc0 .. rd:5 ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri_cc cc=0 36a9aba13dSRichard Henderson@r_r_ri_cc1 .. rd:5 ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri_cc cc=1 37428881deSRichard Henderson 38b88ce6f2SRichard Henderson&r_r_r rd rs1 rs2 39b88ce6f2SRichard Henderson@r_r_r .. rd:5 ...... rs1:5 . ........ rs2:5 &r_r_r 407f10b52fSRichard Henderson@r_r_r_swap .. rd:5 ...... rs2:5 . ........ rs1:5 &r_r_r 41b88ce6f2SRichard Henderson 42baf3dbf2SRichard Henderson&r_r rd rs 43baf3dbf2SRichard Henderson@r_r1 .. rd:5 ...... rs:5 . ........ ..... &r_r 44baf3dbf2SRichard Henderson@r_r2 .. rd:5 ...... ..... . ........ rs:5 &r_r 45baf3dbf2SRichard Henderson 46af25071cSRichard Henderson{ 47af25071cSRichard Henderson [ 48af25071cSRichard Henderson STBAR 10 00000 101000 01111 0 0000000000000 49af25071cSRichard Henderson MEMBAR 10 00000 101000 01111 1 000000 cmask:3 mmask:4 50af25071cSRichard Henderson 51af25071cSRichard Henderson RDCCR 10 rd:5 101000 00010 0 0000000000000 52af25071cSRichard Henderson RDASI 10 rd:5 101000 00011 0 0000000000000 53af25071cSRichard Henderson RDTICK 10 rd:5 101000 00100 0 0000000000000 54af25071cSRichard Henderson RDPC 10 rd:5 101000 00101 0 0000000000000 55af25071cSRichard Henderson RDFPRS 10 rd:5 101000 00110 0 0000000000000 56af25071cSRichard Henderson RDASR17 10 rd:5 101000 10001 0 0000000000000 57af25071cSRichard Henderson RDGSR 10 rd:5 101000 10011 0 0000000000000 58af25071cSRichard Henderson RDSOFTINT 10 rd:5 101000 10110 0 0000000000000 59af25071cSRichard Henderson RDTICK_CMPR 10 rd:5 101000 10111 0 0000000000000 60af25071cSRichard Henderson RDSTICK 10 rd:5 101000 11000 0 0000000000000 61af25071cSRichard Henderson RDSTICK_CMPR 10 rd:5 101000 11001 0 0000000000000 62af25071cSRichard Henderson RDSTRAND_STATUS 10 rd:5 101000 11010 0 0000000000000 63af25071cSRichard Henderson ] 64af25071cSRichard Henderson # Before v8, all rs1 accepted; otherwise rs1==0. 65af25071cSRichard Henderson RDY 10 rd:5 101000 rs1:5 0 0000000000000 66af25071cSRichard Henderson} 67af25071cSRichard Henderson 68668bb9b7SRichard Henderson{ 690faef01bSRichard Henderson [ 700faef01bSRichard Henderson WRY 10 00000 110000 ..... . ............. @n_r_ri 710faef01bSRichard Henderson WRCCR 10 00010 110000 ..... . ............. @n_r_ri 720faef01bSRichard Henderson WRASI 10 00011 110000 ..... . ............. @n_r_ri 730faef01bSRichard Henderson WRFPRS 10 00110 110000 ..... . ............. @n_r_ri 740faef01bSRichard Henderson { 750faef01bSRichard Henderson WRGSR 10 10011 110000 ..... . ............. @n_r_ri 760faef01bSRichard Henderson WRPOWERDOWN 10 10011 110000 ..... . ............. @n_r_ri 770faef01bSRichard Henderson } 780faef01bSRichard Henderson WRSOFTINT_SET 10 10100 110000 ..... . ............. @n_r_ri 790faef01bSRichard Henderson WRSOFTINT_CLR 10 10101 110000 ..... . ............. @n_r_ri 800faef01bSRichard Henderson WRSOFTINT 10 10110 110000 ..... . ............. @n_r_ri 810faef01bSRichard Henderson WRTICK_CMPR 10 10111 110000 ..... . ............. @n_r_ri 820faef01bSRichard Henderson WRSTICK 10 11000 110000 ..... . ............. @n_r_ri 830faef01bSRichard Henderson WRSTICK_CMPR 10 11001 110000 ..... . ............. @n_r_ri 840faef01bSRichard Henderson ] 850faef01bSRichard Henderson # Before v8, rs1==0 was WRY, and the rest executed as nop. 860faef01bSRichard Henderson [ 870faef01bSRichard Henderson NOP_v7 10 ----- 110000 ----- 0 00000000 ----- 880faef01bSRichard Henderson NOP_v7 10 ----- 110000 ----- 1 -------- ----- 890faef01bSRichard Henderson ] 900faef01bSRichard Henderson} 910faef01bSRichard Henderson 920faef01bSRichard Henderson{ 93668bb9b7SRichard Henderson RDPSR 10 rd:5 101001 00000 0 0000000000000 94668bb9b7SRichard Henderson RDHPR_hpstate 10 rd:5 101001 00000 0 0000000000000 95668bb9b7SRichard Henderson} 96668bb9b7SRichard HendersonRDHPR_htstate 10 rd:5 101001 00001 0 0000000000000 97668bb9b7SRichard HendersonRDHPR_hintp 10 rd:5 101001 00011 0 0000000000000 98668bb9b7SRichard HendersonRDHPR_htba 10 rd:5 101001 00101 0 0000000000000 99668bb9b7SRichard HendersonRDHPR_hver 10 rd:5 101001 00110 0 0000000000000 100668bb9b7SRichard HendersonRDHPR_hstick_cmpr 10 rd:5 101001 11111 0 0000000000000 101668bb9b7SRichard Henderson 1025d617bfbSRichard Henderson{ 10325524734SRichard Henderson WRPSR 10 00000 110001 ..... . ............. @n_r_ri 10425524734SRichard Henderson SAVED 10 00000 110001 00000 0 0000000000000 10525524734SRichard Henderson} 10625524734SRichard HendersonRESTORED 10 00001 110001 00000 0 0000000000000 10725524734SRichard Henderson# UA2005 ALLCLEAN 10825524734SRichard Henderson# UA2005 OTHERW 10925524734SRichard Henderson# UA2005 NORMALW 11025524734SRichard Henderson# UA2005 INVALW 11125524734SRichard Henderson 11225524734SRichard Henderson{ 1135d617bfbSRichard Henderson RDWIM 10 rd:5 101010 00000 0 0000000000000 1145d617bfbSRichard Henderson RDPR_tpc 10 rd:5 101010 00000 0 0000000000000 1155d617bfbSRichard Henderson} 1165d617bfbSRichard HendersonRDPR_tnpc 10 rd:5 101010 00001 0 0000000000000 1175d617bfbSRichard HendersonRDPR_tstate 10 rd:5 101010 00010 0 0000000000000 1185d617bfbSRichard HendersonRDPR_tt 10 rd:5 101010 00011 0 0000000000000 1195d617bfbSRichard HendersonRDPR_tick 10 rd:5 101010 00100 0 0000000000000 1205d617bfbSRichard HendersonRDPR_tba 10 rd:5 101010 00101 0 0000000000000 1215d617bfbSRichard HendersonRDPR_pstate 10 rd:5 101010 00110 0 0000000000000 1225d617bfbSRichard HendersonRDPR_tl 10 rd:5 101010 00111 0 0000000000000 1235d617bfbSRichard HendersonRDPR_pil 10 rd:5 101010 01000 0 0000000000000 1245d617bfbSRichard HendersonRDPR_cwp 10 rd:5 101010 01001 0 0000000000000 1255d617bfbSRichard HendersonRDPR_cansave 10 rd:5 101010 01010 0 0000000000000 1265d617bfbSRichard HendersonRDPR_canrestore 10 rd:5 101010 01011 0 0000000000000 1275d617bfbSRichard HendersonRDPR_cleanwin 10 rd:5 101010 01100 0 0000000000000 1285d617bfbSRichard HendersonRDPR_otherwin 10 rd:5 101010 01101 0 0000000000000 1295d617bfbSRichard HendersonRDPR_wstate 10 rd:5 101010 01110 0 0000000000000 1305d617bfbSRichard HendersonRDPR_gl 10 rd:5 101010 10000 0 0000000000000 1315d617bfbSRichard HendersonRDPR_strand_status 10 rd:5 101010 11010 0 0000000000000 1325d617bfbSRichard HendersonRDPR_ver 10 rd:5 101010 11111 0 0000000000000 1335d617bfbSRichard Henderson 134e8325dc0SRichard Henderson{ 1359422278eSRichard Henderson WRWIM 10 00000 110010 ..... . ............. @n_r_ri 1369422278eSRichard Henderson WRPR_tpc 10 00000 110010 ..... . ............. @n_r_ri 1379422278eSRichard Henderson} 1389422278eSRichard HendersonWRPR_tnpc 10 00001 110010 ..... . ............. @n_r_ri 1399422278eSRichard HendersonWRPR_tstate 10 00010 110010 ..... . ............. @n_r_ri 1409422278eSRichard HendersonWRPR_tt 10 00011 110010 ..... . ............. @n_r_ri 1419422278eSRichard HendersonWRPR_tick 10 00100 110010 ..... . ............. @n_r_ri 1429422278eSRichard HendersonWRPR_tba 10 00101 110010 ..... . ............. @n_r_ri 1439422278eSRichard HendersonWRPR_pstate 10 00110 110010 ..... . ............. @n_r_ri 1449422278eSRichard HendersonWRPR_tl 10 00111 110010 ..... . ............. @n_r_ri 1459422278eSRichard HendersonWRPR_pil 10 01000 110010 ..... . ............. @n_r_ri 1469422278eSRichard HendersonWRPR_cwp 10 01001 110010 ..... . ............. @n_r_ri 1479422278eSRichard HendersonWRPR_cansave 10 01010 110010 ..... . ............. @n_r_ri 1489422278eSRichard HendersonWRPR_canrestore 10 01011 110010 ..... . ............. @n_r_ri 1499422278eSRichard HendersonWRPR_cleanwin 10 01100 110010 ..... . ............. @n_r_ri 1509422278eSRichard HendersonWRPR_otherwin 10 01101 110010 ..... . ............. @n_r_ri 1519422278eSRichard HendersonWRPR_wstate 10 01110 110010 ..... . ............. @n_r_ri 1529422278eSRichard HendersonWRPR_gl 10 10000 110010 ..... . ............. @n_r_ri 1539422278eSRichard HendersonWRPR_strand_status 10 11010 110010 ..... . ............. @n_r_ri 1549422278eSRichard Henderson 1559422278eSRichard Henderson{ 156e8325dc0SRichard Henderson FLUSHW 10 00000 101011 00000 0 0000000000000 157e8325dc0SRichard Henderson RDTBR 10 rd:5 101011 00000 0 0000000000000 158e8325dc0SRichard Henderson} 159e8325dc0SRichard Henderson 160bb97f2f5SRichard Henderson{ 161bb97f2f5SRichard Henderson WRTBR 10 00000 110011 ..... . ............. @n_r_ri 162bb97f2f5SRichard Henderson WRHPR_hpstate 10 00000 110011 ..... . ............. @n_r_ri 163bb97f2f5SRichard Henderson} 164bb97f2f5SRichard HendersonWRHPR_htstate 10 00001 110011 ..... . ............. @n_r_ri 165bb97f2f5SRichard HendersonWRHPR_hintp 10 00011 110011 ..... . ............. @n_r_ri 166bb97f2f5SRichard HendersonWRHPR_htba 10 00101 110011 ..... . ............. @n_r_ri 167bb97f2f5SRichard HendersonWRHPR_hstick_cmpr 10 11111 110011 ..... . ............. @n_r_ri 168bb97f2f5SRichard Henderson 169428881deSRichard HendersonADD 10 ..... 0.0000 ..... . ............. @r_r_ri_cc 170428881deSRichard HendersonAND 10 ..... 0.0001 ..... . ............. @r_r_ri_cc 171428881deSRichard HendersonOR 10 ..... 0.0010 ..... . ............. @r_r_ri_cc 172428881deSRichard HendersonXOR 10 ..... 0.0011 ..... . ............. @r_r_ri_cc 173428881deSRichard HendersonSUB 10 ..... 0.0100 ..... . ............. @r_r_ri_cc 174428881deSRichard HendersonANDN 10 ..... 0.0101 ..... . ............. @r_r_ri_cc 175428881deSRichard HendersonORN 10 ..... 0.0110 ..... . ............. @r_r_ri_cc 176428881deSRichard HendersonXORN 10 ..... 0.0111 ..... . ............. @r_r_ri_cc 177420a187dSRichard HendersonADDC 10 ..... 0.1000 ..... . ............. @r_r_ri_cc 178dfebb950SRichard HendersonSUBC 10 ..... 0.1100 ..... . ............. @r_r_ri_cc 179428881deSRichard Henderson 18022188d7dSRichard HendersonMULX 10 ..... 001001 ..... . ............. @r_r_ri_cc0 181b5372650SRichard HendersonUMUL 10 ..... 0.1010 ..... . ............. @r_r_ri_cc 182b5372650SRichard HendersonSMUL 10 ..... 0.1011 ..... . ............. @r_r_ri_cc 183a9aba13dSRichard HendersonMULScc 10 ..... 100100 ..... . ............. @r_r_ri_cc1 18422188d7dSRichard Henderson 1854ee85ea9SRichard HendersonUDIVX 10 ..... 001101 ..... . ............. @r_r_ri_cc0 1864ee85ea9SRichard HendersonSDIVX 10 ..... 101101 ..... . ............. @r_r_ri_cc0 187c2636853SRichard HendersonUDIV 10 ..... 0.1110 ..... . ............. @r_r_ri_cc 188c2636853SRichard HendersonSDIV 10 ..... 0.1111 ..... . ............. @r_r_ri_cc 1894ee85ea9SRichard Henderson 190a9aba13dSRichard HendersonTADDcc 10 ..... 100000 ..... . ............. @r_r_ri_cc1 191a9aba13dSRichard HendersonTSUBcc 10 ..... 100001 ..... . ............. @r_r_ri_cc1 192a9aba13dSRichard HendersonTADDccTV 10 ..... 100010 ..... . ............. @r_r_ri_cc1 193a9aba13dSRichard HendersonTSUBccTV 10 ..... 100011 ..... . ............. @r_r_ri_cc1 194a9aba13dSRichard Henderson 1959c6ec5bcSRichard HendersonPOPC 10 rd:5 101110 00000 imm:1 rs2_or_imm:s13 \ 1969c6ec5bcSRichard Henderson &r_r_ri_cc rs1=0 cc=0 1979c6ec5bcSRichard Henderson 1985fc546eeSRichard Henderson&shiftr rd rs1 rs2 x:bool 1995fc546eeSRichard Henderson@shiftr .. rd:5 ...... rs1:5 . x:1 ....... rs2:5 &shiftr 2005fc546eeSRichard Henderson 2015fc546eeSRichard HendersonSLL_r 10 ..... 100101 ..... 0 . 0000000 ..... @shiftr 2025fc546eeSRichard HendersonSRL_r 10 ..... 100110 ..... 0 . 0000000 ..... @shiftr 2035fc546eeSRichard HendersonSRA_r 10 ..... 100111 ..... 0 . 0000000 ..... @shiftr 2045fc546eeSRichard Henderson 2055fc546eeSRichard Henderson&shifti rd rs1 i x:bool 2065fc546eeSRichard Henderson@shifti .. rd:5 ...... rs1:5 . x:1 ...... i:6 &shifti 2075fc546eeSRichard Henderson 2085fc546eeSRichard HendersonSLL_i 10 ..... 100101 ..... 1 . 000000 ...... @shifti 2095fc546eeSRichard HendersonSRL_i 10 ..... 100110 ..... 1 . 000000 ...... @shifti 2105fc546eeSRichard HendersonSRA_i 10 ..... 100111 ..... 1 . 000000 ...... @shifti 2115fc546eeSRichard Henderson 21230376636SRichard HendersonTcc_r 10 0 cond:4 111010 rs1:5 0 cc:1 0000000 rs2:5 21330376636SRichard Henderson{ 21430376636SRichard Henderson # For v7, the entire simm13 field is present, but masked to 7 bits. 21530376636SRichard Henderson # For v8, [12:7] are reserved. However, a compatibility note for 21630376636SRichard Henderson # the Tcc insn in the v9 manual suggests that the v8 reserved field 21730376636SRichard Henderson # was ignored and did not produce traps. 21830376636SRichard Henderson Tcc_i_v7 10 0 cond:4 111010 rs1:5 1 ------ i:7 21930376636SRichard Henderson 22030376636SRichard Henderson # For v9, bits [12:11] are cc1 and cc0 (and cc0 must be 0). 22130376636SRichard Henderson # Bits [10:8] are reserved and the OSA2011 manual says they must be 0. 22230376636SRichard Henderson Tcc_i_v9 10 0 cond:4 111010 rs1:5 1 cc:1 0 000 i:8 22330376636SRichard Henderson} 224fb4ed7aaSRichard Henderson 225fb4ed7aaSRichard HendersonMOVcc 10 rd:5 101100 1 cond:4 imm:1 cc:1 0 rs2_or_imm:s11 226fb4ed7aaSRichard HendersonMOVfcc 10 rd:5 101100 0 cond:4 imm:1 cc:2 rs2_or_imm:s11 227fb4ed7aaSRichard HendersonMOVR 10 rd:5 101111 rs1:5 imm:1 cond:3 rs2_or_imm:s10 228d3c7e8adSRichard Henderson 22986b82fe0SRichard HendersonJMPL 10 ..... 111000 ..... . ............. @r_r_ri 23086b82fe0SRichard Henderson{ 23186b82fe0SRichard Henderson RETT 10 00000 111001 ..... . ............. @n_r_ri 23286b82fe0SRichard Henderson RETURN 10 00000 111001 ..... . ............. @n_r_ri 23386b82fe0SRichard Henderson} 234d3825800SRichard HendersonNOP 10 00000 111011 ----- 0 00000000----- # FLUSH reg+reg 235d3825800SRichard HendersonNOP 10 00000 111011 ----- 1 ------------- # FLUSH reg+imm 236d3825800SRichard HendersonSAVE 10 ..... 111100 ..... . ............. @r_r_ri 237d3825800SRichard HendersonRESTORE 10 ..... 111101 ..... . ............. @r_r_ri 23886b82fe0SRichard Henderson 2398f75b8a4SRichard HendersonDONE 10 00000 111110 00000 0 0000000000000 2408f75b8a4SRichard HendersonRETRY 10 00001 111110 00000 0 0000000000000 2418f75b8a4SRichard Henderson 242baf3dbf2SRichard HendersonFMOVs 10 ..... 110100 00000 0 0000 0001 ..... @r_r2 243c6d83e4fSRichard HendersonFMOVd 10 ..... 110100 00000 0 0000 0010 ..... @r_r2 244baf3dbf2SRichard HendersonFNEGs 10 ..... 110100 00000 0 0000 0101 ..... @r_r2 245c6d83e4fSRichard HendersonFNEGd 10 ..... 110100 00000 0 0000 0110 ..... @r_r2 246baf3dbf2SRichard HendersonFABSs 10 ..... 110100 00000 0 0000 1001 ..... @r_r2 247c6d83e4fSRichard HendersonFABSd 10 ..... 110100 00000 0 0000 1010 ..... @r_r2 248119cb94fSRichard HendersonFSQRTs 10 ..... 110100 00000 0 0010 1001 ..... @r_r2 2498aa418b3SRichard HendersonFSQRTd 10 ..... 110100 00000 0 0010 1010 ..... @r_r2 250c995216bSRichard HendersonFSQRTq 10 ..... 110100 00000 0 0010 1011 ..... @r_r2 251c1514961SRichard HendersonFADDs 10 ..... 110100 ..... 0 0100 0001 ..... @r_r_r 252f2a59b0aSRichard HendersonFADDd 10 ..... 110100 ..... 0 0100 0010 ..... @r_r_r 253a4056239SRichard HendersonFADDq 10 ..... 110100 ..... 0 0100 0011 ..... @r_r_r 254c1514961SRichard HendersonFSUBs 10 ..... 110100 ..... 0 0100 0101 ..... @r_r_r 255f2a59b0aSRichard HendersonFSUBd 10 ..... 110100 ..... 0 0100 0110 ..... @r_r_r 256a4056239SRichard HendersonFSUBq 10 ..... 110100 ..... 0 0100 0111 ..... @r_r_r 257c1514961SRichard HendersonFMULs 10 ..... 110100 ..... 0 0100 1001 ..... @r_r_r 258f2a59b0aSRichard HendersonFMULd 10 ..... 110100 ..... 0 0100 1010 ..... @r_r_r 259a4056239SRichard HendersonFMULq 10 ..... 110100 ..... 0 0100 1011 ..... @r_r_r 260c1514961SRichard HendersonFDIVs 10 ..... 110100 ..... 0 0100 1101 ..... @r_r_r 261f2a59b0aSRichard HendersonFDIVd 10 ..... 110100 ..... 0 0100 1110 ..... @r_r_r 262a4056239SRichard HendersonFDIVq 10 ..... 110100 ..... 0 0100 1111 ..... @r_r_r 263ff4c711bSRichard HendersonFsMULd 10 ..... 110100 ..... 0 0110 1001 ..... @r_r_r 2645e3b17bbSRichard HendersonFdMULq 10 ..... 110100 ..... 0 0110 1110 ..... @r_r_r 2658aa418b3SRichard HendersonFdTOx 10 ..... 110100 00000 0 1000 0010 ..... @r_r2 266*8c94bcd8SRichard HendersonFxTOs 10 ..... 110100 00000 0 1000 0100 ..... @r_r2 2678aa418b3SRichard HendersonFxTOd 10 ..... 110100 00000 0 1000 1000 ..... @r_r2 268119cb94fSRichard HendersonFiTOs 10 ..... 110100 00000 0 1100 0100 ..... @r_r2 269*8c94bcd8SRichard HendersonFdTOs 10 ..... 110100 00000 0 1100 0110 ..... @r_r2 270119cb94fSRichard HendersonFsTOi 10 ..... 110100 00000 0 1101 0001 ..... @r_r2 271*8c94bcd8SRichard HendersonFdTOi 10 ..... 110100 00000 0 1101 0010 ..... @r_r2 272baf3dbf2SRichard Henderson 273b88ce6f2SRichard Henderson{ 274b88ce6f2SRichard Henderson [ 275b88ce6f2SRichard Henderson EDGE8cc 10 ..... 110110 ..... 0 0000 0000 ..... @r_r_r 276b88ce6f2SRichard Henderson EDGE8N 10 ..... 110110 ..... 0 0000 0001 ..... @r_r_r 277b88ce6f2SRichard Henderson EDGE8Lcc 10 ..... 110110 ..... 0 0000 0010 ..... @r_r_r 278b88ce6f2SRichard Henderson EDGE8LN 10 ..... 110110 ..... 0 0000 0011 ..... @r_r_r 279b88ce6f2SRichard Henderson EDGE16cc 10 ..... 110110 ..... 0 0000 0100 ..... @r_r_r 280b88ce6f2SRichard Henderson EDGE16N 10 ..... 110110 ..... 0 0000 0101 ..... @r_r_r 281b88ce6f2SRichard Henderson EDGE16Lcc 10 ..... 110110 ..... 0 0000 0110 ..... @r_r_r 282b88ce6f2SRichard Henderson EDGE16LN 10 ..... 110110 ..... 0 0000 0111 ..... @r_r_r 283b88ce6f2SRichard Henderson EDGE32cc 10 ..... 110110 ..... 0 0000 1000 ..... @r_r_r 284b88ce6f2SRichard Henderson EDGE32N 10 ..... 110110 ..... 0 0000 1001 ..... @r_r_r 285b88ce6f2SRichard Henderson EDGE32Lcc 10 ..... 110110 ..... 0 0000 1010 ..... @r_r_r 286b88ce6f2SRichard Henderson EDGE32LN 10 ..... 110110 ..... 0 0000 1011 ..... @r_r_r 28745bfed3bSRichard Henderson 28845bfed3bSRichard Henderson ARRAY8 10 ..... 110110 ..... 0 0001 0000 ..... @r_r_r 28945bfed3bSRichard Henderson ARRAY16 10 ..... 110110 ..... 0 0001 0010 ..... @r_r_r 29045bfed3bSRichard Henderson ARRAY32 10 ..... 110110 ..... 0 0001 0100 ..... @r_r_r 2919e20ca94SRichard Henderson 2929e20ca94SRichard Henderson ALIGNADDR 10 ..... 110110 ..... 0 0001 1000 ..... @r_r_r 2939e20ca94SRichard Henderson ALIGNADDRL 10 ..... 110110 ..... 0 0001 1010 ..... @r_r_r 29439ca3490SRichard Henderson 29539ca3490SRichard Henderson BMASK 10 ..... 110110 ..... 0 0001 1001 ..... @r_r_r 296baf3dbf2SRichard Henderson 297e06c9f83SRichard Henderson FMUL8x16 10 ..... 110110 ..... 0 0011 0001 ..... @r_r_r 298e06c9f83SRichard Henderson FMUL8x16AU 10 ..... 110110 ..... 0 0011 0011 ..... @r_r_r 299e06c9f83SRichard Henderson FMUL8x16AL 10 ..... 110110 ..... 0 0011 0101 ..... @r_r_r 300e06c9f83SRichard Henderson FMUL8SUx16 10 ..... 110110 ..... 0 0011 0110 ..... @r_r_r 301e06c9f83SRichard Henderson FMUL8ULx16 10 ..... 110110 ..... 0 0011 0111 ..... @r_r_r 302e06c9f83SRichard Henderson FMULD8SUx16 10 ..... 110110 ..... 0 0011 1000 ..... @r_r_r 303e06c9f83SRichard Henderson FMULD8ULx16 10 ..... 110110 ..... 0 0011 1001 ..... @r_r_r 3044b6edc0aSRichard Henderson FPACK32 10 ..... 110110 ..... 0 0011 1010 ..... @r_r_r 305afb04344SRichard Henderson PDIST 10 ..... 110110 ..... 0 0011 1110 ..... @r_r_r 306e06c9f83SRichard Henderson 3074b6edc0aSRichard Henderson FALIGNDATAg 10 ..... 110110 ..... 0 0100 1000 ..... @r_r_r 308e06c9f83SRichard Henderson FPMERGE 10 ..... 110110 ..... 0 0100 1011 ..... @r_r_r 3094b6edc0aSRichard Henderson BSHUFFLE 10 ..... 110110 ..... 0 0100 1100 ..... @r_r_r 310e06c9f83SRichard Henderson FEXPAND 10 ..... 110110 ..... 0 0100 1101 ..... @r_r_r 311e06c9f83SRichard Henderson 312c6d83e4fSRichard Henderson FSRCd 10 ..... 110110 ..... 0 0111 0100 00000 @r_r1 # FSRC1d 313baf3dbf2SRichard Henderson FSRCs 10 ..... 110110 ..... 0 0111 0101 00000 @r_r1 # FSRC1s 314c6d83e4fSRichard Henderson FSRCd 10 ..... 110110 00000 0 0111 1000 ..... @r_r2 # FSRC2d 315baf3dbf2SRichard Henderson FSRCs 10 ..... 110110 00000 0 0111 1001 ..... @r_r2 # FSRC2s 316c6d83e4fSRichard Henderson FNOTd 10 ..... 110110 ..... 0 0110 1010 00000 @r_r1 # FNOT1d 317baf3dbf2SRichard Henderson FNOTs 10 ..... 110110 ..... 0 0110 1011 00000 @r_r1 # FNOT1s 318c6d83e4fSRichard Henderson FNOTd 10 ..... 110110 00000 0 0110 0110 ..... @r_r2 # FNOT2d 319baf3dbf2SRichard Henderson FNOTs 10 ..... 110110 00000 0 0110 0111 ..... @r_r2 # FNOT2s 3207f10b52fSRichard Henderson 321e06c9f83SRichard Henderson FPADD16 10 ..... 110110 ..... 0 0101 0000 ..... @r_r_r 3227f10b52fSRichard Henderson FPADD16s 10 ..... 110110 ..... 0 0101 0001 ..... @r_r_r 323e06c9f83SRichard Henderson FPADD32 10 ..... 110110 ..... 0 0101 0010 ..... @r_r_r 3247f10b52fSRichard Henderson FPADD32s 10 ..... 110110 ..... 0 0101 0011 ..... @r_r_r 325e06c9f83SRichard Henderson FPSUB16 10 ..... 110110 ..... 0 0101 0100 ..... @r_r_r 3267f10b52fSRichard Henderson FPSUB16s 10 ..... 110110 ..... 0 0101 0101 ..... @r_r_r 327e06c9f83SRichard Henderson FPSUB32 10 ..... 110110 ..... 0 0101 0110 ..... @r_r_r 3287f10b52fSRichard Henderson FPSUB32s 10 ..... 110110 ..... 0 0101 0111 ..... @r_r_r 329e06c9f83SRichard Henderson 330e06c9f83SRichard Henderson FNORd 10 ..... 110110 ..... 0 0110 0010 ..... @r_r_r 3317f10b52fSRichard Henderson FNORs 10 ..... 110110 ..... 0 0110 0011 ..... @r_r_r 332e06c9f83SRichard Henderson FANDNOTd 10 ..... 110110 ..... 0 0110 0100 ..... @r_r_r # FANDNOT2d 3337f10b52fSRichard Henderson FANDNOTs 10 ..... 110110 ..... 0 0110 0101 ..... @r_r_r # FANDNOT2s 334e06c9f83SRichard Henderson FANDNOTd 10 ..... 110110 ..... 0 0110 1000 ..... @r_r_r_swap # ... 1d 3357f10b52fSRichard Henderson FANDNOTs 10 ..... 110110 ..... 0 0110 1001 ..... @r_r_r_swap # ... 1s 336e06c9f83SRichard Henderson FXORd 10 ..... 110110 ..... 0 0110 1100 ..... @r_r_r 3377f10b52fSRichard Henderson FXORs 10 ..... 110110 ..... 0 0110 1101 ..... @r_r_r 338e06c9f83SRichard Henderson FNANDd 10 ..... 110110 ..... 0 0110 1110 ..... @r_r_r 3397f10b52fSRichard Henderson FNANDs 10 ..... 110110 ..... 0 0110 1111 ..... @r_r_r 340e06c9f83SRichard Henderson FANDd 10 ..... 110110 ..... 0 0111 0000 ..... @r_r_r 3417f10b52fSRichard Henderson FANDs 10 ..... 110110 ..... 0 0111 0001 ..... @r_r_r 342e06c9f83SRichard Henderson FXNORd 10 ..... 110110 ..... 0 0111 0010 ..... @r_r_r 3437f10b52fSRichard Henderson FXNORs 10 ..... 110110 ..... 0 0111 0011 ..... @r_r_r 344e06c9f83SRichard Henderson FORNOTd 10 ..... 110110 ..... 0 0111 0110 ..... @r_r_r # FORNOT2d 3457f10b52fSRichard Henderson FORNOTs 10 ..... 110110 ..... 0 0111 0111 ..... @r_r_r # FORNOT2s 346e06c9f83SRichard Henderson FORNOTd 10 ..... 110110 ..... 0 0111 1010 ..... @r_r_r_swap # ... 1d 3477f10b52fSRichard Henderson FORNOTs 10 ..... 110110 ..... 0 0111 1011 ..... @r_r_r_swap # ... 1s 348e06c9f83SRichard Henderson FORd 10 ..... 110110 ..... 0 0111 1100 ..... @r_r_r 3497f10b52fSRichard Henderson FORs 10 ..... 110110 ..... 0 0111 1101 ..... @r_r_r 350b88ce6f2SRichard Henderson ] 3515458fd31SRichard Henderson NCP 10 ----- 110110 ----- --------- ----- # v8 CPop1 352b88ce6f2SRichard Henderson} 353b88ce6f2SRichard Henderson 3545458fd31SRichard HendersonNCP 10 ----- 110111 ----- --------- ----- # v8 CPop2 3555458fd31SRichard Henderson 3560880d20bSRichard Henderson## 3570880d20bSRichard Henderson## Major Opcode 11 -- load and store instructions 3580880d20bSRichard Henderson## 3590880d20bSRichard Henderson 36006c060d9SRichard Henderson%dfp_rd 25:5 !function=extract_dfpreg 36106c060d9SRichard Henderson%qfp_rd 25:5 !function=extract_qfpreg 36206c060d9SRichard Henderson 3630880d20bSRichard Henderson&r_r_ri_asi rd rs1 rs2_or_imm asi imm:bool 3640880d20bSRichard Henderson@r_r_ri_na .. rd:5 ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri_asi asi=-1 36506c060d9SRichard Henderson@d_r_ri_na .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13 \ 36606c060d9SRichard Henderson &r_r_ri_asi rd=%dfp_rd asi=-1 36706c060d9SRichard Henderson@q_r_ri_na .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13 \ 36806c060d9SRichard Henderson &r_r_ri_asi rd=%qfp_rd asi=-1 36906c060d9SRichard Henderson 37042071fc1SRichard Henderson@r_r_r_asi .. rd:5 ...... rs1:5 0 asi:8 rs2_or_imm:5 &r_r_ri_asi imm=0 37142071fc1SRichard Henderson@r_r_i_asi .. rd:5 ...... rs1:5 1 rs2_or_imm:s13 \ 37242071fc1SRichard Henderson &r_r_ri_asi imm=1 asi=-2 373287b1152SRichard Henderson@d_r_r_asi .. ..... ...... rs1:5 0 asi:8 rs2_or_imm:5 \ 374287b1152SRichard Henderson &r_r_ri_asi rd=%dfp_rd imm=0 375287b1152SRichard Henderson@d_r_i_asi .. ..... ...... rs1:5 1 rs2_or_imm:s13 \ 376287b1152SRichard Henderson &r_r_ri_asi rd=%dfp_rd imm=1 asi=-2 377287b1152SRichard Henderson@q_r_r_asi .. ..... ...... rs1:5 0 asi:8 rs2_or_imm:5 \ 378287b1152SRichard Henderson &r_r_ri_asi rd=%qfp_rd imm=0 379287b1152SRichard Henderson@q_r_i_asi .. ..... ...... rs1:5 1 rs2_or_imm:s13 \ 380287b1152SRichard Henderson &r_r_ri_asi rd=%qfp_rd imm=1 asi=-2 381d0a11d25SRichard Henderson@casa_imm .. rd:5 ...... rs1:5 1 00000000 rs2_or_imm:5 \ 382d0a11d25SRichard Henderson &r_r_ri_asi imm=1 asi=-2 3830880d20bSRichard Henderson 3840880d20bSRichard HendersonLDUW 11 ..... 000000 ..... . ............. @r_r_ri_na 3850880d20bSRichard HendersonLDUB 11 ..... 000001 ..... . ............. @r_r_ri_na 3860880d20bSRichard HendersonLDUH 11 ..... 000010 ..... . ............. @r_r_ri_na 3870880d20bSRichard HendersonLDD 11 ..... 000011 ..... . ............. @r_r_ri_na 3880880d20bSRichard HendersonLDSW 11 ..... 001000 ..... . ............. @r_r_ri_na 3890880d20bSRichard HendersonLDSB 11 ..... 001001 ..... . ............. @r_r_ri_na 3900880d20bSRichard HendersonLDSH 11 ..... 001010 ..... . ............. @r_r_ri_na 3910880d20bSRichard HendersonLDX 11 ..... 001011 ..... . ............. @r_r_ri_na 3920880d20bSRichard Henderson 3930880d20bSRichard HendersonSTW 11 ..... 000100 ..... . ............. @r_r_ri_na 3940880d20bSRichard HendersonSTB 11 ..... 000101 ..... . ............. @r_r_ri_na 3950880d20bSRichard HendersonSTH 11 ..... 000110 ..... . ............. @r_r_ri_na 3960880d20bSRichard HendersonSTD 11 ..... 000111 ..... . ............. @r_r_ri_na 3970880d20bSRichard HendersonSTX 11 ..... 001110 ..... . ............. @r_r_ri_na 3980880d20bSRichard Henderson 39942071fc1SRichard HendersonLDUW 11 ..... 010000 ..... . ............. @r_r_r_asi # LDUWA 40042071fc1SRichard HendersonLDUW 11 ..... 010000 ..... . ............. @r_r_i_asi # LDUWA 40142071fc1SRichard HendersonLDUB 11 ..... 010001 ..... . ............. @r_r_r_asi # LDUBA 40242071fc1SRichard HendersonLDUB 11 ..... 010001 ..... . ............. @r_r_i_asi # LDUBA 40342071fc1SRichard HendersonLDUH 11 ..... 010010 ..... . ............. @r_r_r_asi # LDUHA 40442071fc1SRichard HendersonLDUH 11 ..... 010010 ..... . ............. @r_r_i_asi # LDUHA 40542071fc1SRichard HendersonLDD 11 ..... 010011 ..... . ............. @r_r_r_asi # LDDA 40642071fc1SRichard HendersonLDD 11 ..... 010011 ..... . ............. @r_r_i_asi # LDDA 40742071fc1SRichard HendersonLDX 11 ..... 011011 ..... . ............. @r_r_r_asi # LDXA 40842071fc1SRichard HendersonLDX 11 ..... 011011 ..... . ............. @r_r_i_asi # LDXA 40942071fc1SRichard HendersonLDSB 11 ..... 011001 ..... . ............. @r_r_r_asi # LDSBA 41042071fc1SRichard HendersonLDSB 11 ..... 011001 ..... . ............. @r_r_i_asi # LDSBA 41142071fc1SRichard HendersonLDSH 11 ..... 011010 ..... . ............. @r_r_r_asi # LDSHA 41242071fc1SRichard HendersonLDSH 11 ..... 011010 ..... . ............. @r_r_i_asi # LDSHA 41342071fc1SRichard HendersonLDSW 11 ..... 011000 ..... . ............. @r_r_r_asi # LDSWA 41442071fc1SRichard HendersonLDSW 11 ..... 011000 ..... . ............. @r_r_i_asi # LDSWA 41542071fc1SRichard Henderson 41642071fc1SRichard HendersonSTW 11 ..... 010100 ..... . ............. @r_r_r_asi # STWA 41742071fc1SRichard HendersonSTW 11 ..... 010100 ..... . ............. @r_r_i_asi # STWA 41842071fc1SRichard HendersonSTB 11 ..... 010101 ..... . ............. @r_r_r_asi # STBA 41942071fc1SRichard HendersonSTB 11 ..... 010101 ..... . ............. @r_r_i_asi # STBA 42042071fc1SRichard HendersonSTH 11 ..... 010110 ..... . ............. @r_r_r_asi # STHA 42142071fc1SRichard HendersonSTH 11 ..... 010110 ..... . ............. @r_r_i_asi # STHA 42242071fc1SRichard HendersonSTD 11 ..... 010111 ..... . ............. @r_r_r_asi # STDA 42342071fc1SRichard HendersonSTD 11 ..... 010111 ..... . ............. @r_r_i_asi # STDA 42442071fc1SRichard HendersonSTX 11 ..... 011110 ..... . ............. @r_r_r_asi # STXA 42542071fc1SRichard HendersonSTX 11 ..... 011110 ..... . ............. @r_r_i_asi # STXA 42642071fc1SRichard Henderson 42706c060d9SRichard HendersonLDF 11 ..... 100000 ..... . ............. @r_r_ri_na 4283d3c0673SRichard HendersonLDFSR 11 00000 100001 ..... . ............. @n_r_ri 4293d3c0673SRichard HendersonLDXFSR 11 00001 100001 ..... . ............. @n_r_ri 43006c060d9SRichard HendersonLDQF 11 ..... 100010 ..... . ............. @q_r_ri_na 43106c060d9SRichard HendersonLDDF 11 ..... 100011 ..... . ............. @d_r_ri_na 43206c060d9SRichard Henderson 43306c060d9SRichard HendersonSTF 11 ..... 100100 ..... . ............. @r_r_ri_na 4343d3c0673SRichard HendersonSTFSR 11 00000 100101 ..... . ............. @n_r_ri 4353d3c0673SRichard HendersonSTXFSR 11 00001 100101 ..... . ............. @n_r_ri 43606c060d9SRichard Henderson{ 43706c060d9SRichard Henderson STQF 11 ..... 100110 ..... . ............. @q_r_ri_na 43806c060d9SRichard Henderson STDFQ 11 ----- 100110 ----- - ------------- 43906c060d9SRichard Henderson} 44006c060d9SRichard HendersonSTDF 11 ..... 100111 ..... . ............. @d_r_ri_na 44106c060d9SRichard Henderson 442cf07cd1eSRichard HendersonLDSTUB 11 ..... 001101 ..... . ............. @r_r_ri_na 443cf07cd1eSRichard HendersonLDSTUB 11 ..... 011101 ..... . ............. @r_r_r_asi # LDSTUBA 444cf07cd1eSRichard HendersonLDSTUB 11 ..... 011101 ..... . ............. @r_r_i_asi # LDSTUBA 445cf07cd1eSRichard Henderson 446dca544b9SRichard HendersonSWAP 11 ..... 001111 ..... . ............. @r_r_ri_na 447dca544b9SRichard HendersonSWAP 11 ..... 011111 ..... . ............. @r_r_r_asi # SWAPA 448dca544b9SRichard HendersonSWAP 11 ..... 011111 ..... . ............. @r_r_i_asi # SWAPA 449dca544b9SRichard Henderson 450d0a11d25SRichard HendersonCASA 11 ..... 111100 ..... . ............. @r_r_r_asi 451d0a11d25SRichard HendersonCASA 11 ..... 111100 ..... . ............. @casa_imm 452d0a11d25SRichard HendersonCASXA 11 ..... 111110 ..... . ............. @r_r_r_asi 453d0a11d25SRichard HendersonCASXA 11 ..... 111110 ..... . ............. @casa_imm 454d0a11d25SRichard Henderson 4555458fd31SRichard HendersonNOP_v9 11 ----- 101101 ----- 0 00000000 ----- # PREFETCH 4565458fd31SRichard HendersonNOP_v9 11 ----- 101101 ----- 1 ------------- # PREFETCH 4575458fd31SRichard HendersonNOP_v9 11 ----- 111101 ----- - ------------- # PREFETCHA 458d3c7e8adSRichard Henderson 459287b1152SRichard Henderson{ 460287b1152SRichard Henderson [ 461287b1152SRichard Henderson LDFA 11 ..... 110000 ..... . ............. @r_r_r_asi 462287b1152SRichard Henderson LDFA 11 ..... 110000 ..... . ............. @r_r_i_asi 463287b1152SRichard Henderson ] 464d3c7e8adSRichard Henderson NCP 11 ----- 110000 ----- --------- ----- # v8 LDC 465287b1152SRichard Henderson} 466d3c7e8adSRichard HendersonNCP 11 ----- 110001 ----- --------- ----- # v8 LDCSR 467287b1152SRichard HendersonLDQFA 11 ..... 110010 ..... . ............. @q_r_r_asi 468287b1152SRichard HendersonLDQFA 11 ..... 110010 ..... . ............. @q_r_i_asi 469287b1152SRichard Henderson{ 470287b1152SRichard Henderson [ 471287b1152SRichard Henderson LDDFA 11 ..... 110011 ..... . ............. @d_r_r_asi 472287b1152SRichard Henderson LDDFA 11 ..... 110011 ..... . ............. @d_r_i_asi 473287b1152SRichard Henderson ] 474d3c7e8adSRichard Henderson NCP 11 ----- 110011 ----- --------- ----- # v8 LDDC 475287b1152SRichard Henderson} 476287b1152SRichard Henderson 477287b1152SRichard Henderson{ 478287b1152SRichard Henderson [ 479287b1152SRichard Henderson STFA 11 ..... 110100 ..... . ............. @r_r_r_asi 480287b1152SRichard Henderson STFA 11 ..... 110100 ..... . ............. @r_r_i_asi 481287b1152SRichard Henderson ] 482d3c7e8adSRichard Henderson NCP 11 ----- 110100 ----- --------- ----- # v8 STC 483287b1152SRichard Henderson} 484d3c7e8adSRichard HendersonNCP 11 ----- 110101 ----- --------- ----- # v8 STCSR 485287b1152SRichard Henderson{ 486287b1152SRichard Henderson [ 487287b1152SRichard Henderson STQFA 11 ..... 110110 ..... . ............. @q_r_r_asi 488287b1152SRichard Henderson STQFA 11 ..... 110110 ..... . ............. @q_r_i_asi 489287b1152SRichard Henderson ] 490d3c7e8adSRichard Henderson NCP 11 ----- 110110 ----- --------- ----- # v8 STDCQ 491287b1152SRichard Henderson} 492287b1152SRichard Henderson{ 493287b1152SRichard Henderson [ 494287b1152SRichard Henderson STDFA 11 ..... 110111 ..... . ............. @d_r_r_asi 495287b1152SRichard Henderson STDFA 11 ..... 110111 ..... . ............. @d_r_i_asi 496287b1152SRichard Henderson ] 497d3c7e8adSRichard Henderson NCP 11 ----- 110111 ----- --------- ----- # v8 STDC 498287b1152SRichard Henderson} 499