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 250*c995216bSRichard HendersonFSQRTq 10 ..... 110100 00000 0 0010 1011 ..... @r_r2 2518aa418b3SRichard HendersonFdTOx 10 ..... 110100 00000 0 1000 0010 ..... @r_r2 2528aa418b3SRichard HendersonFxTOd 10 ..... 110100 00000 0 1000 1000 ..... @r_r2 253119cb94fSRichard HendersonFiTOs 10 ..... 110100 00000 0 1100 0100 ..... @r_r2 254119cb94fSRichard HendersonFsTOi 10 ..... 110100 00000 0 1101 0001 ..... @r_r2 255baf3dbf2SRichard Henderson 256b88ce6f2SRichard Henderson{ 257b88ce6f2SRichard Henderson [ 258b88ce6f2SRichard Henderson EDGE8cc 10 ..... 110110 ..... 0 0000 0000 ..... @r_r_r 259b88ce6f2SRichard Henderson EDGE8N 10 ..... 110110 ..... 0 0000 0001 ..... @r_r_r 260b88ce6f2SRichard Henderson EDGE8Lcc 10 ..... 110110 ..... 0 0000 0010 ..... @r_r_r 261b88ce6f2SRichard Henderson EDGE8LN 10 ..... 110110 ..... 0 0000 0011 ..... @r_r_r 262b88ce6f2SRichard Henderson EDGE16cc 10 ..... 110110 ..... 0 0000 0100 ..... @r_r_r 263b88ce6f2SRichard Henderson EDGE16N 10 ..... 110110 ..... 0 0000 0101 ..... @r_r_r 264b88ce6f2SRichard Henderson EDGE16Lcc 10 ..... 110110 ..... 0 0000 0110 ..... @r_r_r 265b88ce6f2SRichard Henderson EDGE16LN 10 ..... 110110 ..... 0 0000 0111 ..... @r_r_r 266b88ce6f2SRichard Henderson EDGE32cc 10 ..... 110110 ..... 0 0000 1000 ..... @r_r_r 267b88ce6f2SRichard Henderson EDGE32N 10 ..... 110110 ..... 0 0000 1001 ..... @r_r_r 268b88ce6f2SRichard Henderson EDGE32Lcc 10 ..... 110110 ..... 0 0000 1010 ..... @r_r_r 269b88ce6f2SRichard Henderson EDGE32LN 10 ..... 110110 ..... 0 0000 1011 ..... @r_r_r 27045bfed3bSRichard Henderson 27145bfed3bSRichard Henderson ARRAY8 10 ..... 110110 ..... 0 0001 0000 ..... @r_r_r 27245bfed3bSRichard Henderson ARRAY16 10 ..... 110110 ..... 0 0001 0010 ..... @r_r_r 27345bfed3bSRichard Henderson ARRAY32 10 ..... 110110 ..... 0 0001 0100 ..... @r_r_r 2749e20ca94SRichard Henderson 2759e20ca94SRichard Henderson ALIGNADDR 10 ..... 110110 ..... 0 0001 1000 ..... @r_r_r 2769e20ca94SRichard Henderson ALIGNADDRL 10 ..... 110110 ..... 0 0001 1010 ..... @r_r_r 27739ca3490SRichard Henderson 27839ca3490SRichard Henderson BMASK 10 ..... 110110 ..... 0 0001 1001 ..... @r_r_r 279baf3dbf2SRichard Henderson 280e06c9f83SRichard Henderson FMUL8x16 10 ..... 110110 ..... 0 0011 0001 ..... @r_r_r 281e06c9f83SRichard Henderson FMUL8x16AU 10 ..... 110110 ..... 0 0011 0011 ..... @r_r_r 282e06c9f83SRichard Henderson FMUL8x16AL 10 ..... 110110 ..... 0 0011 0101 ..... @r_r_r 283e06c9f83SRichard Henderson FMUL8SUx16 10 ..... 110110 ..... 0 0011 0110 ..... @r_r_r 284e06c9f83SRichard Henderson FMUL8ULx16 10 ..... 110110 ..... 0 0011 0111 ..... @r_r_r 285e06c9f83SRichard Henderson FMULD8SUx16 10 ..... 110110 ..... 0 0011 1000 ..... @r_r_r 286e06c9f83SRichard Henderson FMULD8ULx16 10 ..... 110110 ..... 0 0011 1001 ..... @r_r_r 2874b6edc0aSRichard Henderson FPACK32 10 ..... 110110 ..... 0 0011 1010 ..... @r_r_r 288afb04344SRichard Henderson PDIST 10 ..... 110110 ..... 0 0011 1110 ..... @r_r_r 289e06c9f83SRichard Henderson 2904b6edc0aSRichard Henderson FALIGNDATAg 10 ..... 110110 ..... 0 0100 1000 ..... @r_r_r 291e06c9f83SRichard Henderson FPMERGE 10 ..... 110110 ..... 0 0100 1011 ..... @r_r_r 2924b6edc0aSRichard Henderson BSHUFFLE 10 ..... 110110 ..... 0 0100 1100 ..... @r_r_r 293e06c9f83SRichard Henderson FEXPAND 10 ..... 110110 ..... 0 0100 1101 ..... @r_r_r 294e06c9f83SRichard Henderson 295c6d83e4fSRichard Henderson FSRCd 10 ..... 110110 ..... 0 0111 0100 00000 @r_r1 # FSRC1d 296baf3dbf2SRichard Henderson FSRCs 10 ..... 110110 ..... 0 0111 0101 00000 @r_r1 # FSRC1s 297c6d83e4fSRichard Henderson FSRCd 10 ..... 110110 00000 0 0111 1000 ..... @r_r2 # FSRC2d 298baf3dbf2SRichard Henderson FSRCs 10 ..... 110110 00000 0 0111 1001 ..... @r_r2 # FSRC2s 299c6d83e4fSRichard Henderson FNOTd 10 ..... 110110 ..... 0 0110 1010 00000 @r_r1 # FNOT1d 300baf3dbf2SRichard Henderson FNOTs 10 ..... 110110 ..... 0 0110 1011 00000 @r_r1 # FNOT1s 301c6d83e4fSRichard Henderson FNOTd 10 ..... 110110 00000 0 0110 0110 ..... @r_r2 # FNOT2d 302baf3dbf2SRichard Henderson FNOTs 10 ..... 110110 00000 0 0110 0111 ..... @r_r2 # FNOT2s 3037f10b52fSRichard Henderson 304e06c9f83SRichard Henderson FPADD16 10 ..... 110110 ..... 0 0101 0000 ..... @r_r_r 3057f10b52fSRichard Henderson FPADD16s 10 ..... 110110 ..... 0 0101 0001 ..... @r_r_r 306e06c9f83SRichard Henderson FPADD32 10 ..... 110110 ..... 0 0101 0010 ..... @r_r_r 3077f10b52fSRichard Henderson FPADD32s 10 ..... 110110 ..... 0 0101 0011 ..... @r_r_r 308e06c9f83SRichard Henderson FPSUB16 10 ..... 110110 ..... 0 0101 0100 ..... @r_r_r 3097f10b52fSRichard Henderson FPSUB16s 10 ..... 110110 ..... 0 0101 0101 ..... @r_r_r 310e06c9f83SRichard Henderson FPSUB32 10 ..... 110110 ..... 0 0101 0110 ..... @r_r_r 3117f10b52fSRichard Henderson FPSUB32s 10 ..... 110110 ..... 0 0101 0111 ..... @r_r_r 312e06c9f83SRichard Henderson 313e06c9f83SRichard Henderson FNORd 10 ..... 110110 ..... 0 0110 0010 ..... @r_r_r 3147f10b52fSRichard Henderson FNORs 10 ..... 110110 ..... 0 0110 0011 ..... @r_r_r 315e06c9f83SRichard Henderson FANDNOTd 10 ..... 110110 ..... 0 0110 0100 ..... @r_r_r # FANDNOT2d 3167f10b52fSRichard Henderson FANDNOTs 10 ..... 110110 ..... 0 0110 0101 ..... @r_r_r # FANDNOT2s 317e06c9f83SRichard Henderson FANDNOTd 10 ..... 110110 ..... 0 0110 1000 ..... @r_r_r_swap # ... 1d 3187f10b52fSRichard Henderson FANDNOTs 10 ..... 110110 ..... 0 0110 1001 ..... @r_r_r_swap # ... 1s 319e06c9f83SRichard Henderson FXORd 10 ..... 110110 ..... 0 0110 1100 ..... @r_r_r 3207f10b52fSRichard Henderson FXORs 10 ..... 110110 ..... 0 0110 1101 ..... @r_r_r 321e06c9f83SRichard Henderson FNANDd 10 ..... 110110 ..... 0 0110 1110 ..... @r_r_r 3227f10b52fSRichard Henderson FNANDs 10 ..... 110110 ..... 0 0110 1111 ..... @r_r_r 323e06c9f83SRichard Henderson FANDd 10 ..... 110110 ..... 0 0111 0000 ..... @r_r_r 3247f10b52fSRichard Henderson FANDs 10 ..... 110110 ..... 0 0111 0001 ..... @r_r_r 325e06c9f83SRichard Henderson FXNORd 10 ..... 110110 ..... 0 0111 0010 ..... @r_r_r 3267f10b52fSRichard Henderson FXNORs 10 ..... 110110 ..... 0 0111 0011 ..... @r_r_r 327e06c9f83SRichard Henderson FORNOTd 10 ..... 110110 ..... 0 0111 0110 ..... @r_r_r # FORNOT2d 3287f10b52fSRichard Henderson FORNOTs 10 ..... 110110 ..... 0 0111 0111 ..... @r_r_r # FORNOT2s 329e06c9f83SRichard Henderson FORNOTd 10 ..... 110110 ..... 0 0111 1010 ..... @r_r_r_swap # ... 1d 3307f10b52fSRichard Henderson FORNOTs 10 ..... 110110 ..... 0 0111 1011 ..... @r_r_r_swap # ... 1s 331e06c9f83SRichard Henderson FORd 10 ..... 110110 ..... 0 0111 1100 ..... @r_r_r 3327f10b52fSRichard Henderson FORs 10 ..... 110110 ..... 0 0111 1101 ..... @r_r_r 333b88ce6f2SRichard Henderson ] 3345458fd31SRichard Henderson NCP 10 ----- 110110 ----- --------- ----- # v8 CPop1 335b88ce6f2SRichard Henderson} 336b88ce6f2SRichard Henderson 3375458fd31SRichard HendersonNCP 10 ----- 110111 ----- --------- ----- # v8 CPop2 3385458fd31SRichard Henderson 3390880d20bSRichard Henderson## 3400880d20bSRichard Henderson## Major Opcode 11 -- load and store instructions 3410880d20bSRichard Henderson## 3420880d20bSRichard Henderson 34306c060d9SRichard Henderson%dfp_rd 25:5 !function=extract_dfpreg 34406c060d9SRichard Henderson%qfp_rd 25:5 !function=extract_qfpreg 34506c060d9SRichard Henderson 3460880d20bSRichard Henderson&r_r_ri_asi rd rs1 rs2_or_imm asi imm:bool 3470880d20bSRichard Henderson@r_r_ri_na .. rd:5 ...... rs1:5 imm:1 rs2_or_imm:s13 &r_r_ri_asi asi=-1 34806c060d9SRichard Henderson@d_r_ri_na .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13 \ 34906c060d9SRichard Henderson &r_r_ri_asi rd=%dfp_rd asi=-1 35006c060d9SRichard Henderson@q_r_ri_na .. ..... ...... rs1:5 imm:1 rs2_or_imm:s13 \ 35106c060d9SRichard Henderson &r_r_ri_asi rd=%qfp_rd asi=-1 35206c060d9SRichard Henderson 35342071fc1SRichard Henderson@r_r_r_asi .. rd:5 ...... rs1:5 0 asi:8 rs2_or_imm:5 &r_r_ri_asi imm=0 35442071fc1SRichard Henderson@r_r_i_asi .. rd:5 ...... rs1:5 1 rs2_or_imm:s13 \ 35542071fc1SRichard Henderson &r_r_ri_asi imm=1 asi=-2 356287b1152SRichard Henderson@d_r_r_asi .. ..... ...... rs1:5 0 asi:8 rs2_or_imm:5 \ 357287b1152SRichard Henderson &r_r_ri_asi rd=%dfp_rd imm=0 358287b1152SRichard Henderson@d_r_i_asi .. ..... ...... rs1:5 1 rs2_or_imm:s13 \ 359287b1152SRichard Henderson &r_r_ri_asi rd=%dfp_rd imm=1 asi=-2 360287b1152SRichard Henderson@q_r_r_asi .. ..... ...... rs1:5 0 asi:8 rs2_or_imm:5 \ 361287b1152SRichard Henderson &r_r_ri_asi rd=%qfp_rd imm=0 362287b1152SRichard Henderson@q_r_i_asi .. ..... ...... rs1:5 1 rs2_or_imm:s13 \ 363287b1152SRichard Henderson &r_r_ri_asi rd=%qfp_rd imm=1 asi=-2 364d0a11d25SRichard Henderson@casa_imm .. rd:5 ...... rs1:5 1 00000000 rs2_or_imm:5 \ 365d0a11d25SRichard Henderson &r_r_ri_asi imm=1 asi=-2 3660880d20bSRichard Henderson 3670880d20bSRichard HendersonLDUW 11 ..... 000000 ..... . ............. @r_r_ri_na 3680880d20bSRichard HendersonLDUB 11 ..... 000001 ..... . ............. @r_r_ri_na 3690880d20bSRichard HendersonLDUH 11 ..... 000010 ..... . ............. @r_r_ri_na 3700880d20bSRichard HendersonLDD 11 ..... 000011 ..... . ............. @r_r_ri_na 3710880d20bSRichard HendersonLDSW 11 ..... 001000 ..... . ............. @r_r_ri_na 3720880d20bSRichard HendersonLDSB 11 ..... 001001 ..... . ............. @r_r_ri_na 3730880d20bSRichard HendersonLDSH 11 ..... 001010 ..... . ............. @r_r_ri_na 3740880d20bSRichard HendersonLDX 11 ..... 001011 ..... . ............. @r_r_ri_na 3750880d20bSRichard Henderson 3760880d20bSRichard HendersonSTW 11 ..... 000100 ..... . ............. @r_r_ri_na 3770880d20bSRichard HendersonSTB 11 ..... 000101 ..... . ............. @r_r_ri_na 3780880d20bSRichard HendersonSTH 11 ..... 000110 ..... . ............. @r_r_ri_na 3790880d20bSRichard HendersonSTD 11 ..... 000111 ..... . ............. @r_r_ri_na 3800880d20bSRichard HendersonSTX 11 ..... 001110 ..... . ............. @r_r_ri_na 3810880d20bSRichard Henderson 38242071fc1SRichard HendersonLDUW 11 ..... 010000 ..... . ............. @r_r_r_asi # LDUWA 38342071fc1SRichard HendersonLDUW 11 ..... 010000 ..... . ............. @r_r_i_asi # LDUWA 38442071fc1SRichard HendersonLDUB 11 ..... 010001 ..... . ............. @r_r_r_asi # LDUBA 38542071fc1SRichard HendersonLDUB 11 ..... 010001 ..... . ............. @r_r_i_asi # LDUBA 38642071fc1SRichard HendersonLDUH 11 ..... 010010 ..... . ............. @r_r_r_asi # LDUHA 38742071fc1SRichard HendersonLDUH 11 ..... 010010 ..... . ............. @r_r_i_asi # LDUHA 38842071fc1SRichard HendersonLDD 11 ..... 010011 ..... . ............. @r_r_r_asi # LDDA 38942071fc1SRichard HendersonLDD 11 ..... 010011 ..... . ............. @r_r_i_asi # LDDA 39042071fc1SRichard HendersonLDX 11 ..... 011011 ..... . ............. @r_r_r_asi # LDXA 39142071fc1SRichard HendersonLDX 11 ..... 011011 ..... . ............. @r_r_i_asi # LDXA 39242071fc1SRichard HendersonLDSB 11 ..... 011001 ..... . ............. @r_r_r_asi # LDSBA 39342071fc1SRichard HendersonLDSB 11 ..... 011001 ..... . ............. @r_r_i_asi # LDSBA 39442071fc1SRichard HendersonLDSH 11 ..... 011010 ..... . ............. @r_r_r_asi # LDSHA 39542071fc1SRichard HendersonLDSH 11 ..... 011010 ..... . ............. @r_r_i_asi # LDSHA 39642071fc1SRichard HendersonLDSW 11 ..... 011000 ..... . ............. @r_r_r_asi # LDSWA 39742071fc1SRichard HendersonLDSW 11 ..... 011000 ..... . ............. @r_r_i_asi # LDSWA 39842071fc1SRichard Henderson 39942071fc1SRichard HendersonSTW 11 ..... 010100 ..... . ............. @r_r_r_asi # STWA 40042071fc1SRichard HendersonSTW 11 ..... 010100 ..... . ............. @r_r_i_asi # STWA 40142071fc1SRichard HendersonSTB 11 ..... 010101 ..... . ............. @r_r_r_asi # STBA 40242071fc1SRichard HendersonSTB 11 ..... 010101 ..... . ............. @r_r_i_asi # STBA 40342071fc1SRichard HendersonSTH 11 ..... 010110 ..... . ............. @r_r_r_asi # STHA 40442071fc1SRichard HendersonSTH 11 ..... 010110 ..... . ............. @r_r_i_asi # STHA 40542071fc1SRichard HendersonSTD 11 ..... 010111 ..... . ............. @r_r_r_asi # STDA 40642071fc1SRichard HendersonSTD 11 ..... 010111 ..... . ............. @r_r_i_asi # STDA 40742071fc1SRichard HendersonSTX 11 ..... 011110 ..... . ............. @r_r_r_asi # STXA 40842071fc1SRichard HendersonSTX 11 ..... 011110 ..... . ............. @r_r_i_asi # STXA 40942071fc1SRichard Henderson 41006c060d9SRichard HendersonLDF 11 ..... 100000 ..... . ............. @r_r_ri_na 4113d3c0673SRichard HendersonLDFSR 11 00000 100001 ..... . ............. @n_r_ri 4123d3c0673SRichard HendersonLDXFSR 11 00001 100001 ..... . ............. @n_r_ri 41306c060d9SRichard HendersonLDQF 11 ..... 100010 ..... . ............. @q_r_ri_na 41406c060d9SRichard HendersonLDDF 11 ..... 100011 ..... . ............. @d_r_ri_na 41506c060d9SRichard Henderson 41606c060d9SRichard HendersonSTF 11 ..... 100100 ..... . ............. @r_r_ri_na 4173d3c0673SRichard HendersonSTFSR 11 00000 100101 ..... . ............. @n_r_ri 4183d3c0673SRichard HendersonSTXFSR 11 00001 100101 ..... . ............. @n_r_ri 41906c060d9SRichard Henderson{ 42006c060d9SRichard Henderson STQF 11 ..... 100110 ..... . ............. @q_r_ri_na 42106c060d9SRichard Henderson STDFQ 11 ----- 100110 ----- - ------------- 42206c060d9SRichard Henderson} 42306c060d9SRichard HendersonSTDF 11 ..... 100111 ..... . ............. @d_r_ri_na 42406c060d9SRichard Henderson 425cf07cd1eSRichard HendersonLDSTUB 11 ..... 001101 ..... . ............. @r_r_ri_na 426cf07cd1eSRichard HendersonLDSTUB 11 ..... 011101 ..... . ............. @r_r_r_asi # LDSTUBA 427cf07cd1eSRichard HendersonLDSTUB 11 ..... 011101 ..... . ............. @r_r_i_asi # LDSTUBA 428cf07cd1eSRichard Henderson 429dca544b9SRichard HendersonSWAP 11 ..... 001111 ..... . ............. @r_r_ri_na 430dca544b9SRichard HendersonSWAP 11 ..... 011111 ..... . ............. @r_r_r_asi # SWAPA 431dca544b9SRichard HendersonSWAP 11 ..... 011111 ..... . ............. @r_r_i_asi # SWAPA 432dca544b9SRichard Henderson 433d0a11d25SRichard HendersonCASA 11 ..... 111100 ..... . ............. @r_r_r_asi 434d0a11d25SRichard HendersonCASA 11 ..... 111100 ..... . ............. @casa_imm 435d0a11d25SRichard HendersonCASXA 11 ..... 111110 ..... . ............. @r_r_r_asi 436d0a11d25SRichard HendersonCASXA 11 ..... 111110 ..... . ............. @casa_imm 437d0a11d25SRichard Henderson 4385458fd31SRichard HendersonNOP_v9 11 ----- 101101 ----- 0 00000000 ----- # PREFETCH 4395458fd31SRichard HendersonNOP_v9 11 ----- 101101 ----- 1 ------------- # PREFETCH 4405458fd31SRichard HendersonNOP_v9 11 ----- 111101 ----- - ------------- # PREFETCHA 441d3c7e8adSRichard Henderson 442287b1152SRichard Henderson{ 443287b1152SRichard Henderson [ 444287b1152SRichard Henderson LDFA 11 ..... 110000 ..... . ............. @r_r_r_asi 445287b1152SRichard Henderson LDFA 11 ..... 110000 ..... . ............. @r_r_i_asi 446287b1152SRichard Henderson ] 447d3c7e8adSRichard Henderson NCP 11 ----- 110000 ----- --------- ----- # v8 LDC 448287b1152SRichard Henderson} 449d3c7e8adSRichard HendersonNCP 11 ----- 110001 ----- --------- ----- # v8 LDCSR 450287b1152SRichard HendersonLDQFA 11 ..... 110010 ..... . ............. @q_r_r_asi 451287b1152SRichard HendersonLDQFA 11 ..... 110010 ..... . ............. @q_r_i_asi 452287b1152SRichard Henderson{ 453287b1152SRichard Henderson [ 454287b1152SRichard Henderson LDDFA 11 ..... 110011 ..... . ............. @d_r_r_asi 455287b1152SRichard Henderson LDDFA 11 ..... 110011 ..... . ............. @d_r_i_asi 456287b1152SRichard Henderson ] 457d3c7e8adSRichard Henderson NCP 11 ----- 110011 ----- --------- ----- # v8 LDDC 458287b1152SRichard Henderson} 459287b1152SRichard Henderson 460287b1152SRichard Henderson{ 461287b1152SRichard Henderson [ 462287b1152SRichard Henderson STFA 11 ..... 110100 ..... . ............. @r_r_r_asi 463287b1152SRichard Henderson STFA 11 ..... 110100 ..... . ............. @r_r_i_asi 464287b1152SRichard Henderson ] 465d3c7e8adSRichard Henderson NCP 11 ----- 110100 ----- --------- ----- # v8 STC 466287b1152SRichard Henderson} 467d3c7e8adSRichard HendersonNCP 11 ----- 110101 ----- --------- ----- # v8 STCSR 468287b1152SRichard Henderson{ 469287b1152SRichard Henderson [ 470287b1152SRichard Henderson STQFA 11 ..... 110110 ..... . ............. @q_r_r_asi 471287b1152SRichard Henderson STQFA 11 ..... 110110 ..... . ............. @q_r_i_asi 472287b1152SRichard Henderson ] 473d3c7e8adSRichard Henderson NCP 11 ----- 110110 ----- --------- ----- # v8 STDCQ 474287b1152SRichard Henderson} 475287b1152SRichard Henderson{ 476287b1152SRichard Henderson [ 477287b1152SRichard Henderson STDFA 11 ..... 110111 ..... . ............. @d_r_r_asi 478287b1152SRichard Henderson STDFA 11 ..... 110111 ..... . ............. @d_r_i_asi 479287b1152SRichard Henderson ] 480d3c7e8adSRichard Henderson NCP 11 ----- 110111 ----- --------- ----- # v8 STDC 481287b1152SRichard Henderson} 482