From e3c2f928b8f9afce6fdedaa1ddedfaa1d305aa9d Mon Sep 17 00:00:00 2001 From: Alexander Fedotov Date: Mon, 21 Aug 2017 15:45:59 +0300 Subject: [PATCH] [PowerPC VLE] Add LSP (Lightweight Signal Processing) instruction support include/ * opcode/ppc.h (PPC_OPCODE_LSP): New define. opcodes/ * ppc-opc.c (insert_evuimm2_ex0): New function. (extract_evuimm2_ex0): Likewise. (insert_evuimm4_ex0): Likewise. (extract_evuimm4_ex0): Likewise. (insert_evuimm8_ex0): Likewise. (extract_evuimm8_ex0): Likewise. (insert_evuimm_lt16): Likewise. (extract_evuimm_lt16): Likewise. (insert_rD_rS_even): Likewise. (extract_rD_rS_even): Likewise. (insert_off_lsp): Likewise. (extract_off_lsp): Likewise. (RD_EVEN): New operand. (RS_EVEN): Likewise. (RSQ): Adjust. (EVUIMM_LT16): New operand. (HTM_SI): Adjust. (EVUIMM_2_EX0): New operand. (EVUIMM_4): Adjust. (EVUIMM_4_EX0): New operand. (EVUIMM_8): Adjust. (EVUIMM_8_EX0): New operand. (WS): Adjust. (VX_OFF): New operand. (VX_LSP): New macro. (VX_LSP_MASK): Likewise. (VX_LSP_OFF_MASK): Likewise. (PPC_OPCODE_LSP): Likewise. (vle_opcodes): Add LSP opcodes. * ppc-dis.c (ppc_mopt): Add PPC_OPCODE_LSP flag to "vle" entry. gas/ * testsuite/gas/ppc/lsp-checks.d, * testsuite/gas/ppc/lsp-checks.l, * testsuite/gas/ppc/lsp-checks.s: New test. * testsuite/gas/ppc/lsp.d, * testsuite/gas/ppc/lsp.s: New test. * testsuite/gas/ppc/ppc.exp: Run new tests. --- gas/ChangeLog | 10 + gas/testsuite/gas/ppc/lsp-checks.d | 3 + gas/testsuite/gas/ppc/lsp-checks.l | 92 +++ gas/testsuite/gas/ppc/lsp-checks.s | 112 ++++ gas/testsuite/gas/ppc/lsp.d | 687 ++++++++++++++++++++++ gas/testsuite/gas/ppc/lsp.s | 694 ++++++++++++++++++++++ gas/testsuite/gas/ppc/ppc.exp | 5 + include/ChangeLog | 5 + include/opcode/ppc.h | 3 + opcodes/ChangeLog | 34 ++ opcodes/ppc-dis.c | 2 +- opcodes/ppc-opc.c | 890 ++++++++++++++++++++++++++++- 12 files changed, 2531 insertions(+), 6 deletions(-) create mode 100644 gas/testsuite/gas/ppc/lsp-checks.d create mode 100644 gas/testsuite/gas/ppc/lsp-checks.l create mode 100644 gas/testsuite/gas/ppc/lsp-checks.s create mode 100644 gas/testsuite/gas/ppc/lsp.d create mode 100644 gas/testsuite/gas/ppc/lsp.s diff --git a/gas/ChangeLog b/gas/ChangeLog index cdfa036e624..1f44c82fdac 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,13 @@ +2017-08-21 Alexander Fedotov + Edmar Wienskoski * config/tc-aarch64.c (REGDEF_ALIAS): Define diff --git a/gas/testsuite/gas/ppc/lsp-checks.d b/gas/testsuite/gas/ppc/lsp-checks.d new file mode 100644 index 00000000000..a91e09d09ce --- /dev/null +++ b/gas/testsuite/gas/ppc/lsp-checks.d @@ -0,0 +1,3 @@ +#name: Test LSP operands checks +#as: -mvle +#error-output: lsp-checks.l diff --git a/gas/testsuite/gas/ppc/lsp-checks.l b/gas/testsuite/gas/ppc/lsp-checks.l new file mode 100644 index 00000000000..db2eff7f904 --- /dev/null +++ b/gas/testsuite/gas/ppc/lsp-checks.l @@ -0,0 +1,92 @@ +[^:]*: Assembler messages: +[^:]*:22: Error: invalid offset +[^:]*:23: Error: UIMM values >15 are illegal +[^:]*:24: Error: UIMM values >15 are illegal +[^:]*:25: Error: UIMM values >15 are illegal +[^:]*:26: Error: UIMM values >15 are illegal +[^:]*:27: Error: UIMM values >15 are illegal +[^:]*:28: Error: UIMM values >15 are illegal +[^:]*:29: Error: GPR odd is illegal +[^:]*:30: Error: operand out of domain \(7 is not a multiple of 8\) +[^:]*:31: Error: GPR odd is illegal +[^:]*:32: Error: operand out of domain \(7 is not a multiple of 8\) +[^:]*:33: Error: GPR odd is illegal +[^:]*:34: Error: operand out of domain \(7 is not a multiple of 8\) +[^:]*:35: Error: GPR odd is illegal +[^:]*:36: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:37: Error: GPR odd is illegal +[^:]*:38: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:39: Error: GPR odd is illegal +[^:]*:40: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:41: Error: GPR odd is illegal +[^:]*:42: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:43: Error: GPR odd is illegal +[^:]*:44: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:45: Error: GPR odd is illegal +[^:]*:46: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:47: Error: GPR odd is illegal +[^:]*:48: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:49: Error: GPR odd is illegal +[^:]*:50: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:51: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:52: Error: operand out of domain \(3 is not a multiple of 2\) +[^:]*:53: Error: operand out of domain \(3 is not a multiple of 2\) +[^:]*:54: Error: GPR odd is illegal +[^:]*:55: Error: operand out of domain \(7 is not a multiple of 8\) +[^:]*:56: Error: GPR odd is illegal +[^:]*:57: Error: operand out of domain \(7 is not a multiple of 8\) +[^:]*:58: Error: GPR odd is illegal +[^:]*:59: Error: operand out of domain \(7 is not a multiple of 8\) +[^:]*:60: Error: GPR odd is illegal +[^:]*:61: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:62: Error: GPR odd is illegal +[^:]*:63: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:64: Error: operand out of domain \(3 is not a multiple of 2\) +[^:]*:65: Error: operand out of domain \(3 is not a multiple of 2\) +[^:]*:66: Error: operand out of domain \(3 is not a multiple of 2\) +[^:]*:67: Error: operand out of domain \(3 is not a multiple of 2\) +[^:]*:68: Error: operand out of domain \(3 is not a multiple of 2\) +[^:]*:69: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:70: Error: operand out of domain \(3 is not a multiple of 4\) +[^:]*:71: Error: GPR odd is illegal +[^:]*:72: Error: UIMM = 00000 is illegal +[^:]*:73: Error: GPR odd is illegal +[^:]*:74: Error: UIMM = 00000 is illegal +[^:]*:75: Error: GPR odd is illegal +[^:]*:76: Error: UIMM = 00000 is illegal +[^:]*:77: Error: GPR odd is illegal +[^:]*:78: Error: UIMM = 00000 is illegal +[^:]*:79: Error: GPR odd is illegal +[^:]*:80: Error: UIMM = 00000 is illegal +[^:]*:81: Error: GPR odd is illegal +[^:]*:82: Error: UIMM = 00000 is illegal +[^:]*:83: Error: GPR odd is illegal +[^:]*:84: Error: UIMM = 00000 is illegal +[^:]*:85: Error: GPR odd is illegal +[^:]*:86: Error: UIMM = 00000 is illegal +[^:]*:87: Error: GPR odd is illegal +[^:]*:88: Error: UIMM = 00000 is illegal +[^:]*:89: Error: GPR odd is illegal +[^:]*:90: Error: UIMM = 00000 is illegal +[^:]*:91: Error: GPR odd is illegal +[^:]*:92: Error: UIMM = 00000 is illegal +[^:]*:93: Error: UIMM = 00000 is illegal +[^:]*:94: Error: UIMM = 00000 is illegal +[^:]*:95: Error: UIMM = 00000 is illegal +[^:]*:96: Error: UIMM = 00000 is illegal +[^:]*:97: Error: UIMM = 00000 is illegal +[^:]*:98: Error: GPR odd is illegal +[^:]*:99: Error: UIMM = 00000 is illegal +[^:]*:100: Error: GPR odd is illegal +[^:]*:101: Error: UIMM = 00000 is illegal +[^:]*:102: Error: GPR odd is illegal +[^:]*:103: Error: UIMM = 00000 is illegal +[^:]*:104: Error: GPR odd is illegal +[^:]*:105: Error: UIMM = 00000 is illegal +[^:]*:106: Error: UIMM = 00000 is illegal +[^:]*:107: Error: UIMM = 00000 is illegal +[^:]*:108: Error: UIMM = 00000 is illegal +[^:]*:109: Error: UIMM = 00000 is illegal +[^:]*:110: Error: UIMM = 00000 is illegal +[^:]*:111: Error: UIMM = 00000 is illegal +[^:]*:112: Error: UIMM = 00000 is illegal diff --git a/gas/testsuite/gas/ppc/lsp-checks.s b/gas/testsuite/gas/ppc/lsp-checks.s new file mode 100644 index 00000000000..479eede3cb7 --- /dev/null +++ b/gas/testsuite/gas/ppc/lsp-checks.s @@ -0,0 +1,112 @@ +# Test PA LSP operands checks + .section ".text" + + .equ rA,1 + .equ rB,2 + .equ rD,0 ;# ok + .equ rD_odd, 1 ;# GPR odd is illegal + .equ rS,0 ;# ok + .equ rS_odd, 1 ;# GPR odd is illegal + .equ UIMM_GT15, 16 ;# UIMM values >15 are illegal + .equ UIMM_2, 2 ;# ok + .equ UIMM_2_ILL, 3 ;# 3 is not a multiple of 2 + .equ UIMM_2_ZERO, 0 ;# UIMM = 00000 is illegal if U=1 + .equ UIMM_4, 4 ;# ok + .equ UIMM_4_ILL, 3 ;# 3 is not a multiple of 4 + .equ UIMM_4_ZERO, 0 ;# UIMM = 00000 is illegal if U=1 + .equ UIMM_8, 8 ;# ok + .equ UIMM_8_ILL, 7 ;# 7 is not a multiple of 8 + .equ UIMM_8_ZERO, 0 ;# UIMM = 00000 is illegal if U=1 + .equ offset, 0 ;# invalid offset + + zxtrw rD, rA, rB, offset + zvsrhiu rD, rA, UIMM_GT15 + zvsrhis rD, rA, UIMM_GT15 + zvslhi rD, rA, UIMM_GT15 + zvrlhi rD, rA, UIMM_GT15 + zvslhius rD, rA, UIMM_GT15 + zvslhiss rD, rA, UIMM_GT15 + zldd rD_odd, UIMM_8(rA) + zldd rD, UIMM_8_ILL(rA) + zldw rD_odd, UIMM_8(rA) + zldw rD, UIMM_8_ILL(rA) + zldh rD_odd, UIMM_8(rA) + zldh rD, UIMM_8_ILL(rA) + zlwgsfd rD_odd, UIMM_4(rA) + zlwgsfd rD, UIMM_4_ILL(rA) + zlwwosd rD_odd, UIMM_4(rA) + zlwwosd rD, UIMM_4_ILL(rA) + zlwhsplatwd rD_odd, UIMM_4(rA) + zlwhsplatwd rD, UIMM_4_ILL(rA) + zlwhsplatd rD_odd, UIMM_4(rA) + zlwhsplatd rD, UIMM_4_ILL(rA) + zlwhgwsfd rD_odd, UIMM_4(rA) + zlwhgwsfd rD, UIMM_4_ILL(rA) + zlwhed rD_odd, UIMM_4(rA) + zlwhed rD, UIMM_4_ILL(rA) + zlwhosd rD_odd, UIMM_4(rA) + zlwhosd rD, UIMM_4_ILL(rA) + zlwhoud rD_odd, UIMM_4(rA) + zlwh rD, UIMM_4_ILL(rA) + zlww rD, UIMM_4_ILL(rA) + zlhgwsf rD, UIMM_2_ILL(rA) + zlhhsplat rD, UIMM_2_ILL(rA) + zstdd rS_odd, UIMM_8(rA) + zstdd rS, UIMM_8_ILL(rA) + zstdw rS_odd, UIMM_8(rA) + zstdw rS, UIMM_8_ILL(rA) + zstdh rS_odd, UIMM_8(rA) + zstdh rS, UIMM_8_ILL(rA) + zstwhed rS_odd, UIMM_4(rA) + zstwhed rS, UIMM_4_ILL(rA) + zstwhod rS_odd, UIMM_4(rA) + zstwhod rS, UIMM_4_ILL(rA) + zlhhe rD, UIMM_2_ILL(rA) + zlhhos rD, UIMM_2_ILL(rA) + zlhhou rD, UIMM_2_ILL(rA) + zsthe rS, UIMM_2_ILL(rA) + zstho rS, UIMM_2_ILL(rA) + zstwh rS, UIMM_4_ILL(rA) + zstww rS, UIMM_4_ILL(rA) + zlddu rD_odd, UIMM_8(rA) + zlddu rD, UIMM_8_ZERO(rA) + zldwu rD_odd, UIMM_8(rA) + zldwu rD, UIMM_8_ZERO(rA) + zldhu rD_odd, UIMM_8(rA) + zldhu rD, UIMM_8_ZERO(rA) + zlwgsfdu rD_odd, UIMM_4(rA) + zlwgsfdu rD, UIMM_4_ZERO(rA) + zlwwosdu rD_odd, UIMM_4(rA) + zlwwosdu rD, UIMM_4_ZERO(rA) + zlwhsplatwdu rD_odd, UIMM_4(rA) + zlwhsplatwdu rD, UIMM_4_ZERO(rA) + zlwhsplatdu rD_odd, UIMM_4(rA) + zlwhsplatdu rD, UIMM_4_ZERO(rA) + zlwhgwsfdu rD_odd, UIMM_4(rA) + zlwhgwsfdu rD, UIMM_4_ZERO(rA) + zlwhedu rD_odd, UIMM_4(rA) + zlwhedu rD, UIMM_4_ZERO(rA) + zlwhosdu rD_odd, UIMM_4(rA) + zlwhosdu rD, UIMM_4_ZERO(rA) + zlwhoudu rD_odd, UIMM_4(rA) + zlwhoudu rD, UIMM_4_ZERO(rA) + zlwhu rD, UIMM_4_ZERO(rA) + zlwwu rD, UIMM_4_ZERO(rA) + zlhgwsfu rD, UIMM_2_ZERO(rA) + zlhhsplatu rD, UIMM_2_ZERO(rA) + zstddu rS, UIMM_8_ZERO(rA) + zstdwu rS_odd, UIMM_8(rA) + zstdwu rS, UIMM_8_ZERO(rA) + zstdhu rS_odd, UIMM_8(rA) + zstdhu rS, UIMM_8_ZERO(rA) + zstwhedu rS_odd, UIMM_4(rA) + zstwhedu rS, UIMM_4_ZERO(rA) + zstwhodu rS_odd, UIMM_4(rA) + zstwhodu rS, UIMM_4_ZERO(rA) + zlhheu rD, UIMM_2_ZERO(rA) + zlhhosu rD, UIMM_2_ZERO(rA) + zlhhouu rD, UIMM_2_ZERO(rA) + zstheu rS, UIMM_2_ZERO(rA) + zsthou rS, UIMM_2_ZERO(rA) + zstwhu rS, UIMM_4_ZERO(rA) + zstwwu rS, UIMM_4_ZERO(rA) diff --git a/gas/testsuite/gas/ppc/lsp.d b/gas/testsuite/gas/ppc/lsp.d new file mode 100644 index 00000000000..c9fb4762e39 --- /dev/null +++ b/gas/testsuite/gas/ppc/lsp.d @@ -0,0 +1,687 @@ +#as: -mvle +#objdump: -d -Mvle +#name: Validate LSP instructions + +.*: +file format elf.*-powerpc.* + +Disassembly of section .text: + +00000000 <.text>: + 0: 10 01 7a 00 zvaddih r0,r1,15 + 4: 10 01 7a 01 zvsubifh r0,r1,15 + 8: 10 01 12 04 zvaddh r0,r1,r2 + c: 10 01 12 05 zvsubfh r0,r1,r2 + 10: 10 01 12 06 zvaddsubfh r0,r1,r2 + 14: 10 01 12 07 zvsubfaddh r0,r1,r2 + 18: 10 01 12 0c zvaddhx r0,r1,r2 + 1c: 10 01 12 0d zvsubfhx r0,r1,r2 + 20: 10 01 12 0e zvaddsubfhx r0,r1,r2 + 24: 10 01 12 0f zvsubfaddhx r0,r1,r2 + 28: 10 01 12 10 zaddwus r0,r1,r2 + 2c: 10 01 12 11 zsubfwus r0,r1,r2 + 30: 10 01 12 12 zaddwss r0,r1,r2 + 34: 10 01 12 13 zsubfwss r0,r1,r2 + 38: 10 01 12 14 zvaddhus r0,r1,r2 + 3c: 10 01 12 15 zvsubfhus r0,r1,r2 + 40: 10 01 12 16 zvaddhss r0,r1,r2 + 44: 10 01 12 17 zvsubfhss r0,r1,r2 + 48: 10 01 12 1a zvaddsubfhss r0,r1,r2 + 4c: 10 01 12 1b zvsubfaddhss r0,r1,r2 + 50: 10 01 12 1c zvaddhxss r0,r1,r2 + 54: 10 01 12 1d zvsubfhxss r0,r1,r2 + 58: 10 01 12 1e zvaddsubfhxss r0,r1,r2 + 5c: 10 01 12 1f zvsubfaddhxss r0,r1,r2 + 60: 10 01 12 20 zaddheuw r0,r1,r2 + 64: 10 01 12 21 zsubfheuw r0,r1,r2 + 68: 10 01 12 22 zaddhesw r0,r1,r2 + 6c: 10 01 12 23 zsubfhesw r0,r1,r2 + 70: 10 01 12 24 zaddhouw r0,r1,r2 + 74: 10 01 12 25 zsubfhouw r0,r1,r2 + 78: 10 01 12 26 zaddhosw r0,r1,r2 + 7c: 10 01 12 27 zsubfhosw r0,r1,r2 + 80: 10 01 12 2c zvmergehih r0,r1,r2 + 84: 10 01 12 2d zvmergeloh r0,r1,r2 + 88: 10 01 12 2e zvmergehiloh r0,r1,r2 + 8c: 10 01 12 2f zvmergelohih r0,r1,r2 + 90: 10 01 12 30 zvcmpgthu cr0,r1,r2 + 94: 10 01 12 30 zvcmpgthu cr0,r1,r2 + 98: 10 01 12 31 zvcmplthu cr0,r1,r2 + 9c: 10 01 12 31 zvcmplthu cr0,r1,r2 + a0: 10 01 12 32 zvcmpeqh cr0,r1,r2 + a4: 10 01 12 38 zpkswgshfrs r0,r1,r2 + a8: 10 01 12 39 zpkswgswfrs r0,r1,r2 + ac: 10 01 12 3a zvpkshgwshfrs r0,r1,r2 + b0: 10 01 12 3b zvpkswshfrs r0,r1,r2 + b4: 10 01 12 3c zvpkswuhs r0,r1,r2 + b8: 10 01 12 3d zvpkswshs r0,r1,r2 + bc: 10 01 12 3e zvpkuwuhs r0,r1,r2 + c0: 10 10 02 3f zvsplatih r0,-16 + c4: 10 10 0a 3f zvsplatfih r0,-16 + c8: 10 01 2a 3f zcntlsw r0,r1 + cc: 10 01 32 3f zvcntlzh r0,r1 + d0: 10 01 3a 3f zvcntlsh r0,r1 + d4: 10 01 4a 3f znegws r0,r1 + d8: 10 01 52 3f zvnegh r0,r1 + dc: 10 01 5a 3f zvneghs r0,r1 + e0: 10 01 62 3f zvnegho r0,r1 + e4: 10 01 6a 3f zvneghos r0,r1 + e8: 10 01 82 3f zrndwh r0,r1 + ec: 10 01 8a 3f zrndwhss r0,r1 + f0: 10 01 a2 3f zvabsh r0,r1 + f4: 10 01 aa 3f zvabshs r0,r1 + f8: 10 01 b2 3f zabsw r0,r1 + fc: 10 01 ba 3f zabsws r0,r1 + 100: 10 01 c2 3f zsatswuw r0,r1 + 104: 10 01 ca 3f zsatuwsw r0,r1 + 108: 10 01 d2 3f zsatswuh r0,r1 + 10c: 10 01 da 3f zsatswsh r0,r1 + 110: 10 01 e2 3f zvsatshuh r0,r1 + 114: 10 01 ea 3f zvsatuhsh r0,r1 + 118: 10 01 f2 3f zsatuwuh r0,r1 + 11c: 10 01 fa 3f zsatuwsh r0,r1 + 120: 10 01 12 60 zsatsduw r0,r1,r2 + 124: 10 01 12 61 zsatsdsw r0,r1,r2 + 128: 10 01 12 62 zsatuduw r0,r1,r2 + 12c: 10 01 12 64 zvselh r0,r1,r2 + 130: 10 01 12 65 zxtrw r0,r1,r2,1 + 134: 10 01 12 68 zbrminc r0,r1,r2 + 138: 10 01 12 69 zcircinc r0,r1,r2 + 13c: 10 01 12 6b zdivwsf r0,r1,r2 + 140: 10 01 12 70 zvsrhu r0,r1,r2 + 144: 10 01 12 71 zvsrhs r0,r1,r2 + 148: 10 01 7a 72 zvsrhiu r0,r1,15 + 14c: 10 01 7a 73 zvsrhis r0,r1,15 + 150: 10 01 12 74 zvslh r0,r1,r2 + 154: 10 01 12 75 zvrlh r0,r1,r2 + 158: 10 01 7a 76 zvslhi r0,r1,15 + 15c: 10 01 7a 77 zvrlhi r0,r1,15 + 160: 10 01 12 78 zvslhus r0,r1,r2 + 164: 10 01 12 79 zvslhss r0,r1,r2 + 168: 10 01 7a 7a zvslhius r0,r1,15 + 16c: 10 01 7a 7b zvslhiss r0,r1,15 + 170: 10 01 12 7c zslwus r0,r1,r2 + 174: 10 01 12 7d zslwss r0,r1,r2 + 178: 10 01 7a 7e zslwius r0,r1,15 + 17c: 10 01 7a 7f zslwiss r0,r1,15 + 180: 10 01 14 60 zaddwgui r0,r1,r2 + 184: 10 01 14 61 zsubfwgui r0,r1,r2 + 188: 10 01 14 62 zaddd r0,r1,r2 + 18c: 10 01 14 63 zsubfd r0,r1,r2 + 190: 10 01 14 64 zvaddsubfw r0,r1,r2 + 194: 10 01 14 65 zvsubfaddw r0,r1,r2 + 198: 10 01 14 66 zvaddw r0,r1,r2 + 19c: 10 01 14 67 zvsubfw r0,r1,r2 + 1a0: 10 01 14 68 zaddwgsi r0,r1,r2 + 1a4: 10 01 14 69 zsubfwgsi r0,r1,r2 + 1a8: 10 01 14 6a zadddss r0,r1,r2 + 1ac: 10 01 14 6b zsubfdss r0,r1,r2 + 1b0: 10 01 14 6c zvaddsubfwss r0,r1,r2 + 1b4: 10 01 14 6d zvsubfaddwss r0,r1,r2 + 1b8: 10 01 14 6e zvaddwss r0,r1,r2 + 1bc: 10 01 14 6f zvsubfwss r0,r1,r2 + 1c0: 10 01 14 70 zaddwgsf r0,r1,r2 + 1c4: 10 01 14 71 zsubfwgsf r0,r1,r2 + 1c8: 10 01 14 72 zadddus r0,r1,r2 + 1cc: 10 01 14 73 zsubfdus r0,r1,r2 + 1d0: 10 01 14 76 zvaddwus r0,r1,r2 + 1d4: 10 01 14 77 zvsubfwus r0,r1,r2 + 1d8: 10 01 04 78 zvunpkhgwsf r0,r1 + 1dc: 10 01 0c 78 zvunpkhsf r0,r1 + 1e0: 10 01 14 78 zvunpkhui r0,r1 + 1e4: 10 01 1c 78 zvunpkhsi r0,r1 + 1e8: 10 01 24 78 zunpkwgsf r0,r1 + 1ec: 10 01 14 88 zvdotphgwasmf r0,r1,r2 + 1f0: 10 01 14 89 zvdotphgwasmfr r0,r1,r2 + 1f4: 10 01 14 8a zvdotphgwasmfaa r0,r1,r2 + 1f8: 10 01 14 8b zvdotphgwasmfraa r0,r1,r2 + 1fc: 10 01 14 8c zvdotphgwasmfan r0,r1,r2 + 200: 10 01 14 8d zvdotphgwasmfran r0,r1,r2 + 204: 10 01 14 90 zvmhulgwsmf r0,r1,r2 + 208: 10 01 14 91 zvmhulgwsmfr r0,r1,r2 + 20c: 10 01 14 92 zvmhulgwsmfaa r0,r1,r2 + 210: 10 01 14 93 zvmhulgwsmfraa r0,r1,r2 + 214: 10 01 14 94 zvmhulgwsmfan r0,r1,r2 + 218: 10 01 14 95 zvmhulgwsmfran r0,r1,r2 + 21c: 10 01 14 96 zvmhulgwsmfanp r0,r1,r2 + 220: 10 01 14 97 zvmhulgwsmfranp r0,r1,r2 + 224: 10 01 14 98 zmhegwsmf r0,r1,r2 + 228: 10 01 14 99 zmhegwsmfr r0,r1,r2 + 22c: 10 01 14 9a zmhegwsmfaa r0,r1,r2 + 230: 10 01 14 9b zmhegwsmfraa r0,r1,r2 + 234: 10 01 14 9c zmhegwsmfan r0,r1,r2 + 238: 10 01 14 9d zmhegwsmfran r0,r1,r2 + 23c: 10 01 14 a8 zvdotphxgwasmf r0,r1,r2 + 240: 10 01 14 a9 zvdotphxgwasmfr r0,r1,r2 + 244: 10 01 14 aa zvdotphxgwasmfaa r0,r1,r2 + 248: 10 01 14 ab zvdotphxgwasmfraa r0,r1,r2 + 24c: 10 01 14 ac zvdotphxgwasmfan r0,r1,r2 + 250: 10 01 14 ad zvdotphxgwasmfran r0,r1,r2 + 254: 10 01 14 b0 zvmhllgwsmf r0,r1,r2 + 258: 10 01 14 b1 zvmhllgwsmfr r0,r1,r2 + 25c: 10 01 14 b2 zvmhllgwsmfaa r0,r1,r2 + 260: 10 01 14 b3 zvmhllgwsmfraa r0,r1,r2 + 264: 10 01 14 b4 zvmhllgwsmfan r0,r1,r2 + 268: 10 01 14 b5 zvmhllgwsmfran r0,r1,r2 + 26c: 10 01 14 b6 zvmhllgwsmfanp r0,r1,r2 + 270: 10 01 14 b7 zvmhllgwsmfranp r0,r1,r2 + 274: 10 01 14 b8 zmheogwsmf r0,r1,r2 + 278: 10 01 14 b9 zmheogwsmfr r0,r1,r2 + 27c: 10 01 14 ba zmheogwsmfaa r0,r1,r2 + 280: 10 01 14 bb zmheogwsmfraa r0,r1,r2 + 284: 10 01 14 bc zmheogwsmfan r0,r1,r2 + 288: 10 01 14 bd zmheogwsmfran r0,r1,r2 + 28c: 10 01 14 c8 zvdotphgwssmf r0,r1,r2 + 290: 10 01 14 c9 zvdotphgwssmfr r0,r1,r2 + 294: 10 01 14 ca zvdotphgwssmfaa r0,r1,r2 + 298: 10 01 14 cb zvdotphgwssmfraa r0,r1,r2 + 29c: 10 01 14 cc zvdotphgwssmfan r0,r1,r2 + 2a0: 10 01 14 cd zvdotphgwssmfran r0,r1,r2 + 2a4: 10 01 14 d0 zvmhuugwsmf r0,r1,r2 + 2a8: 10 01 14 d1 zvmhuugwsmfr r0,r1,r2 + 2ac: 10 01 14 d2 zvmhuugwsmfaa r0,r1,r2 + 2b0: 10 01 14 d3 zvmhuugwsmfraa r0,r1,r2 + 2b4: 10 01 14 d4 zvmhuugwsmfan r0,r1,r2 + 2b8: 10 01 14 d5 zvmhuugwsmfran r0,r1,r2 + 2bc: 10 01 14 d6 zvmhuugwsmfanp r0,r1,r2 + 2c0: 10 01 14 d7 zvmhuugwsmfranp r0,r1,r2 + 2c4: 10 01 14 d8 zmhogwsmf r0,r1,r2 + 2c8: 10 01 14 d9 zmhogwsmfr r0,r1,r2 + 2cc: 10 01 14 da zmhogwsmfaa r0,r1,r2 + 2d0: 10 01 14 db zmhogwsmfraa r0,r1,r2 + 2d4: 10 01 14 dc zmhogwsmfan r0,r1,r2 + 2d8: 10 01 14 dd zmhogwsmfran r0,r1,r2 + 2dc: 10 01 14 f0 zvmhxlgwsmf r0,r1,r2 + 2e0: 10 01 14 f1 zvmhxlgwsmfr r0,r1,r2 + 2e4: 10 01 14 f2 zvmhxlgwsmfaa r0,r1,r2 + 2e8: 10 01 14 f3 zvmhxlgwsmfraa r0,r1,r2 + 2ec: 10 01 14 f4 zvmhxlgwsmfan r0,r1,r2 + 2f0: 10 01 14 f5 zvmhxlgwsmfran r0,r1,r2 + 2f4: 10 01 14 f6 zvmhxlgwsmfanp r0,r1,r2 + 2f8: 10 01 14 f7 zvmhxlgwsmfranp r0,r1,r2 + 2fc: 10 01 15 00 zmhegui r0,r1,r2 + 300: 10 01 15 01 zvdotphgaui r0,r1,r2 + 304: 10 01 15 02 zmheguiaa r0,r1,r2 + 308: 10 01 15 03 zvdotphgauiaa r0,r1,r2 + 30c: 10 01 15 04 zmheguian r0,r1,r2 + 310: 10 01 15 05 zvdotphgauian r0,r1,r2 + 314: 10 01 15 08 zmhegsi r0,r1,r2 + 318: 10 01 15 09 zvdotphgasi r0,r1,r2 + 31c: 10 01 15 0a zmhegsiaa r0,r1,r2 + 320: 10 01 15 0b zvdotphgasiaa r0,r1,r2 + 324: 10 01 15 0c zmhegsian r0,r1,r2 + 328: 10 01 15 0d zvdotphgasian r0,r1,r2 + 32c: 10 01 15 10 zmhegsui r0,r1,r2 + 330: 10 01 15 11 zvdotphgasui r0,r1,r2 + 334: 10 01 15 12 zmhegsuiaa r0,r1,r2 + 338: 10 01 15 13 zvdotphgasuiaa r0,r1,r2 + 33c: 10 01 15 14 zmhegsuian r0,r1,r2 + 340: 10 01 15 15 zvdotphgasuian r0,r1,r2 + 344: 10 01 15 18 zmhegsmf r0,r1,r2 + 348: 10 01 15 19 zvdotphgasmf r0,r1,r2 + 34c: 10 01 15 1a zmhegsmfaa r0,r1,r2 + 350: 10 01 15 1b zvdotphgasmfaa r0,r1,r2 + 354: 10 01 15 1c zmhegsmfan r0,r1,r2 + 358: 10 01 15 1d zvdotphgasmfan r0,r1,r2 + 35c: 10 01 15 20 zmheogui r0,r1,r2 + 360: 10 01 15 21 zvdotphxgaui r0,r1,r2 + 364: 10 01 15 22 zmheoguiaa r0,r1,r2 + 368: 10 01 15 23 zvdotphxgauiaa r0,r1,r2 + 36c: 10 01 15 24 zmheoguian r0,r1,r2 + 370: 10 01 15 25 zvdotphxgauian r0,r1,r2 + 374: 10 01 15 28 zmheogsi r0,r1,r2 + 378: 10 01 15 29 zvdotphxgasi r0,r1,r2 + 37c: 10 01 15 2a zmheogsiaa r0,r1,r2 + 380: 10 01 15 2b zvdotphxgasiaa r0,r1,r2 + 384: 10 01 15 2c zmheogsian r0,r1,r2 + 388: 10 01 15 2d zvdotphxgasian r0,r1,r2 + 38c: 10 01 15 30 zmheogsui r0,r1,r2 + 390: 10 01 15 31 zvdotphxgasui r0,r1,r2 + 394: 10 01 15 32 zmheogsuiaa r0,r1,r2 + 398: 10 01 15 33 zvdotphxgasuiaa r0,r1,r2 + 39c: 10 01 15 34 zmheogsuian r0,r1,r2 + 3a0: 10 01 15 35 zvdotphxgasuian r0,r1,r2 + 3a4: 10 01 15 38 zmheogsmf r0,r1,r2 + 3a8: 10 01 15 39 zvdotphxgasmf r0,r1,r2 + 3ac: 10 01 15 3a zmheogsmfaa r0,r1,r2 + 3b0: 10 01 15 3b zvdotphxgasmfaa r0,r1,r2 + 3b4: 10 01 15 3c zmheogsmfan r0,r1,r2 + 3b8: 10 01 15 3d zvdotphxgasmfan r0,r1,r2 + 3bc: 10 01 15 40 zmhogui r0,r1,r2 + 3c0: 10 01 15 41 zvdotphgsui r0,r1,r2 + 3c4: 10 01 15 42 zmhoguiaa r0,r1,r2 + 3c8: 10 01 15 43 zvdotphgsuiaa r0,r1,r2 + 3cc: 10 01 15 44 zmhoguian r0,r1,r2 + 3d0: 10 01 15 45 zvdotphgsuian r0,r1,r2 + 3d4: 10 01 15 48 zmhogsi r0,r1,r2 + 3d8: 10 01 15 49 zvdotphgssi r0,r1,r2 + 3dc: 10 01 15 4a zmhogsiaa r0,r1,r2 + 3e0: 10 01 15 4b zvdotphgssiaa r0,r1,r2 + 3e4: 10 01 15 4c zmhogsian r0,r1,r2 + 3e8: 10 01 15 4d zvdotphgssian r0,r1,r2 + 3ec: 10 01 15 50 zmhogsui r0,r1,r2 + 3f0: 10 01 15 51 zvdotphgssui r0,r1,r2 + 3f4: 10 01 15 52 zmhogsuiaa r0,r1,r2 + 3f8: 10 01 15 53 zvdotphgssuiaa r0,r1,r2 + 3fc: 10 01 15 54 zmhogsuian r0,r1,r2 + 400: 10 01 15 55 zvdotphgssuian r0,r1,r2 + 404: 10 01 15 58 zmhogsmf r0,r1,r2 + 408: 10 01 15 59 zvdotphgssmf r0,r1,r2 + 40c: 10 01 15 5a zmhogsmfaa r0,r1,r2 + 410: 10 01 15 5b zvdotphgssmfaa r0,r1,r2 + 414: 10 01 15 5c zmhogsmfan r0,r1,r2 + 418: 10 01 15 5d zvdotphgssmfan r0,r1,r2 + 41c: 10 01 15 60 zmwgui r0,r1,r2 + 420: 10 01 15 62 zmwguiaa r0,r1,r2 + 424: 10 01 15 63 zmwguiaas r0,r1,r2 + 428: 10 01 15 64 zmwguian r0,r1,r2 + 42c: 10 01 15 65 zmwguians r0,r1,r2 + 430: 10 01 15 68 zmwgsi r0,r1,r2 + 434: 10 01 15 6a zmwgsiaa r0,r1,r2 + 438: 10 01 15 6b zmwgsiaas r0,r1,r2 + 43c: 10 01 15 6c zmwgsian r0,r1,r2 + 440: 10 01 15 6d zmwgsians r0,r1,r2 + 444: 10 01 15 70 zmwgsui r0,r1,r2 + 448: 10 01 15 72 zmwgsuiaa r0,r1,r2 + 44c: 10 01 15 73 zmwgsuiaas r0,r1,r2 + 450: 10 01 15 74 zmwgsuian r0,r1,r2 + 454: 10 01 15 75 zmwgsuians r0,r1,r2 + 458: 10 01 15 78 zmwgsmf r0,r1,r2 + 45c: 10 01 15 79 zmwgsmfr r0,r1,r2 + 460: 10 01 15 7a zmwgsmfaa r0,r1,r2 + 464: 10 01 15 7b zmwgsmfraa r0,r1,r2 + 468: 10 01 15 7c zmwgsmfan r0,r1,r2 + 46c: 10 01 15 7d zmwgsmfran r0,r1,r2 + 470: 10 01 15 80 zvmhului r0,r1,r2 + 474: 10 01 15 82 zvmhuluiaa r0,r1,r2 + 478: 10 01 15 83 zvmhuluiaas r0,r1,r2 + 47c: 10 01 15 84 zvmhuluian r0,r1,r2 + 480: 10 01 15 85 zvmhuluians r0,r1,r2 + 484: 10 01 15 86 zvmhuluianp r0,r1,r2 + 488: 10 01 15 87 zvmhuluianps r0,r1,r2 + 48c: 10 01 15 88 zvmhulsi r0,r1,r2 + 490: 10 01 15 8a zvmhulsiaa r0,r1,r2 + 494: 10 01 15 8b zvmhulsiaas r0,r1,r2 + 498: 10 01 15 8c zvmhulsian r0,r1,r2 + 49c: 10 01 15 8d zvmhulsians r0,r1,r2 + 4a0: 10 01 15 8e zvmhulsianp r0,r1,r2 + 4a4: 10 01 15 8f zvmhulsianps r0,r1,r2 + 4a8: 10 01 15 90 zvmhulsui r0,r1,r2 + 4ac: 10 01 15 92 zvmhulsuiaa r0,r1,r2 + 4b0: 10 01 15 93 zvmhulsuiaas r0,r1,r2 + 4b4: 10 01 15 94 zvmhulsuian r0,r1,r2 + 4b8: 10 01 15 95 zvmhulsuians r0,r1,r2 + 4bc: 10 01 15 96 zvmhulsuianp r0,r1,r2 + 4c0: 10 01 15 97 zvmhulsuianps r0,r1,r2 + 4c4: 10 01 15 98 zvmhulsf r0,r1,r2 + 4c8: 10 01 15 99 zvmhulsfr r0,r1,r2 + 4cc: 10 01 15 9a zvmhulsfaas r0,r1,r2 + 4d0: 10 01 15 9b zvmhulsfraas r0,r1,r2 + 4d4: 10 01 15 9c zvmhulsfans r0,r1,r2 + 4d8: 10 01 15 9d zvmhulsfrans r0,r1,r2 + 4dc: 10 01 15 9e zvmhulsfanps r0,r1,r2 + 4e0: 10 01 15 9f zvmhulsfranps r0,r1,r2 + 4e4: 10 01 15 a0 zvmhllui r0,r1,r2 + 4e8: 10 01 15 a2 zvmhlluiaa r0,r1,r2 + 4ec: 10 01 15 a3 zvmhlluiaas r0,r1,r2 + 4f0: 10 01 15 a4 zvmhlluian r0,r1,r2 + 4f4: 10 01 15 a5 zvmhlluians r0,r1,r2 + 4f8: 10 01 15 a6 zvmhlluianp r0,r1,r2 + 4fc: 10 01 15 a7 zvmhlluianps r0,r1,r2 + 500: 10 01 15 a8 zvmhllsi r0,r1,r2 + 504: 10 01 15 aa zvmhllsiaa r0,r1,r2 + 508: 10 01 15 ab zvmhllsiaas r0,r1,r2 + 50c: 10 01 15 ac zvmhllsian r0,r1,r2 + 510: 10 01 15 ad zvmhllsians r0,r1,r2 + 514: 10 01 15 ae zvmhllsianp r0,r1,r2 + 518: 10 01 15 af zvmhllsianps r0,r1,r2 + 51c: 10 01 15 b0 zvmhllsui r0,r1,r2 + 520: 10 01 15 b2 zvmhllsuiaa r0,r1,r2 + 524: 10 01 15 b3 zvmhllsuiaas r0,r1,r2 + 528: 10 01 15 b4 zvmhllsuian r0,r1,r2 + 52c: 10 01 15 b5 zvmhllsuians r0,r1,r2 + 530: 10 01 15 b6 zvmhllsuianp r0,r1,r2 + 534: 10 01 15 b7 zvmhllsuianps r0,r1,r2 + 538: 10 01 15 b8 zvmhllsf r0,r1,r2 + 53c: 10 01 15 b9 zvmhllsfr r0,r1,r2 + 540: 10 01 15 ba zvmhllsfaas r0,r1,r2 + 544: 10 01 15 bb zvmhllsfraas r0,r1,r2 + 548: 10 01 15 bc zvmhllsfans r0,r1,r2 + 54c: 10 01 15 bd zvmhllsfrans r0,r1,r2 + 550: 10 01 15 be zvmhllsfanps r0,r1,r2 + 554: 10 01 15 bf zvmhllsfranps r0,r1,r2 + 558: 10 01 15 c0 zvmhuuui r0,r1,r2 + 55c: 10 01 15 c2 zvmhuuuiaa r0,r1,r2 + 560: 10 01 15 c3 zvmhuuuiaas r0,r1,r2 + 564: 10 01 15 c4 zvmhuuuian r0,r1,r2 + 568: 10 01 15 c5 zvmhuuuians r0,r1,r2 + 56c: 10 01 15 c6 zvmhuuuianp r0,r1,r2 + 570: 10 01 15 c7 zvmhuuuianps r0,r1,r2 + 574: 10 01 15 c8 zvmhuusi r0,r1,r2 + 578: 10 01 15 ca zvmhuusiaa r0,r1,r2 + 57c: 10 01 15 cb zvmhuusiaas r0,r1,r2 + 580: 10 01 15 cc zvmhuusian r0,r1,r2 + 584: 10 01 15 cd zvmhuusians r0,r1,r2 + 588: 10 01 15 ce zvmhuusianp r0,r1,r2 + 58c: 10 01 15 cf zvmhuusianps r0,r1,r2 + 590: 10 01 15 d0 zvmhuusui r0,r1,r2 + 594: 10 01 15 d2 zvmhuusuiaa r0,r1,r2 + 598: 10 01 15 d3 zvmhuusuiaas r0,r1,r2 + 59c: 10 01 15 d4 zvmhuusuian r0,r1,r2 + 5a0: 10 01 15 d5 zvmhuusuians r0,r1,r2 + 5a4: 10 01 15 d6 zvmhuusuianp r0,r1,r2 + 5a8: 10 01 15 d7 zvmhuusuianps r0,r1,r2 + 5ac: 10 01 15 d8 zvmhuusf r0,r1,r2 + 5b0: 10 01 15 d9 zvmhuusfr r0,r1,r2 + 5b4: 10 01 15 da zvmhuusfaas r0,r1,r2 + 5b8: 10 01 15 db zvmhuusfraas r0,r1,r2 + 5bc: 10 01 15 dc zvmhuusfans r0,r1,r2 + 5c0: 10 01 15 dd zvmhuusfrans r0,r1,r2 + 5c4: 10 01 15 de zvmhuusfanps r0,r1,r2 + 5c8: 10 01 15 df zvmhuusfranps r0,r1,r2 + 5cc: 10 01 15 e0 zvmhxlui r0,r1,r2 + 5d0: 10 01 15 e2 zvmhxluiaa r0,r1,r2 + 5d4: 10 01 15 e3 zvmhxluiaas r0,r1,r2 + 5d8: 10 01 15 e4 zvmhxluian r0,r1,r2 + 5dc: 10 01 15 e5 zvmhxluians r0,r1,r2 + 5e0: 10 01 15 e6 zvmhxluianp r0,r1,r2 + 5e4: 10 01 15 e7 zvmhxluianps r0,r1,r2 + 5e8: 10 01 15 e8 zvmhxlsi r0,r1,r2 + 5ec: 10 01 15 ea zvmhxlsiaa r0,r1,r2 + 5f0: 10 01 15 eb zvmhxlsiaas r0,r1,r2 + 5f4: 10 01 15 ec zvmhxlsian r0,r1,r2 + 5f8: 10 01 15 ed zvmhxlsians r0,r1,r2 + 5fc: 10 01 15 ee zvmhxlsianp r0,r1,r2 + 600: 10 01 15 ef zvmhxlsianps r0,r1,r2 + 604: 10 01 15 f0 zvmhxlsui r0,r1,r2 + 608: 10 01 15 f2 zvmhxlsuiaa r0,r1,r2 + 60c: 10 01 15 f3 zvmhxlsuiaas r0,r1,r2 + 610: 10 01 15 f4 zvmhxlsuian r0,r1,r2 + 614: 10 01 15 f5 zvmhxlsuians r0,r1,r2 + 618: 10 01 15 f6 zvmhxlsuianp r0,r1,r2 + 61c: 10 01 15 f7 zvmhxlsuianps r0,r1,r2 + 620: 10 01 15 f8 zvmhxlsf r0,r1,r2 + 624: 10 01 15 f9 zvmhxlsfr r0,r1,r2 + 628: 10 01 15 fa zvmhxlsfaas r0,r1,r2 + 62c: 10 01 15 fb zvmhxlsfraas r0,r1,r2 + 630: 10 01 15 fc zvmhxlsfans r0,r1,r2 + 634: 10 01 15 fd zvmhxlsfrans r0,r1,r2 + 638: 10 01 15 fe zvmhxlsfanps r0,r1,r2 + 63c: 10 01 15 ff zvmhxlsfranps r0,r1,r2 + 640: 10 01 16 00 zmheui r0,r1,r2 + 644: 10 01 16 02 zmheuiaa r0,r1,r2 + 648: 10 01 16 03 zmheuiaas r0,r1,r2 + 64c: 10 01 16 04 zmheuian r0,r1,r2 + 650: 10 01 16 05 zmheuians r0,r1,r2 + 654: 10 01 16 08 zmhesi r0,r1,r2 + 658: 10 01 16 0a zmhesiaa r0,r1,r2 + 65c: 10 01 16 0b zmhesiaas r0,r1,r2 + 660: 10 01 16 0c zmhesian r0,r1,r2 + 664: 10 01 16 0d zmhesians r0,r1,r2 + 668: 10 01 16 10 zmhesui r0,r1,r2 + 66c: 10 01 16 12 zmhesuiaa r0,r1,r2 + 670: 10 01 16 13 zmhesuiaas r0,r1,r2 + 674: 10 01 16 14 zmhesuian r0,r1,r2 + 678: 10 01 16 15 zmhesuians r0,r1,r2 + 67c: 10 01 16 18 zmhesf r0,r1,r2 + 680: 10 01 16 19 zmhesfr r0,r1,r2 + 684: 10 01 16 1a zmhesfaas r0,r1,r2 + 688: 10 01 16 1b zmhesfraas r0,r1,r2 + 68c: 10 01 16 1c zmhesfans r0,r1,r2 + 690: 10 01 16 1d zmhesfrans r0,r1,r2 + 694: 10 01 16 20 zmheoui r0,r1,r2 + 698: 10 01 16 22 zmheouiaa r0,r1,r2 + 69c: 10 01 16 23 zmheouiaas r0,r1,r2 + 6a0: 10 01 16 24 zmheouian r0,r1,r2 + 6a4: 10 01 16 25 zmheouians r0,r1,r2 + 6a8: 10 01 16 28 zmheosi r0,r1,r2 + 6ac: 10 01 16 2a zmheosiaa r0,r1,r2 + 6b0: 10 01 16 2b zmheosiaas r0,r1,r2 + 6b4: 10 01 16 2c zmheosian r0,r1,r2 + 6b8: 10 01 16 2d zmheosians r0,r1,r2 + 6bc: 10 01 16 30 zmheosui r0,r1,r2 + 6c0: 10 01 16 32 zmheosuiaa r0,r1,r2 + 6c4: 10 01 16 33 zmheosuiaas r0,r1,r2 + 6c8: 10 01 16 34 zmheosuian r0,r1,r2 + 6cc: 10 01 16 35 zmheosuians r0,r1,r2 + 6d0: 10 01 16 38 zmheosf r0,r1,r2 + 6d4: 10 01 16 39 zmheosfr r0,r1,r2 + 6d8: 10 01 16 3a zmheosfaas r0,r1,r2 + 6dc: 10 01 16 3b zmheosfraas r0,r1,r2 + 6e0: 10 01 16 3c zmheosfans r0,r1,r2 + 6e4: 10 01 16 3d zmheosfrans r0,r1,r2 + 6e8: 10 01 16 40 zmhoui r0,r1,r2 + 6ec: 10 01 16 42 zmhouiaa r0,r1,r2 + 6f0: 10 01 16 43 zmhouiaas r0,r1,r2 + 6f4: 10 01 16 44 zmhouian r0,r1,r2 + 6f8: 10 01 16 45 zmhouians r0,r1,r2 + 6fc: 10 01 16 48 zmhosi r0,r1,r2 + 700: 10 01 16 4a zmhosiaa r0,r1,r2 + 704: 10 01 16 4b zmhosiaas r0,r1,r2 + 708: 10 01 16 4c zmhosian r0,r1,r2 + 70c: 10 01 16 4d zmhosians r0,r1,r2 + 710: 10 01 16 50 zmhosui r0,r1,r2 + 714: 10 01 16 52 zmhosuiaa r0,r1,r2 + 718: 10 01 16 53 zmhosuiaas r0,r1,r2 + 71c: 10 01 16 54 zmhosuian r0,r1,r2 + 720: 10 01 16 55 zmhosuians r0,r1,r2 + 724: 10 01 16 58 zmhosf r0,r1,r2 + 728: 10 01 16 59 zmhosfr r0,r1,r2 + 72c: 10 01 16 5a zmhosfaas r0,r1,r2 + 730: 10 01 16 5b zmhosfraas r0,r1,r2 + 734: 10 01 16 5c zmhosfans r0,r1,r2 + 738: 10 01 16 5d zmhosfrans r0,r1,r2 + 73c: 10 01 16 60 zvmhuih r0,r1,r2 + 740: 10 01 16 61 zvmhuihs r0,r1,r2 + 744: 10 01 16 62 zvmhuiaah r0,r1,r2 + 748: 10 01 16 63 zvmhuiaahs r0,r1,r2 + 74c: 10 01 16 64 zvmhuianh r0,r1,r2 + 750: 10 01 16 65 zvmhuianhs r0,r1,r2 + 754: 10 01 16 69 zvmhsihs r0,r1,r2 + 758: 10 01 16 6b zvmhsiaahs r0,r1,r2 + 75c: 10 01 16 6d zvmhsianhs r0,r1,r2 + 760: 10 01 16 71 zvmhsuihs r0,r1,r2 + 764: 10 01 16 73 zvmhsuiaahs r0,r1,r2 + 768: 10 01 16 75 zvmhsuianhs r0,r1,r2 + 76c: 10 01 16 78 zvmhsfh r0,r1,r2 + 770: 10 01 16 79 zvmhsfrh r0,r1,r2 + 774: 10 01 16 7a zvmhsfaahs r0,r1,r2 + 778: 10 01 16 7b zvmhsfraahs r0,r1,r2 + 77c: 10 01 16 7c zvmhsfanhs r0,r1,r2 + 780: 10 01 16 7d zvmhsfranhs r0,r1,r2 + 784: 10 01 16 80 zvdotphaui r0,r1,r2 + 788: 10 01 16 81 zvdotphauis r0,r1,r2 + 78c: 10 01 16 82 zvdotphauiaa r0,r1,r2 + 790: 10 01 16 83 zvdotphauiaas r0,r1,r2 + 794: 10 01 16 84 zvdotphauian r0,r1,r2 + 798: 10 01 16 85 zvdotphauians r0,r1,r2 + 79c: 10 01 16 88 zvdotphasi r0,r1,r2 + 7a0: 10 01 16 89 zvdotphasis r0,r1,r2 + 7a4: 10 01 16 8a zvdotphasiaa r0,r1,r2 + 7a8: 10 01 16 8b zvdotphasiaas r0,r1,r2 + 7ac: 10 01 16 8c zvdotphasian r0,r1,r2 + 7b0: 10 01 16 8d zvdotphasians r0,r1,r2 + 7b4: 10 01 16 90 zvdotphasui r0,r1,r2 + 7b8: 10 01 16 91 zvdotphasuis r0,r1,r2 + 7bc: 10 01 16 92 zvdotphasuiaa r0,r1,r2 + 7c0: 10 01 16 93 zvdotphasuiaas r0,r1,r2 + 7c4: 10 01 16 94 zvdotphasuian r0,r1,r2 + 7c8: 10 01 16 95 zvdotphasuians r0,r1,r2 + 7cc: 10 01 16 98 zvdotphasfs r0,r1,r2 + 7d0: 10 01 16 99 zvdotphasfrs r0,r1,r2 + 7d4: 10 01 16 9a zvdotphasfaas r0,r1,r2 + 7d8: 10 01 16 9b zvdotphasfraas r0,r1,r2 + 7dc: 10 01 16 9c zvdotphasfans r0,r1,r2 + 7e0: 10 01 16 9d zvdotphasfrans r0,r1,r2 + 7e4: 10 01 16 a0 zvdotphxaui r0,r1,r2 + 7e8: 10 01 16 a1 zvdotphxauis r0,r1,r2 + 7ec: 10 01 16 a2 zvdotphxauiaa r0,r1,r2 + 7f0: 10 01 16 a3 zvdotphxauiaas r0,r1,r2 + 7f4: 10 01 16 a4 zvdotphxauian r0,r1,r2 + 7f8: 10 01 16 a5 zvdotphxauians r0,r1,r2 + 7fc: 10 01 16 a8 zvdotphxasi r0,r1,r2 + 800: 10 01 16 a9 zvdotphxasis r0,r1,r2 + 804: 10 01 16 aa zvdotphxasiaa r0,r1,r2 + 808: 10 01 16 ab zvdotphxasiaas r0,r1,r2 + 80c: 10 01 16 ac zvdotphxasian r0,r1,r2 + 810: 10 01 16 ad zvdotphxasians r0,r1,r2 + 814: 10 01 16 b0 zvdotphxasui r0,r1,r2 + 818: 10 01 16 b1 zvdotphxasuis r0,r1,r2 + 81c: 10 01 16 b2 zvdotphxasuiaa r0,r1,r2 + 820: 10 01 16 b3 zvdotphxasuiaas r0,r1,r2 + 824: 10 01 16 b4 zvdotphxasuian r0,r1,r2 + 828: 10 01 16 b5 zvdotphxasuians r0,r1,r2 + 82c: 10 01 16 b8 zvdotphxasfs r0,r1,r2 + 830: 10 01 16 b9 zvdotphxasfrs r0,r1,r2 + 834: 10 01 16 ba zvdotphxasfaas r0,r1,r2 + 838: 10 01 16 bb zvdotphxasfraas r0,r1,r2 + 83c: 10 01 16 bc zvdotphxasfans r0,r1,r2 + 840: 10 01 16 bd zvdotphxasfrans r0,r1,r2 + 844: 10 01 16 c0 zvdotphsui r0,r1,r2 + 848: 10 01 16 c1 zvdotphsuis r0,r1,r2 + 84c: 10 01 16 c2 zvdotphsuiaa r0,r1,r2 + 850: 10 01 16 c3 zvdotphsuiaas r0,r1,r2 + 854: 10 01 16 c4 zvdotphsuian r0,r1,r2 + 858: 10 01 16 c5 zvdotphsuians r0,r1,r2 + 85c: 10 01 16 c8 zvdotphssi r0,r1,r2 + 860: 10 01 16 c9 zvdotphssis r0,r1,r2 + 864: 10 01 16 ca zvdotphssiaa r0,r1,r2 + 868: 10 01 16 cb zvdotphssiaas r0,r1,r2 + 86c: 10 01 16 cc zvdotphssian r0,r1,r2 + 870: 10 01 16 cd zvdotphssians r0,r1,r2 + 874: 10 01 16 d0 zvdotphssui r0,r1,r2 + 878: 10 01 16 d1 zvdotphssuis r0,r1,r2 + 87c: 10 01 16 d2 zvdotphssuiaa r0,r1,r2 + 880: 10 01 16 d3 zvdotphssuiaas r0,r1,r2 + 884: 10 01 16 d4 zvdotphssuian r0,r1,r2 + 888: 10 01 16 d5 zvdotphssuians r0,r1,r2 + 88c: 10 01 16 d8 zvdotphssfs r0,r1,r2 + 890: 10 01 16 d9 zvdotphssfrs r0,r1,r2 + 894: 10 01 16 da zvdotphssfaas r0,r1,r2 + 898: 10 01 16 db zvdotphssfraas r0,r1,r2 + 89c: 10 01 16 dc zvdotphssfans r0,r1,r2 + 8a0: 10 01 16 dd zvdotphssfrans r0,r1,r2 + 8a4: 10 01 16 e1 zmwluis r0,r1,r2 + 8a8: 10 01 16 e2 zmwluiaa r0,r1,r2 + 8ac: 10 01 16 e3 zmwluiaas r0,r1,r2 + 8b0: 10 01 16 e4 zmwluian r0,r1,r2 + 8b4: 10 01 16 e5 zmwluians r0,r1,r2 + 8b8: 10 01 16 e9 zmwlsis r0,r1,r2 + 8bc: 10 01 16 eb zmwlsiaas r0,r1,r2 + 8c0: 10 01 16 ed zmwlsians r0,r1,r2 + 8c4: 10 01 16 f1 zmwlsuis r0,r1,r2 + 8c8: 10 01 16 f3 zmwlsuiaas r0,r1,r2 + 8cc: 10 01 16 f5 zmwlsuians r0,r1,r2 + 8d0: 10 01 16 f8 zmwsf r0,r1,r2 + 8d4: 10 01 16 f9 zmwsfr r0,r1,r2 + 8d8: 10 01 16 fa zmwsfaas r0,r1,r2 + 8dc: 10 01 16 fb zmwsfraas r0,r1,r2 + 8e0: 10 01 16 fc zmwsfans r0,r1,r2 + 8e4: 10 01 16 fd zmwsfrans r0,r1,r2 + 8e8: 10 01 13 00 zlddx r0,r1,r2 + 8ec: 10 01 13 01 zldd r0,16\(r1\) + 8f0: 10 01 13 02 zldwx r0,r1,r2 + 8f4: 10 01 13 03 zldw r0,16\(r1\) + 8f8: 10 01 13 04 zldhx r0,r1,r2 + 8fc: 10 01 13 05 zldh r0,16\(r1\) + 900: 10 01 13 08 zlwgsfdx r0,r1,r2 + 904: 10 01 13 09 zlwgsfd r0,8\(r1\) + 908: 10 01 13 0a zlwwosdx r0,r1,r2 + 90c: 10 01 13 0b zlwwosd r0,8\(r1\) + 910: 10 01 13 0c zlwhsplatwdx r0,r1,r2 + 914: 10 01 13 0d zlwhsplatwd r0,8\(r1\) + 918: 10 01 13 0e zlwhsplatdx r0,r1,r2 + 91c: 10 01 13 0f zlwhsplatd r0,8\(r1\) + 920: 10 01 13 10 zlwhgwsfdx r0,r1,r2 + 924: 10 01 13 11 zlwhgwsfd r0,8\(r1\) + 928: 10 01 13 12 zlwhedx r0,r1,r2 + 92c: 10 01 13 13 zlwhed r0,8\(r1\) + 930: 10 01 13 14 zlwhosdx r0,r1,r2 + 934: 10 01 13 15 zlwhosd r0,8\(r1\) + 938: 10 01 13 16 zlwhoudx r0,r1,r2 + 93c: 10 01 13 17 zlwhoud r0,8\(r1\) + 940: 10 01 13 18 zlwhx r0,r1,r2 + 944: 10 01 13 19 zlwh r0,8\(r1\) + 948: 10 01 13 1a zlwwx r0,r1,r2 + 94c: 10 01 13 1b zlww r0,8\(r1\) + 950: 10 01 13 1c zlhgwsfx r0,r1,r2 + 954: 10 01 13 1d zlhgwsf r0,4\(r1\) + 958: 10 01 13 1e zlhhsplatx r0,r1,r2 + 95c: 10 01 13 1f zlhhsplat r0,4\(r1\) + 960: 10 01 13 20 zstddx r0,r1,r2 + 964: 10 01 13 21 zstdd r0,16\(r1\) + 968: 10 01 13 22 zstdwx r0,r1,r2 + 96c: 10 01 13 23 zstdw r0,16\(r1\) + 970: 10 01 13 24 zstdhx r0,r1,r2 + 974: 10 01 13 25 zstdh r0,16\(r1\) + 978: 10 01 13 28 zstwhedx r0,r1,r2 + 97c: 10 01 13 29 zstwhed r0,8\(r1\) + 980: 10 01 13 2a zstwhodx r0,r1,r2 + 984: 10 01 13 2b zstwhod r0,8\(r1\) + 988: 10 01 13 30 zlhhex r0,r1,r2 + 98c: 10 01 13 31 zlhhe r0,4\(r1\) + 990: 10 01 13 32 zlhhosx r0,r1,r2 + 994: 10 01 13 33 zlhhos r0,4\(r1\) + 998: 10 01 13 34 zlhhoux r0,r1,r2 + 99c: 10 01 13 35 zlhhou r0,4\(r1\) + 9a0: 10 01 13 38 zsthex r0,r1,r2 + 9a4: 10 01 13 39 zsthe r0,4\(r1\) + 9a8: 10 01 13 3a zsthox r0,r1,r2 + 9ac: 10 01 13 3b zstho r0,4\(r1\) + 9b0: 10 01 13 3c zstwhx r0,r1,r2 + 9b4: 10 01 13 3d zstwh r0,8\(r1\) + 9b8: 10 01 13 3e zstwwx r0,r1,r2 + 9bc: 10 01 13 3f zstww r0,8\(r1\) + 9c0: 10 01 13 40 zlddmx r0,r1,r2 + 9c4: 10 01 13 41 zlddu r0,16\(r1\) + 9c8: 10 01 13 42 zldwmx r0,r1,r2 + 9cc: 10 01 13 43 zldwu r0,16\(r1\) + 9d0: 10 01 13 44 zldhmx r0,r1,r2 + 9d4: 10 01 13 45 zldhu r0,16\(r1\) + 9d8: 10 01 13 48 zlwgsfdmx r0,r1,r2 + 9dc: 10 01 13 49 zlwgsfdu r0,8\(r1\) + 9e0: 10 01 13 4a zlwwosdmx r0,r1,r2 + 9e4: 10 01 13 4b zlwwosdu r0,8\(r1\) + 9e8: 10 01 13 4c zlwhsplatwdmx r0,r1,r2 + 9ec: 10 01 13 4d zlwhsplatwdu r0,8\(r1\) + 9f0: 10 01 13 4e zlwhsplatdmx r0,r1,r2 + 9f4: 10 01 13 4f zlwhsplatdu r0,8\(r1\) + 9f8: 10 01 13 50 zlwhgwsfdmx r0,r1,r2 + 9fc: 10 01 13 51 zlwhgwsfdu r0,8\(r1\) + a00: 10 01 13 52 zlwhedmx r0,r1,r2 + a04: 10 01 13 53 zlwhedu r0,8\(r1\) + a08: 10 01 13 54 zlwhosdmx r0,r1,r2 + a0c: 10 01 13 55 zlwhosdu r0,8\(r1\) + a10: 10 01 13 56 zlwhoudmx r0,r1,r2 + a14: 10 01 13 57 zlwhoudu r0,8\(r1\) + a18: 10 01 13 58 zlwhmx r0,r1,r2 + a1c: 10 01 13 59 zlwhu r0,8\(r1\) + a20: 10 01 13 5a zlwwmx r0,r1,r2 + a24: 10 01 13 5b zlwwu r0,8\(r1\) + a28: 10 01 13 5c zlhgwsfmx r0,r1,r2 + a2c: 10 01 13 5d zlhgwsfu r0,4\(r1\) + a30: 10 01 13 5e zlhhsplatmx r0,r1,r2 + a34: 10 01 13 5f zlhhsplatu r0,4\(r1\) + a38: 10 01 13 60 zstddmx r0,r1,r2 + a3c: 10 01 13 61 zstddu r0,16\(r1\) + a40: 10 01 13 62 zstdwmx r0,r1,r2 + a44: 10 01 13 63 zstdwu r0,16\(r1\) + a48: 10 01 13 64 zstdhmx r0,r1,r2 + a4c: 10 01 13 65 zstdhu r0,16\(r1\) + a50: 10 01 13 68 zstwhedmx r0,r1,r2 + a54: 10 01 13 69 zstwhedu r0,8\(r1\) + a58: 10 01 13 6a zstwhodmx r0,r1,r2 + a5c: 10 01 13 6b zstwhodu r0,8\(r1\) + a60: 10 01 13 70 zlhhemx r0,r1,r2 + a64: 10 01 13 71 zlhheu r0,4\(r1\) + a68: 10 01 13 72 zlhhosmx r0,r1,r2 + a6c: 10 01 13 73 zlhhosu r0,4\(r1\) + a70: 10 01 13 74 zlhhoumx r0,r1,r2 + a74: 10 01 13 75 zlhhouu r0,4\(r1\) + a78: 10 01 13 78 zsthemx r0,r1,r2 + a7c: 10 01 13 79 zstheu r0,4\(r1\) + a80: 10 01 13 7a zsthomx r0,r1,r2 + a84: 10 01 13 7b zsthou r0,4\(r1\) + a88: 10 01 13 7c zstwhmx r0,r1,r2 + a8c: 10 01 13 7d zstwhu r0,8\(r1\) + a90: 10 01 13 7e zstwwmx r0,r1,r2 + a94: 10 01 13 7f zstwwu r0,8\(r1\) \ No newline at end of file diff --git a/gas/testsuite/gas/ppc/lsp.s b/gas/testsuite/gas/ppc/lsp.s new file mode 100644 index 00000000000..4b64e873729 --- /dev/null +++ b/gas/testsuite/gas/ppc/lsp.s @@ -0,0 +1,694 @@ +# PA LSP instructions +# CMPE200GCC-62 + .section ".text" + + .equ rA,1 + .equ rB,2 + .equ rD,0 + .equ rS,0 + .equ UIMM, 15 ;#UIMM values >15 are illegal + .equ UIMM_2, 4 + .equ UIMM_4, 8 + .equ UIMM_8, 16 + .equ SIMM, -16 + .equ crD, 0 + .equ offset, 1 + + zvaddih rD, rA, UIMM + zvsubifh rD, rA, UIMM + zvaddh rD, rA, rB + zvsubfh rD, rA, rB + zvaddsubfh rD, rA, rB + zvsubfaddh rD, rA, rB + zvaddhx rD, rA, rB + zvsubfhx rD, rA, rB + zvaddsubfhx rD, rA, rB + zvsubfaddhx rD, rA, rB + zaddwus rD, rA, rB + zsubfwus rD, rA, rB + zaddwss rD, rA, rB + zsubfwss rD, rA, rB + zvaddhus rD, rA, rB + zvsubfhus rD, rA, rB + zvaddhss rD, rA, rB + zvsubfhss rD, rA, rB + zvaddsubfhss rD, rA, rB + zvsubfaddhss rD, rA, rB + zvaddhxss rD, rA, rB + zvsubfhxss rD, rA, rB + zvaddsubfhxss rD, rA, rB + zvsubfaddhxss rD, rA, rB + zaddheuw rD, rA, rB + zsubfheuw rD, rA, rB + zaddhesw rD, rA, rB + zsubfhesw rD, rA, rB + zaddhouw rD, rA, rB + zsubfhouw rD, rA, rB + zaddhosw rD, rA, rB + zsubfhosw rD, rA, rB + zvmergehih rD, rA, rB + zvmergeloh rD, rA, rB + zvmergehiloh rD, rA, rB + zvmergelohih rD, rA, rB + zvcmpgthu crD, rA, rB + zvcmpgths crD, rA, rB + zvcmplthu crD, rA, rB + zvcmplths crD, rA, rB + zvcmpeqh crD, rA, rB + zpkswgshfrs rD, rA, rB + zpkswgswfrs rD, rA, rB + zvpkshgwshfrs rD, rA, rB + zvpkswshfrs rD, rA, rB + zvpkswuhs rD, rA, rB + zvpkswshs rD, rA, rB + zvpkuwuhs rD, rA, rB + zvsplatih rD, SIMM + zvsplatfih rD, SIMM + zcntlsw rD, rA + zvcntlzh rD, rA + zvcntlsh rD, rA + znegws rD, rA + zvnegh rD, rA + zvneghs rD, rA + zvnegho rD, rA + zvneghos rD, rA + zrndwh rD, rA + zrndwhss rD, rA + zvabsh rD, rA + zvabshs rD, rA + zabsw rD, rA + zabsws rD, rA + zsatswuw rD, rA + zsatuwsw rD, rA + zsatswuh rD, rA + zsatswsh rD, rA + zvsatshuh rD, rA + zvsatuhsh rD, rA + zsatuwuh rD, rA + zsatuwsh rD, rA + zsatsduw rD, rA, rB + zsatsdsw rD, rA, rB + zsatuduw rD, rA, rB + zvselh rD, rA, rB + zxtrw rD, rA, rB, offset + zbrminc rD, rA, rB + zcircinc rD, rA, rB + zdivwsf rD, rA, rB + zvsrhu rD, rA, rB + zvsrhs rD, rA, rB + zvsrhiu rD, rA, UIMM + zvsrhis rD, rA, UIMM + zvslh rD, rA, rB + zvrlh rD, rA, rB + zvslhi rD, rA, UIMM + zvrlhi rD, rA, UIMM + zvslhus rD, rA, rB + zvslhss rD, rA, rB + zvslhius rD, rA, UIMM + zvslhiss rD, rA, UIMM + zslwus rD, rA, rB + zslwss rD, rA, rB + zslwius rD, rA, UIMM + zslwiss rD, rA, UIMM + zaddwgui rD, rA, rB + zsubfwgui rD, rA, rB + zaddd rD, rA, rB + zsubfd rD, rA, rB + zvaddsubfw rD, rA, rB + zvsubfaddw rD, rA, rB + zvaddw rD, rA, rB + zvsubfw rD, rA, rB + zaddwgsi rD, rA, rB + zsubfwgsi rD, rA, rB + zadddss rD, rA, rB + zsubfdss rD, rA, rB + zvaddsubfwss rD, rA, rB + zvsubfaddwss rD, rA, rB + zvaddwss rD, rA, rB + zvsubfwss rD, rA, rB + zaddwgsf rD, rA, rB + zsubfwgsf rD, rA, rB + zadddus rD, rA, rB + zsubfdus rD, rA, rB + zvaddwus rD, rA, rB + zvsubfwus rD, rA, rB + zvunpkhgwsf rD, rA + zvunpkhsf rD, rA + zvunpkhui rD, rA + zvunpkhsi rD, rA + zunpkwgsf rD, rA + zvdotphgwasmf rD, rA, rB + zvdotphgwasmfr rD, rA, rB + zvdotphgwasmfaa rD, rA, rB + zvdotphgwasmfraa rD, rA, rB + zvdotphgwasmfan rD, rA, rB + zvdotphgwasmfran rD, rA, rB + zvmhulgwsmf rD, rA, rB + zvmhulgwsmfr rD, rA, rB + zvmhulgwsmfaa rD, rA, rB + zvmhulgwsmfraa rD, rA, rB + zvmhulgwsmfan rD, rA, rB + zvmhulgwsmfran rD, rA, rB + zvmhulgwsmfanp rD, rA, rB + zvmhulgwsmfranp rD, rA, rB + zmhegwsmf rD, rA, rB + zmhegwsmfr rD, rA, rB + zmhegwsmfaa rD, rA, rB + zmhegwsmfraa rD, rA, rB + zmhegwsmfan rD, rA, rB + zmhegwsmfran rD, rA, rB + zvdotphxgwasmf rD, rA, rB + zvdotphxgwasmfr rD, rA, rB + zvdotphxgwasmfaa rD, rA, rB + zvdotphxgwasmfraa rD, rA, rB + zvdotphxgwasmfan rD, rA, rB + zvdotphxgwasmfran rD, rA, rB + zvmhllgwsmf rD, rA, rB + zvmhllgwsmfr rD, rA, rB + zvmhllgwsmfaa rD, rA, rB + zvmhllgwsmfraa rD, rA, rB + zvmhllgwsmfan rD, rA, rB + zvmhllgwsmfran rD, rA, rB + zvmhllgwsmfanp rD, rA, rB + zvmhllgwsmfranp rD, rA, rB + zmheogwsmf rD, rA, rB + zmheogwsmfr rD, rA, rB + zmheogwsmfaa rD, rA, rB + zmheogwsmfraa rD, rA, rB + zmheogwsmfan rD, rA, rB + zmheogwsmfran rD, rA, rB + zvdotphgwssmf rD, rA, rB + zvdotphgwssmfr rD, rA, rB + zvdotphgwssmfaa rD, rA, rB + zvdotphgwssmfraa rD, rA, rB + zvdotphgwssmfan rD, rA, rB + zvdotphgwssmfran rD, rA, rB + zvmhuugwsmf rD, rA, rB + zvmhuugwsmfr rD, rA, rB + zvmhuugwsmfaa rD, rA, rB + zvmhuugwsmfraa rD, rA, rB + zvmhuugwsmfan rD, rA, rB + zvmhuugwsmfran rD, rA, rB + zvmhuugwsmfanp rD, rA, rB + zvmhuugwsmfranp rD, rA, rB + zmhogwsmf rD, rA, rB + zmhogwsmfr rD, rA, rB + zmhogwsmfaa rD, rA, rB + zmhogwsmfraa rD, rA, rB + zmhogwsmfan rD, rA, rB + zmhogwsmfran rD, rA, rB + zvmhxlgwsmf rD, rA, rB + zvmhxlgwsmfr rD, rA, rB + zvmhxlgwsmfaa rD, rA, rB + zvmhxlgwsmfraa rD, rA, rB + zvmhxlgwsmfan rD, rA, rB + zvmhxlgwsmfran rD, rA, rB + zvmhxlgwsmfanp rD, rA, rB + zvmhxlgwsmfranp rD, rA, rB + zmhegui rD, rA, rB + zvdotphgaui rD, rA, rB + zmheguiaa rD, rA, rB + zvdotphgauiaa rD, rA, rB + zmheguian rD, rA, rB + zvdotphgauian rD, rA, rB + zmhegsi rD, rA, rB + zvdotphgasi rD, rA, rB + zmhegsiaa rD, rA, rB + zvdotphgasiaa rD, rA, rB + zmhegsian rD, rA, rB + zvdotphgasian rD, rA, rB + zmhegsui rD, rA, rB + zvdotphgasui rD, rA, rB + zmhegsuiaa rD, rA, rB + zvdotphgasuiaa rD, rA, rB + zmhegsuian rD, rA, rB + zvdotphgasuian rD, rA, rB + zmhegsmf rD, rA, rB + zvdotphgasmf rD, rA, rB + zmhegsmfaa rD, rA, rB + zvdotphgasmfaa rD, rA, rB + zmhegsmfan rD, rA, rB + zvdotphgasmfan rD, rA, rB + zmheogui rD, rA, rB + zvdotphxgaui rD, rA, rB + zmheoguiaa rD, rA, rB + zvdotphxgauiaa rD, rA, rB + zmheoguian rD, rA, rB + zvdotphxgauian rD, rA, rB + zmheogsi rD, rA, rB + zvdotphxgasi rD, rA, rB + zmheogsiaa rD, rA, rB + zvdotphxgasiaa rD, rA, rB + zmheogsian rD, rA, rB + zvdotphxgasian rD, rA, rB + zmheogsui rD, rA, rB + zvdotphxgasui rD, rA, rB + zmheogsuiaa rD, rA, rB + zvdotphxgasuiaa rD, rA, rB + zmheogsuian rD, rA, rB + zvdotphxgasuian rD, rA, rB + zmheogsmf rD, rA, rB + zvdotphxgasmf rD, rA, rB + zmheogsmfaa rD, rA, rB + zvdotphxgasmfaa rD, rA, rB + zmheogsmfan rD, rA, rB + zvdotphxgasmfan rD, rA, rB + zmhogui rD, rA, rB + zvdotphgsui rD, rA, rB + zmhoguiaa rD, rA, rB + zvdotphgsuiaa rD, rA, rB + zmhoguian rD, rA, rB + zvdotphgsuian rD, rA, rB + zmhogsi rD, rA, rB + zvdotphgssi rD, rA, rB + zmhogsiaa rD, rA, rB + zvdotphgssiaa rD, rA, rB + zmhogsian rD, rA, rB + zvdotphgssian rD, rA, rB + zmhogsui rD, rA, rB + zvdotphgssui rD, rA, rB + zmhogsuiaa rD, rA, rB + zvdotphgssuiaa rD, rA, rB + zmhogsuian rD, rA, rB + zvdotphgssuian rD, rA, rB + zmhogsmf rD, rA, rB + zvdotphgssmf rD, rA, rB + zmhogsmfaa rD, rA, rB + zvdotphgssmfaa rD, rA, rB + zmhogsmfan rD, rA, rB + zvdotphgssmfan rD, rA, rB + zmwgui rD, rA, rB + zmwguiaa rD, rA, rB + zmwguiaas rD, rA, rB + zmwguian rD, rA, rB + zmwguians rD, rA, rB + zmwgsi rD, rA, rB + zmwgsiaa rD, rA, rB + zmwgsiaas rD, rA, rB + zmwgsian rD, rA, rB + zmwgsians rD, rA, rB + zmwgsui rD, rA, rB + zmwgsuiaa rD, rA, rB + zmwgsuiaas rD, rA, rB + zmwgsuian rD, rA, rB + zmwgsuians rD, rA, rB + zmwgsmf rD, rA, rB + zmwgsmfr rD, rA, rB + zmwgsmfaa rD, rA, rB + zmwgsmfraa rD, rA, rB + zmwgsmfan rD, rA, rB + zmwgsmfran rD, rA, rB + zvmhului rD, rA, rB + zvmhuluiaa rD, rA, rB + zvmhuluiaas rD, rA, rB + zvmhuluian rD, rA, rB + zvmhuluians rD, rA, rB + zvmhuluianp rD, rA, rB + zvmhuluianps rD, rA, rB + zvmhulsi rD, rA, rB + zvmhulsiaa rD, rA, rB + zvmhulsiaas rD, rA, rB + zvmhulsian rD, rA, rB + zvmhulsians rD, rA, rB + zvmhulsianp rD, rA, rB + zvmhulsianps rD, rA, rB + zvmhulsui rD, rA, rB + zvmhulsuiaa rD, rA, rB + zvmhulsuiaas rD, rA, rB + zvmhulsuian rD, rA, rB + zvmhulsuians rD, rA, rB + zvmhulsuianp rD, rA, rB + zvmhulsuianps rD, rA, rB + zvmhulsf rD, rA, rB + zvmhulsfr rD, rA, rB + zvmhulsfaas rD, rA, rB + zvmhulsfraas rD, rA, rB + zvmhulsfans rD, rA, rB + zvmhulsfrans rD, rA, rB + zvmhulsfanps rD, rA, rB + zvmhulsfranps rD, rA, rB + zvmhllui rD, rA, rB + zvmhlluiaa rD, rA, rB + zvmhlluiaas rD, rA, rB + zvmhlluian rD, rA, rB + zvmhlluians rD, rA, rB + zvmhlluianp rD, rA, rB + zvmhlluianps rD, rA, rB + zvmhllsi rD, rA, rB + zvmhllsiaa rD, rA, rB + zvmhllsiaas rD, rA, rB + zvmhllsian rD, rA, rB + zvmhllsians rD, rA, rB + zvmhllsianp rD, rA, rB + zvmhllsianps rD, rA, rB + zvmhllsui rD, rA, rB + zvmhllsuiaa rD, rA, rB + zvmhllsuiaas rD, rA, rB + zvmhllsuian rD, rA, rB + zvmhllsuians rD, rA, rB + zvmhllsuianp rD, rA, rB + zvmhllsuianps rD, rA, rB + zvmhllsf rD, rA, rB + zvmhllsfr rD, rA, rB + zvmhllsfaas rD, rA, rB + zvmhllsfraas rD, rA, rB + zvmhllsfans rD, rA, rB + zvmhllsfrans rD, rA, rB + zvmhllsfanps rD, rA, rB + zvmhllsfranps rD, rA, rB + zvmhuuui rD, rA, rB + zvmhuuuiaa rD, rA, rB + zvmhuuuiaas rD, rA, rB + zvmhuuuian rD, rA, rB + zvmhuuuians rD, rA, rB + zvmhuuuianp rD, rA, rB + zvmhuuuianps rD, rA, rB + zvmhuusi rD, rA, rB + zvmhuusiaa rD, rA, rB + zvmhuusiaas rD, rA, rB + zvmhuusian rD, rA, rB + zvmhuusians rD, rA, rB + zvmhuusianp rD, rA, rB + zvmhuusianps rD, rA, rB + zvmhuusui rD, rA, rB + zvmhuusuiaa rD, rA, rB + zvmhuusuiaas rD, rA, rB + zvmhuusuian rD, rA, rB + zvmhuusuians rD, rA, rB + zvmhuusuianp rD, rA, rB + zvmhuusuianps rD, rA, rB + zvmhuusf rD, rA, rB + zvmhuusfr rD, rA, rB + zvmhuusfaas rD, rA, rB + zvmhuusfraas rD, rA, rB + zvmhuusfans rD, rA, rB + zvmhuusfrans rD, rA, rB + zvmhuusfanps rD, rA, rB + zvmhuusfranps rD, rA, rB + zvmhxlui rD, rA, rB + zvmhxluiaa rD, rA, rB + zvmhxluiaas rD, rA, rB + zvmhxluian rD, rA, rB + zvmhxluians rD, rA, rB + zvmhxluianp rD, rA, rB + zvmhxluianps rD, rA, rB + zvmhxlsi rD, rA, rB + zvmhxlsiaa rD, rA, rB + zvmhxlsiaas rD, rA, rB + zvmhxlsian rD, rA, rB + zvmhxlsians rD, rA, rB + zvmhxlsianp rD, rA, rB + zvmhxlsianps rD, rA, rB + zvmhxlsui rD, rA, rB + zvmhxlsuiaa rD, rA, rB + zvmhxlsuiaas rD, rA, rB + zvmhxlsuian rD, rA, rB + zvmhxlsuians rD, rA, rB + zvmhxlsuianp rD, rA, rB + zvmhxlsuianps rD, rA, rB + zvmhxlsf rD, rA, rB + zvmhxlsfr rD, rA, rB + zvmhxlsfaas rD, rA, rB + zvmhxlsfraas rD, rA, rB + zvmhxlsfans rD, rA, rB + zvmhxlsfrans rD, rA, rB + zvmhxlsfanps rD, rA, rB + zvmhxlsfranps rD, rA, rB + zmheui rD, rA, rB + zmheuiaa rD, rA, rB + zmheuiaas rD, rA, rB + zmheuian rD, rA, rB + zmheuians rD, rA, rB + zmhesi rD, rA, rB + zmhesiaa rD, rA, rB + zmhesiaas rD, rA, rB + zmhesian rD, rA, rB + zmhesians rD, rA, rB + zmhesui rD, rA, rB + zmhesuiaa rD, rA, rB + zmhesuiaas rD, rA, rB + zmhesuian rD, rA, rB + zmhesuians rD, rA, rB + zmhesf rD, rA, rB + zmhesfr rD, rA, rB + zmhesfaas rD, rA, rB + zmhesfraas rD, rA, rB + zmhesfans rD, rA, rB + zmhesfrans rD, rA, rB + zmheoui rD, rA, rB + zmheouiaa rD, rA, rB + zmheouiaas rD, rA, rB + zmheouian rD, rA, rB + zmheouians rD, rA, rB + zmheosi rD, rA, rB + zmheosiaa rD, rA, rB + zmheosiaas rD, rA, rB + zmheosian rD, rA, rB + zmheosians rD, rA, rB + zmheosui rD, rA, rB + zmheosuiaa rD, rA, rB + zmheosuiaas rD, rA, rB + zmheosuian rD, rA, rB + zmheosuians rD, rA, rB + zmheosf rD, rA, rB + zmheosfr rD, rA, rB + zmheosfaas rD, rA, rB + zmheosfraas rD, rA, rB + zmheosfans rD, rA, rB + zmheosfrans rD, rA, rB + zmhoui rD, rA, rB + zmhouiaa rD, rA, rB + zmhouiaas rD, rA, rB + zmhouian rD, rA, rB + zmhouians rD, rA, rB + zmhosi rD, rA, rB + zmhosiaa rD, rA, rB + zmhosiaas rD, rA, rB + zmhosian rD, rA, rB + zmhosians rD, rA, rB + zmhosui rD, rA, rB + zmhosuiaa rD, rA, rB + zmhosuiaas rD, rA, rB + zmhosuian rD, rA, rB + zmhosuians rD, rA, rB + zmhosf rD, rA, rB + zmhosfr rD, rA, rB + zmhosfaas rD, rA, rB + zmhosfraas rD, rA, rB + zmhosfans rD, rA, rB + zmhosfrans rD, rA, rB + zvmhuih rD, rA, rB + zvmhuihs rD, rA, rB + zvmhuiaah rD, rA, rB + zvmhuiaahs rD, rA, rB + zvmhuianh rD, rA, rB + zvmhuianhs rD, rA, rB + zvmhsihs rD, rA, rB + zvmhsiaahs rD, rA, rB + zvmhsianhs rD, rA, rB + zvmhsuihs rD, rA, rB + zvmhsuiaahs rD, rA, rB + zvmhsuianhs rD, rA, rB + zvmhsfh rD, rA, rB + zvmhsfrh rD, rA, rB + zvmhsfaahs rD, rA, rB + zvmhsfraahs rD, rA, rB + zvmhsfanhs rD, rA, rB + zvmhsfranhs rD, rA, rB + zvdotphaui rD, rA, rB + zvdotphauis rD, rA, rB + zvdotphauiaa rD, rA, rB + zvdotphauiaas rD, rA, rB + zvdotphauian rD, rA, rB + zvdotphauians rD, rA, rB + zvdotphasi rD, rA, rB + zvdotphasis rD, rA, rB + zvdotphasiaa rD, rA, rB + zvdotphasiaas rD, rA, rB + zvdotphasian rD, rA, rB + zvdotphasians rD, rA, rB + zvdotphasui rD, rA, rB + zvdotphasuis rD, rA, rB + zvdotphasuiaa rD, rA, rB + zvdotphasuiaas rD, rA, rB + zvdotphasuian rD, rA, rB + zvdotphasuians rD, rA, rB + zvdotphasfs rD, rA, rB + zvdotphasfrs rD, rA, rB + zvdotphasfaas rD, rA, rB + zvdotphasfraas rD, rA, rB + zvdotphasfans rD, rA, rB + zvdotphasfrans rD, rA, rB + zvdotphxaui rD, rA, rB + zvdotphxauis rD, rA, rB + zvdotphxauiaa rD, rA, rB + zvdotphxauiaas rD, rA, rB + zvdotphxauian rD, rA, rB + zvdotphxauians rD, rA, rB + zvdotphxasi rD, rA, rB + zvdotphxasis rD, rA, rB + zvdotphxasiaa rD, rA, rB + zvdotphxasiaas rD, rA, rB + zvdotphxasian rD, rA, rB + zvdotphxasians rD, rA, rB + zvdotphxasui rD, rA, rB + zvdotphxasuis rD, rA, rB + zvdotphxasuiaa rD, rA, rB + zvdotphxasuiaas rD, rA, rB + zvdotphxasuian rD, rA, rB + zvdotphxasuians rD, rA, rB + zvdotphxasfs rD, rA, rB + zvdotphxasfrs rD, rA, rB + zvdotphxasfaas rD, rA, rB + zvdotphxasfraas rD, rA, rB + zvdotphxasfans rD, rA, rB + zvdotphxasfrans rD, rA, rB + zvdotphsui rD, rA, rB + zvdotphsuis rD, rA, rB + zvdotphsuiaa rD, rA, rB + zvdotphsuiaas rD, rA, rB + zvdotphsuian rD, rA, rB + zvdotphsuians rD, rA, rB + zvdotphssi rD, rA, rB + zvdotphssis rD, rA, rB + zvdotphssiaa rD, rA, rB + zvdotphssiaas rD, rA, rB + zvdotphssian rD, rA, rB + zvdotphssians rD, rA, rB + zvdotphssui rD, rA, rB + zvdotphssuis rD, rA, rB + zvdotphssuiaa rD, rA, rB + zvdotphssuiaas rD, rA, rB + zvdotphssuian rD, rA, rB + zvdotphssuians rD, rA, rB + zvdotphssfs rD, rA, rB + zvdotphssfrs rD, rA, rB + zvdotphssfaas rD, rA, rB + zvdotphssfraas rD, rA, rB + zvdotphssfans rD, rA, rB + zvdotphssfrans rD, rA, rB + zmwluis rD, rA, rB + zmwluiaa rD, rA, rB + zmwluiaas rD, rA, rB + zmwluian rD, rA, rB + zmwluians rD, rA, rB + zmwlsis rD, rA, rB + zmwlsiaas rD, rA, rB + zmwlsians rD, rA, rB + zmwlsuis rD, rA, rB + zmwlsuiaas rD, rA, rB + zmwlsuians rD, rA, rB + zmwsf rD, rA, rB + zmwsfr rD, rA, rB + zmwsfaas rD, rA, rB + zmwsfraas rD, rA, rB + zmwsfans rD, rA, rB + zmwsfrans rD, rA, rB + zlddx rD, rA, rB + zldd rD, UIMM_8(rA) + zldwx rD, rA, rB + zldw rD, UIMM_8(rA) + zldhx rD, rA, rB + zldh rD, UIMM_8(rA) + zlwgsfdx rD, rA, rB + zlwgsfd rD, UIMM_4(rA) + zlwwosdx rD, rA, rB + zlwwosd rD, UIMM_4(rA) + zlwhsplatwdx rD, rA, rB + zlwhsplatwd rD, UIMM_4(rA) + zlwhsplatdx rD, rA, rB + zlwhsplatd rD, UIMM_4(rA) + zlwhgwsfdx rD, rA, rB + zlwhgwsfd rD, UIMM_4(rA) + zlwhedx rD, rA, rB + zlwhed rD, UIMM_4(rA) + zlwhosdx rD, rA, rB + zlwhosd rD, UIMM_4(rA) + zlwhoudx rD, rA, rB + zlwhoud rD, UIMM_4(rA) + zlwhx rD, rA, rB + zlwh rD, UIMM_4(rA) + zlwwx rD, rA, rB + zlww rD, UIMM_4(rA) + zlhgwsfx rD, rA, rB + zlhgwsf rD, UIMM_2(rA) + zlhhsplatx rD, rA, rB + zlhhsplat rD, UIMM_2(rA) + zstddx rS, rA, rB + zstdd rS, UIMM_8(rA) + zstdwx rS, rA, rB + zstdw rS, UIMM_8(rA) + zstdhx rS, rA, rB + zstdh rS, UIMM_8(rA) + zstwhedx rS, rA, rB + zstwhed rS, UIMM_4(rA) + zstwhodx rS, rA, rB + zstwhod rS, UIMM_4(rA) + zlhhex rS, rA, rB + zlhhe rD, UIMM_2(rA) + zlhhosx rS, rA, rB + zlhhos rD, UIMM_2(rA) + zlhhoux rS, rA, rB + zlhhou rD, UIMM_2(rA) + zsthex rS, rA, rB + zsthe rS, UIMM_2(rA) + zsthox rS, rA, rB + zstho rS, UIMM_2(rA) + zstwhx rS, rA, rB + zstwh rS, UIMM_4(rA) + zstwwx rS, rA, rB + zstww rS, UIMM_4(rA) + zlddmx rD, rA, rB + zlddu rD, UIMM_8(rA) + zldwmx rD, rA, rB + zldwu rD, UIMM_8(rA) + zldhmx rD, rA, rB + zldhu rD, UIMM_8(rA) + zlwgsfdmx rD, rA, rB + zlwgsfdu rD, UIMM_4(rA) + zlwwosdmx rD, rA, rB + zlwwosdu rD, UIMM_4(rA) + zlwhsplatwdmx rD, rA, rB + zlwhsplatwdu rD, UIMM_4(rA) + zlwhsplatdmx rD, rA, rB + zlwhsplatdu rD, UIMM_4(rA) + zlwhgwsfdmx rD, rA, rB + zlwhgwsfdu rD, UIMM_4(rA) + zlwhedmx rD, rA, rB + zlwhedu rD, UIMM_4(rA) + zlwhosdmx rD, rA, rB + zlwhosdu rD, UIMM_4(rA) + zlwhoudmx rD, rA, rB + zlwhoudu rD, UIMM_4(rA) + zlwhmx rD, rA, rB + zlwhu rD, UIMM_4(rA) + zlwwmx rD, rA, rB + zlwwu rD, UIMM_4(rA) + zlhgwsfmx rD, rA, rB + zlhgwsfu rD, UIMM_2(rA) + zlhhsplatmx rD, rA, rB + zlhhsplatu rD, UIMM_2(rA) + zstddmx rS, rA, rB + zstddu rS, UIMM_8(rA) + zstdwmx rS, rA, rB + zstdwu rS, UIMM_8(rA) + zstdhmx rS, rA, rB + zstdhu rS, UIMM_8(rA) + zstwhedmx rS, rA, rB + zstwhedu rS, UIMM_4(rA) + zstwhodmx rD, rA, rB + zstwhodu rS, UIMM_4(rA) + zlhhemx rD, rA, rB + zlhheu rD, UIMM_2(rA) + zlhhosmx rD, rA, rB + zlhhosu rD, UIMM_2(rA) + zlhhoumx rD, rA, rB + zlhhouu rD, UIMM_2(rA) + zsthemx rS, rA, rB + zstheu rS, UIMM_2(rA) + zsthomx rS, rA, rB + zsthou rS, UIMM_2(rA) + zstwhmx rS, rA, rB + zstwhu rS, UIMM_4(rA) + zstwwmx rS, rA, rB + zstwwu rS, UIMM_4(rA) diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp index 55367adc088..bbe64be0495 100644 --- a/gas/testsuite/gas/ppc/ppc.exp +++ b/gas/testsuite/gas/ppc/ppc.exp @@ -60,6 +60,11 @@ if { [istarget powerpc*-*-*] } then { run_dump_test "vle-simple-4" run_dump_test "vle-simple-5" run_dump_test "vle-simple-6" + + #fail expected until get_powerpc_dialect() patch not applied + setup_xfail "*-*-*" + run_dump_test "lsp" + run_dump_test "lsp-checks" } } diff --git a/include/ChangeLog b/include/ChangeLog index fcf8466c44a..db500dce937 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2017-08-21 Alexander Fedotov + Edmar Wienskoski + + * opcode/ppc.h (PPC_OPCODE_LSP): New define. + 2017-08-14 Gustavo Romero * elf/common.h (NT_PPC_TAR): New macro. diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h index cec0e105bd8..21b12215da1 100644 --- a/include/opcode/ppc.h +++ b/include/opcode/ppc.h @@ -215,6 +215,9 @@ extern const int vle_num_opcodes; the underlying machine instruction. */ #define PPC_OPCODE_RAW 0x40000000000ull +/* Opcode is supported by PowerPC LSP */ +#define PPC_OPCODE_LSP 0x80000000000ull + /* A macro to extract the major opcode from an instruction. */ #define PPC_OP(i) (((i) >> 26) & 0x3f) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 5cbe7e022e8..1ea12bbffda 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,37 @@ +2017-08-21 Alexander Fedotov + Edmar Wienskoski + + * ppc-opc.c (insert_evuimm2_ex0): New function. + (extract_evuimm2_ex0): Likewise. + (insert_evuimm4_ex0): Likewise. + (extract_evuimm4_ex0): Likewise. + (insert_evuimm8_ex0): Likewise. + (extract_evuimm8_ex0): Likewise. + (insert_evuimm_lt16): Likewise. + (extract_evuimm_lt16): Likewise. + (insert_rD_rS_even): Likewise. + (extract_rD_rS_even): Likewise. + (insert_off_lsp): Likewise. + (extract_off_lsp): Likewise. + (RD_EVEN): New operand. + (RS_EVEN): Likewise. + (RSQ): Adjust. + (EVUIMM_LT16): New operand. + (HTM_SI): Adjust. + (EVUIMM_2_EX0): New operand. + (EVUIMM_4): Adjust. + (EVUIMM_4_EX0): New operand. + (EVUIMM_8): Adjust. + (EVUIMM_8_EX0): New operand. + (WS): Adjust. + (VX_OFF): New operand. + (VX_LSP): New macro. + (VX_LSP_MASK): Likewise. + (VX_LSP_OFF_MASK): Likewise. + (PPC_OPCODE_LSP): Likewise. + (vle_opcodes): Add LSP opcodes. + * ppc-dis.c (ppc_mopt): Add PPC_OPCODE_LSP flag to "vle" entry. + 2017-08-09 Jiong Wang * arm-dis.c (thumb32_opcodes): Use format 'R' instead of 'S' for diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c index 5e89c50faa6..d75e59da7ca 100644 --- a/opcodes/ppc-dis.c +++ b/opcodes/ppc-dis.c @@ -233,7 +233,7 @@ struct ppc_mopt ppc_opts[] = { { "vle", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE| PPC_OPCODE_SPE | PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI - | PPC_OPCODE_E500), + | PPC_OPCODE_E500 | PPC_OPCODE_LSP), PPC_OPCODE_VLE }, { "vsx", PPC_OPCODE_PPC, PPC_OPCODE_VSX }, diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c index 426261ab214..12eb1afea21 100644 --- a/opcodes/ppc-opc.c +++ b/opcodes/ppc-opc.c @@ -131,6 +131,18 @@ static unsigned long insert_vleui (unsigned long, long, ppc_cpu_t, const char ** static long extract_vleui (unsigned long, ppc_cpu_t, int *); static unsigned long insert_vleil (unsigned long, long, ppc_cpu_t, const char **); static long extract_vleil (unsigned long, ppc_cpu_t, int *); +static unsigned long insert_evuimm2_ex0 (unsigned long, long, ppc_cpu_t, const char **); +static long extract_evuimm2_ex0 (unsigned long, ppc_cpu_t, int *); +static unsigned long insert_evuimm4_ex0 (unsigned long, long, ppc_cpu_t, const char **); +static long extract_evuimm4_ex0 (unsigned long, ppc_cpu_t, int *); +static unsigned long insert_evuimm8_ex0 (unsigned long, long, ppc_cpu_t, const char **); +static long extract_evuimm8_ex0 (unsigned long, ppc_cpu_t, int *); +static unsigned long insert_evuimm_lt16 (unsigned long, long, ppc_cpu_t, const char **); +static long extract_evuimm_lt16 (unsigned long, ppc_cpu_t, int *); +static unsigned long insert_rD_rS_even (unsigned long, long, ppc_cpu_t, const char **); +static long extract_rD_rS_even (unsigned long, ppc_cpu_t, int *); +static unsigned long insert_off_lsp (unsigned long, long, ppc_cpu_t, const char **); +static long extract_off_lsp (unsigned long, ppc_cpu_t, int *); /* The operands table. @@ -583,9 +595,13 @@ const struct powerpc_operand powerpc_operands[] = #define RD RS { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR }, +#define RD_EVEN RS + 1 +#define RS_EVEN RD_EVEN + { 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR }, + /* The RS and RT fields of the DS form stq and DQ form lq instructions, which have special value restrictions. */ -#define RSQ RS + 1 +#define RSQ RS_EVEN + 1 #define RTQ RSQ #define Q_MASK (1 << 21) { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR }, @@ -643,8 +659,11 @@ const struct powerpc_operand powerpc_operands[] = #define FC SH { 0x1f, 11, NULL, NULL, 0 }, +#define EVUIMM_LT16 SH + 1 + { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 }, + /* The SI field in a HTM X form instruction. */ -#define HTM_SI SH + 1 +#define HTM_SI EVUIMM_LT16 + 1 { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED }, /* The SH field in an MD form instruction. This is split. */ @@ -794,16 +813,25 @@ const struct powerpc_operand powerpc_operands[] = #define EVUIMM_2 SHB + 1 { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS }, +#define EVUIMM_2_EX0 EVUIMM_2 + 1 + { 0x3e, 10, insert_evuimm2_ex0, extract_evuimm2_ex0, PPC_OPERAND_PARENS }, + /* The other UIMM field in a word EVX form instruction. */ -#define EVUIMM_4 EVUIMM_2 + 1 +#define EVUIMM_4 EVUIMM_2_EX0 + 1 { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS }, +#define EVUIMM_4_EX0 EVUIMM_4 + 1 + { 0x7c, 9, insert_evuimm4_ex0, extract_evuimm4_ex0, PPC_OPERAND_PARENS }, + /* The other UIMM field in a double EVX form instruction. */ -#define EVUIMM_8 EVUIMM_4 + 1 +#define EVUIMM_8 EVUIMM_4_EX0 + 1 { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS }, +#define EVUIMM_8_EX0 EVUIMM_8 + 1 + { 0xf8, 8, insert_evuimm8_ex0, extract_evuimm8_ex0, PPC_OPERAND_PARENS }, + /* The WS or DRM field in an X form instruction. */ -#define WS EVUIMM_8 + 1 +#define WS EVUIMM_8_EX0 + 1 #define DRM WS { 0x7, 11, NULL, NULL, 0 }, @@ -970,6 +998,9 @@ const struct powerpc_operand powerpc_operands[] = /* The 8-bit IMM8 field in a XX1 form instruction. */ #define IMM8 IH + 1 { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT }, + +#define VX_OFF IMM8 + 1 + { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 }, }; const unsigned int num_powerpc_operands = (sizeof (powerpc_operands) @@ -2411,6 +2442,167 @@ extract_vleil (unsigned long insn, return ((insn >> 5) & 0xf800) | (insn & 0x7ff); } +static unsigned long +insert_evuimm2_ex0 (unsigned long insn, + long value, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + const char **errmsg) +{ + if (value > 0 && value <= 0x3e) + return insn | ((value & 0x3e) << 10); + else + { + *errmsg = _("UIMM = 00000 is illegal"); + return 0; + } +} + +static long +extract_evuimm2_ex0 (unsigned long insn, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + int *invalid) +{ + long value = ((insn >> 10) & 0x3e); + if (value == 0) + *invalid = 1; + + return value; +} + +static unsigned long +insert_evuimm4_ex0 (unsigned long insn, + long value, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + const char **errmsg) +{ + if (value > 0 && value <= 0x7c) + return insn | ((value & 0x7c) << 9); + else + { + *errmsg = _("UIMM = 00000 is illegal"); + return 0; + } +} + +static long +extract_evuimm4_ex0 (unsigned long insn, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + int *invalid) +{ + long value = ((insn >> 9) & 0x7c); + if (value == 0) + *invalid = 1; + + return value; +} + +static unsigned long +insert_evuimm8_ex0 (unsigned long insn, + long value, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + const char **errmsg) +{ + if (value > 0 && value <= 0xf8) + return insn | ((value & 0xf8) << 8); + else + { + *errmsg = _("UIMM = 00000 is illegal"); + return 0; + } +} + +static long +extract_evuimm8_ex0 (unsigned long insn, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + int *invalid) +{ + long value = ((insn >> 8) & 0xf8); + if (value == 0) + *invalid = 1; + + return value; +} + +static unsigned long +insert_evuimm_lt16 (unsigned long insn, + long value, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + const char **errmsg) +{ + if (value >= 0 && value <= 15) + return insn | ((value & 0xf) << 11); + else + { + *errmsg = _("UIMM values >15 are illegal"); + return 0; + } +} + +static long +extract_evuimm_lt16 (unsigned long insn, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + int *invalid) +{ + long value = ((insn >> 11) & 0x1f); + if (value > 15) + *invalid = 1; + + return value; +} + +static unsigned long +insert_rD_rS_even (unsigned long insn, + long value, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + const char **errmsg) +{ + if ((value & 0x1) == 0) + return insn | ((value & 0x1e) << 21); + else + { + *errmsg = _("GPR odd is illegal"); + return 0; + } +} + +static long +extract_rD_rS_even (unsigned long insn, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + int *invalid) +{ + long value = ((insn >> 21) & 0x1f); + if ((value & 0x1) != 0) + *invalid = 1; + + return value; +} + +static unsigned long +insert_off_lsp (unsigned long insn, + long value, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + const char **errmsg) +{ + if (value > 0 && value <= 0x3) + return insn | (value & 0x3); + else + { + *errmsg = _("invalid offset"); + return 0; + } +} + +static long +extract_off_lsp (unsigned long insn, + ppc_cpu_t dialect ATTRIBUTE_UNUSED, + int *invalid) +{ + long value = (insn & 0x3); + if (value == 0) + *invalid = 1; + + return value; +} /* Macros used to form opcodes. */ @@ -2645,6 +2837,13 @@ extract_vleil (unsigned long insn, /* The mask for an VX form instruction. */ #define VX_MASK VX(0x3f, 0x7ff) +/* A VX LSP form instruction. */ +#define VX_LSP(op, xop) (OP (op) | (((unsigned long)(xop)) & 0xffff)) + +/* The mask for an VX LSP form instruction. */ +#define VX_LSP_MASK VX_LSP(0x3f, 0xffff) +#define VX_LSP_OFF_MASK VX_LSP(0x3f, 0x7fc) + /* A VX_MASK with the VA field fixed. */ #define VXVA_MASK (VX_MASK | (0x1f << 16)) @@ -3125,6 +3324,7 @@ extract_vleil (unsigned long insn, #define PPCVLE PPC_OPCODE_VLE #define PPCHTM PPC_OPCODE_POWER8 #define E200Z4 PPC_OPCODE_E200Z4 +#define PPCLSP PPC_OPCODE_LSP /* The list of embedded processors that use the embedded operand ordering for the 3 operand dcbt and dcbtst instructions. */ #define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \ @@ -7134,6 +7334,686 @@ const struct powerpc_opcode vle_opcodes[] = { {"se_cmph", SE_RR(3,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, {"se_cmphl", SE_RR(3,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, +/* by major opcode */ +{"zvaddih", VX(4, 0x200), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}}, +{"zvsubifh", VX(4, 0x201), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}}, +{"zvaddh", VX(4, 0x204), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfh", VX(4, 0x205), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvaddsubfh", VX(4, 0x206), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfaddh", VX(4, 0x207), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvaddhx", VX(4, 0x20C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfhx", VX(4, 0x20D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvaddsubfhx", VX(4, 0x20E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfaddhx", VX(4, 0x20F), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zaddwus", VX(4, 0x210), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zsubfwus", VX(4, 0x211), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zaddwss", VX(4, 0x212), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zsubfwss", VX(4, 0x213), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvaddhus", VX(4, 0x214), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfhus", VX(4, 0x215), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvaddhss", VX(4, 0x216), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfhss", VX(4, 0x217), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvaddsubfhss", VX(4, 0x21A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfaddhss", VX(4, 0x21B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvaddhxss", VX(4, 0x21C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfhxss", VX(4, 0x21D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvaddsubfhxss", VX(4, 0x21E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfaddhxss", VX(4, 0x21F), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zaddheuw", VX(4, 0x220), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zsubfheuw", VX(4, 0x221), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zaddhesw", VX(4, 0x222), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zsubfhesw", VX(4, 0x223), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zaddhouw", VX(4, 0x224), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zsubfhouw", VX(4, 0x225), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zaddhosw", VX(4, 0x226), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zsubfhosw", VX(4, 0x227), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmergehih", VX(4, 0x22C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmergeloh", VX(4, 0x22D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmergehiloh", VX(4, 0x22E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmergelohih", VX(4, 0x22F), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvcmpgthu", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, +{"zvcmpgths", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, +{"zvcmplthu", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, +{"zvcmplths", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, +{"zvcmpeqh", VX(4, 0x232), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, +{"zpkswgshfrs", VX(4, 0x238), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zpkswgswfrs", VX(4, 0x239), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvpkshgwshfrs", VX(4, 0x23A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvpkswshfrs", VX(4, 0x23B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvpkswuhs", VX(4, 0x23C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvpkswshs", VX(4, 0x23D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvpkuwuhs", VX(4, 0x23E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsplatih", VX_LSP(4, 0x23F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}}, +{"zvsplatfih", VX_LSP(4, 0xA3F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}}, +{"zcntlsw", VX_LSP(4, 0x2A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvcntlzh", VX_LSP(4, 0x323F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvcntlsh", VX_LSP(4, 0x3A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"znegws", VX_LSP(4, 0x4A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvnegh", VX_LSP(4, 0x523F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvneghs", VX_LSP(4, 0x5A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvnegho", VX_LSP(4, 0x623F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvneghos", VX_LSP(4, 0x6A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zrndwh", VX_LSP(4, 0x823F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zrndwhss", VX_LSP(4, 0x8A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvabsh", VX_LSP(4, 0xA23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvabshs", VX_LSP(4, 0xAA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zabsw", VX_LSP(4, 0xB23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zabsws", VX_LSP(4, 0xBA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zsatswuw", VX_LSP(4, 0xC23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zsatuwsw", VX_LSP(4, 0xCA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zsatswuh", VX_LSP(4, 0xD23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zsatswsh", VX_LSP(4, 0xDA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvsatshuh", VX_LSP(4, 0xE23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zvsatuhsh", VX_LSP(4, 0xEA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zsatuwuh", VX_LSP(4, 0xF23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zsatuwsh", VX_LSP(4, 0xFA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, +{"zsatsduw", VX(4, 0x260), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zsatsdsw", VX(4, 0x261), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zsatuduw", VX(4, 0x262), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvselh", VX(4, 0x264), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zxtrw", VX(4, 0x264), VX_LSP_OFF_MASK, PPCLSP, 0, {RD, RA, RB, VX_OFF}}, +{"zbrminc", VX(4, 0x268), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zcircinc", VX(4, 0x269), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zdivwsf", VX(4, 0x26B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsrhu", VX(4, 0x270), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsrhs", VX(4, 0x271), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsrhiu", VX(4, 0x272), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, +{"zvsrhis", VX(4, 0x273), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, +{"zvslh", VX(4, 0x274), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvrlh", VX(4, 0x275), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvslhi", VX(4, 0x276), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, +{"zvrlhi", VX(4, 0x277), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, +{"zvslhus", VX(4, 0x278), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvslhss", VX(4, 0x279), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvslhius", VX(4, 0x27A), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, +{"zvslhiss", VX(4, 0x27B), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, +{"zslwus", VX(4, 0x27C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zslwss", VX(4, 0x27D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zslwius", VX(4, 0x27E), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}}, +{"zslwiss", VX(4, 0x27F), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}}, +{"zaddwgui", VX(4, 0x460), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zsubfwgui", VX(4, 0x461), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zaddd", VX(4, 0x462), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zsubfd", VX(4, 0x463), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvaddsubfw", VX(4, 0x464), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvsubfaddw", VX(4, 0x465), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvaddw", VX(4, 0x466), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvsubfw", VX(4, 0x467), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zaddwgsi", VX(4, 0x468), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zsubfwgsi", VX(4, 0x469), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zadddss", VX(4, 0x46A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zsubfdss", VX(4, 0x46B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvaddsubfwss", VX(4, 0x46C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvsubfaddwss", VX(4, 0x46D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvaddwss", VX(4, 0x46E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvsubfwss", VX(4, 0x46F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zaddwgsf", VX(4, 0x470), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zsubfwgsf", VX(4, 0x471), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zadddus", VX(4, 0x472), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zsubfdus", VX(4, 0x473), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvaddwus", VX(4, 0x476), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvsubfwus", VX(4, 0x477), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvunpkhgwsf", VX_LSP(4, 0x478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, +{"zvunpkhsf", VX_LSP(4, 0xC78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, +{"zvunpkhui", VX_LSP(4, 0x1478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, +{"zvunpkhsi", VX_LSP(4, 0x1C78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, +{"zunpkwgsf", VX_LSP(4, 0x2478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, +{"zvdotphgwasmf", VX(4, 0x488), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwasmfr", VX(4, 0x489), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwasmfaa", VX(4, 0x48A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwasmfraa", VX(4, 0x48B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwasmfan", VX(4, 0x48C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwasmfran", VX(4, 0x48D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhulgwsmf", VX(4, 0x490), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulgwsmfr", VX(4, 0x491), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulgwsmfaa", VX(4, 0x492), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulgwsmfraa", VX(4, 0x493), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulgwsmfan", VX(4, 0x494), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulgwsmfran", VX(4, 0x495), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulgwsmfanp", VX(4, 0x496), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulgwsmfranp", VX(4, 0x497), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegwsmf", VX(4, 0x498), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhegwsmfr", VX(4, 0x499), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhegwsmfaa", VX(4, 0x49A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhegwsmfraa", VX(4, 0x49B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhegwsmfan", VX(4, 0x49C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhegwsmfran", VX(4, 0x49D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxgwasmf", VX(4, 0x4A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxgwasmfr", VX(4, 0x4A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxgwasmfaa", VX(4, 0x4AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxgwasmfraa", VX(4, 0x4AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxgwasmfan", VX(4, 0x4AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxgwasmfran", VX(4, 0x4AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhllgwsmf", VX(4, 0x4B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllgwsmfr", VX(4, 0x4B1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllgwsmfaa", VX(4, 0x4B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllgwsmfraa", VX(4, 0x4B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllgwsmfan", VX(4, 0x4B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllgwsmfran", VX(4, 0x4B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllgwsmfanp", VX(4, 0x4B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllgwsmfranp", VX(4, 0x4B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogwsmf", VX(4, 0x4B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheogwsmfr", VX(4, 0x4B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheogwsmfaa", VX(4, 0x4BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheogwsmfraa", VX(4, 0x4BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheogwsmfan", VX(4, 0x4BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheogwsmfran", VX(4, 0x4BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwssmf", VX(4, 0x4C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwssmfr", VX(4, 0x4C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwssmfaa", VX(4, 0x4CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwssmfraa", VX(4, 0x4CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwssmfan", VX(4, 0x4CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphgwssmfran", VX(4, 0x4CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhuugwsmf", VX(4, 0x4D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuugwsmfr", VX(4, 0x4D1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuugwsmfaa", VX(4, 0x4D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuugwsmfraa", VX(4, 0x4D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuugwsmfan", VX(4, 0x4D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuugwsmfran", VX(4, 0x4D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuugwsmfanp", VX(4, 0x4D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuugwsmfranp", VX(4, 0x4D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogwsmf", VX(4, 0x4D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhogwsmfr", VX(4, 0x4D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhogwsmfaa", VX(4, 0x4DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhogwsmfraa", VX(4, 0x4DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhogwsmfan", VX(4, 0x4DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhogwsmfran", VX(4, 0x4DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhxlgwsmf", VX(4, 0x4F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlgwsmfr", VX(4, 0x4F1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlgwsmfaa", VX(4, 0x4F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlgwsmfraa", VX(4, 0x4F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlgwsmfan", VX(4, 0x4F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlgwsmfran", VX(4, 0x4F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlgwsmfanp", VX(4, 0x4F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlgwsmfranp", VX(4, 0x4F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegui", VX(4, 0x500), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgaui", VX(4, 0x501), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheguiaa", VX(4, 0x502), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgauiaa", VX(4, 0x503), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheguian", VX(4, 0x504), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgauian", VX(4, 0x505), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegsi", VX(4, 0x508), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgasi", VX(4, 0x509), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegsiaa", VX(4, 0x50A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgasiaa", VX(4, 0x50B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegsian", VX(4, 0x50C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgasian", VX(4, 0x50D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegsui", VX(4, 0x510), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgasui", VX(4, 0x511), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegsuiaa", VX(4, 0x512), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgasuiaa", VX(4, 0x513), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegsuian", VX(4, 0x514), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgasuian", VX(4, 0x515), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegsmf", VX(4, 0x518), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgasmf", VX(4, 0x519), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegsmfaa", VX(4, 0x51A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgasmfaa", VX(4, 0x51B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhegsmfan", VX(4, 0x51C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgasmfan", VX(4, 0x51D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogui", VX(4, 0x520), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgaui", VX(4, 0x521), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheoguiaa", VX(4, 0x522), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgauiaa", VX(4, 0x523), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheoguian", VX(4, 0x524), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgauian", VX(4, 0x525), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogsi", VX(4, 0x528), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgasi", VX(4, 0x529), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogsiaa", VX(4, 0x52A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgasiaa", VX(4, 0x52B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogsian", VX(4, 0x52C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgasian", VX(4, 0x52D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogsui", VX(4, 0x530), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgasui", VX(4, 0x531), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogsuiaa", VX(4, 0x532), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgasuiaa", VX(4, 0x533), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogsuian", VX(4, 0x534), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgasuian", VX(4, 0x535), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogsmf", VX(4, 0x538), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgasmf", VX(4, 0x539), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogsmfaa", VX(4, 0x53A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgasmfaa", VX(4, 0x53B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheogsmfan", VX(4, 0x53C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphxgasmfan", VX(4, 0x53D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogui", VX(4, 0x540), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgsui", VX(4, 0x541), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhoguiaa", VX(4, 0x542), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgsuiaa", VX(4, 0x543), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhoguian", VX(4, 0x544), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgsuian", VX(4, 0x545), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogsi", VX(4, 0x548), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgssi", VX(4, 0x549), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogsiaa", VX(4, 0x54A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgssiaa", VX(4, 0x54B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogsian", VX(4, 0x54C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgssian", VX(4, 0x54D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogsui", VX(4, 0x550), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgssui", VX(4, 0x551), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogsuiaa", VX(4, 0x552), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgssuiaa", VX(4, 0x553), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogsuian", VX(4, 0x554), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgssuian", VX(4, 0x555), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogsmf", VX(4, 0x558), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgssmf", VX(4, 0x559), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogsmfaa", VX(4, 0x55A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgssmfaa", VX(4, 0x55B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmhogsmfan", VX(4, 0x55C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvdotphgssmfan", VX(4, 0x55D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgui", VX(4, 0x560), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwguiaa", VX(4, 0x562), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwguiaas", VX(4, 0x563), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwguian", VX(4, 0x564), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwguians", VX(4, 0x565), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsi", VX(4, 0x568), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsiaa", VX(4, 0x56A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsiaas", VX(4, 0x56B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsian", VX(4, 0x56C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsians", VX(4, 0x56D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsui", VX(4, 0x570), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsuiaa", VX(4, 0x572), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsuiaas", VX(4, 0x573), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsuian", VX(4, 0x574), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsuians", VX(4, 0x575), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsmf", VX(4, 0x578), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsmfr", VX(4, 0x579), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsmfaa", VX(4, 0x57A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsmfraa", VX(4, 0x57B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsmfan", VX(4, 0x57C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmwgsmfran", VX(4, 0x57D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhului", VX(4, 0x580), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuluiaa", VX(4, 0x582), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuluiaas", VX(4, 0x583), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuluian", VX(4, 0x584), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuluians", VX(4, 0x585), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuluianp", VX(4, 0x586), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuluianps", VX(4, 0x587), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsi", VX(4, 0x588), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsiaa", VX(4, 0x58A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsiaas", VX(4, 0x58B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsian", VX(4, 0x58C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsians", VX(4, 0x58D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsianp", VX(4, 0x58E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsianps", VX(4, 0x58F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsui", VX(4, 0x590), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsuiaa", VX(4, 0x592), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsuiaas", VX(4, 0x593), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsuian", VX(4, 0x594), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsuians", VX(4, 0x595), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsuianp", VX(4, 0x596), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsuianps", VX(4, 0x597), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsf", VX(4, 0x598), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsfr", VX(4, 0x599), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsfaas", VX(4, 0x59A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsfraas", VX(4, 0x59B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsfans", VX(4, 0x59C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsfrans", VX(4, 0x59D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsfanps", VX(4, 0x59E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhulsfranps", VX(4, 0x59F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllui", VX(4, 0x5A0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhlluiaa", VX(4, 0x5A2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhlluiaas", VX(4, 0x5A3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhlluian", VX(4, 0x5A4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhlluians", VX(4, 0x5A5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhlluianp", VX(4, 0x5A6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhlluianps", VX(4, 0x5A7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsi", VX(4, 0x5A8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsiaa", VX(4, 0x5AA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsiaas", VX(4, 0x5AB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsian", VX(4, 0x5AC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsians", VX(4, 0x5AD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsianp", VX(4, 0x5AE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsianps", VX(4, 0x5AF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsui", VX(4, 0x5B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsuiaa", VX(4, 0x5B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsuiaas", VX(4, 0x5B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsuian", VX(4, 0x5B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsuians", VX(4, 0x5B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsuianp", VX(4, 0x5B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsuianps", VX(4, 0x5B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsf", VX(4, 0x5B8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsfr", VX(4, 0x5B9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsfaas", VX(4, 0x5BA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsfraas", VX(4, 0x5BB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsfans", VX(4, 0x5BC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsfrans", VX(4, 0x5BD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsfanps", VX(4, 0x5BE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhllsfranps", VX(4, 0x5BF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuuui", VX(4, 0x5C0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuuuiaa", VX(4, 0x5C2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuuuiaas", VX(4, 0x5C3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuuuian", VX(4, 0x5C4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuuuians", VX(4, 0x5C5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuuuianp", VX(4, 0x5C6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuuuianps", VX(4, 0x5C7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusi", VX(4, 0x5C8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusiaa", VX(4, 0x5CA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusiaas", VX(4, 0x5CB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusian", VX(4, 0x5CC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusians", VX(4, 0x5CD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusianp", VX(4, 0x5CE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusianps", VX(4, 0x5CF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusui", VX(4, 0x5D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusuiaa", VX(4, 0x5D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusuiaas", VX(4, 0x5D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusuian", VX(4, 0x5D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusuians", VX(4, 0x5D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusuianp", VX(4, 0x5D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusuianps", VX(4, 0x5D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusf", VX(4, 0x5D8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusfr", VX(4, 0x5D9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusfaas", VX(4, 0x5DA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusfraas", VX(4, 0x5DB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusfans", VX(4, 0x5DC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusfrans", VX(4, 0x5DD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusfanps", VX(4, 0x5DE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhuusfranps", VX(4, 0x5DF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlui", VX(4, 0x5E0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxluiaa", VX(4, 0x5E2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxluiaas", VX(4, 0x5E3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxluian", VX(4, 0x5E4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxluians", VX(4, 0x5E5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxluianp", VX(4, 0x5E6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxluianps", VX(4, 0x5E7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsi", VX(4, 0x5E8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsiaa", VX(4, 0x5EA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsiaas", VX(4, 0x5EB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsian", VX(4, 0x5EC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsians", VX(4, 0x5ED), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsianp", VX(4, 0x5EE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsianps", VX(4, 0x5EF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsui", VX(4, 0x5F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsuiaa", VX(4, 0x5F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsuiaas", VX(4, 0x5F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsuian", VX(4, 0x5F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsuians", VX(4, 0x5F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsuianp", VX(4, 0x5F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsuianps", VX(4, 0x5F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsf", VX(4, 0x5F8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsfr", VX(4, 0x5F9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsfaas", VX(4, 0x5FA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsfraas", VX(4, 0x5FB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsfans", VX(4, 0x5FC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsfrans", VX(4, 0x5FD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsfanps", VX(4, 0x5FE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zvmhxlsfranps", VX(4, 0x5FF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zmheui", VX(4, 0x600), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheuiaa", VX(4, 0x602), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheuiaas", VX(4, 0x603), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheuian", VX(4, 0x604), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheuians", VX(4, 0x605), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesi", VX(4, 0x608), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesiaa", VX(4, 0x60A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesiaas", VX(4, 0x60B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesian", VX(4, 0x60C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesians", VX(4, 0x60D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesui", VX(4, 0x610), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesuiaa", VX(4, 0x612), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesuiaas", VX(4, 0x613), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesuian", VX(4, 0x614), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesuians", VX(4, 0x615), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesf", VX(4, 0x618), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesfr", VX(4, 0x619), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesfaas", VX(4, 0x61A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesfraas", VX(4, 0x61B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesfans", VX(4, 0x61C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhesfrans", VX(4, 0x61D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheoui", VX(4, 0x620), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheouiaa", VX(4, 0x622), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheouiaas", VX(4, 0x623), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheouian", VX(4, 0x624), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheouians", VX(4, 0x625), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosi", VX(4, 0x628), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosiaa", VX(4, 0x62A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosiaas", VX(4, 0x62B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosian", VX(4, 0x62C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosians", VX(4, 0x62D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosui", VX(4, 0x630), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosuiaa", VX(4, 0x632), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosuiaas", VX(4, 0x633), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosuian", VX(4, 0x634), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosuians", VX(4, 0x635), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosf", VX(4, 0x638), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosfr", VX(4, 0x639), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosfaas", VX(4, 0x63A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosfraas", VX(4, 0x63B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosfans", VX(4, 0x63C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmheosfrans", VX(4, 0x63D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhoui", VX(4, 0x640), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhouiaa", VX(4, 0x642), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhouiaas", VX(4, 0x643), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhouian", VX(4, 0x644), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhouians", VX(4, 0x645), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosi", VX(4, 0x648), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosiaa", VX(4, 0x64A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosiaas", VX(4, 0x64B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosian", VX(4, 0x64C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosians", VX(4, 0x64D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosui", VX(4, 0x650), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosuiaa", VX(4, 0x652), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosuiaas", VX(4, 0x653), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosuian", VX(4, 0x654), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosuians", VX(4, 0x655), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosf", VX(4, 0x658), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosfr", VX(4, 0x659), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosfaas", VX(4, 0x65A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosfraas", VX(4, 0x65B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosfans", VX(4, 0x65C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmhosfrans", VX(4, 0x65D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhuih", VX(4, 0x660), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhuihs", VX(4, 0x661), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhuiaah", VX(4, 0x662), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhuiaahs", VX(4, 0x663), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhuianh", VX(4, 0x664), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhuianhs", VX(4, 0x665), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsihs", VX(4, 0x669), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsiaahs", VX(4, 0x66B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsianhs", VX(4, 0x66D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsuihs", VX(4, 0x671), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsuiaahs", VX(4, 0x673), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsuianhs", VX(4, 0x675), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsfh", VX(4, 0x678), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsfrh", VX(4, 0x679), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsfaahs", VX(4, 0x67A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsfraahs", VX(4, 0x67B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsfanhs", VX(4, 0x67C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvmhsfranhs", VX(4, 0x67D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphaui", VX(4, 0x680), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphauis", VX(4, 0x681), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphauiaa", VX(4, 0x682), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphauiaas", VX(4, 0x683), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphauian", VX(4, 0x684), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphauians", VX(4, 0x685), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasi", VX(4, 0x688), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasis", VX(4, 0x689), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasiaa", VX(4, 0x68A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasiaas", VX(4, 0x68B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasian", VX(4, 0x68C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasians", VX(4, 0x68D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasui", VX(4, 0x690), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasuis", VX(4, 0x691), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasuiaa", VX(4, 0x692), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasuiaas", VX(4, 0x693), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasuian", VX(4, 0x694), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasuians", VX(4, 0x695), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasfs", VX(4, 0x698), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasfrs", VX(4, 0x699), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasfaas", VX(4, 0x69A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasfraas", VX(4, 0x69B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasfans", VX(4, 0x69C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphasfrans", VX(4, 0x69D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxaui", VX(4, 0x6A0), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxauis", VX(4, 0x6A1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxauiaa", VX(4, 0x6A2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxauiaas", VX(4, 0x6A3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxauian", VX(4, 0x6A4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxauians", VX(4, 0x6A5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasi", VX(4, 0x6A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasis", VX(4, 0x6A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasiaa", VX(4, 0x6AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasiaas", VX(4, 0x6AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasian", VX(4, 0x6AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasians", VX(4, 0x6AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasui", VX(4, 0x6B0), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasuis", VX(4, 0x6B1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasuiaa", VX(4, 0x6B2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasuiaas", VX(4, 0x6B3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasuian", VX(4, 0x6B4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasuians", VX(4, 0x6B5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasfs", VX(4, 0x6B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasfrs", VX(4, 0x6B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasfaas", VX(4, 0x6BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasfraas", VX(4, 0x6BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasfans", VX(4, 0x6BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphxasfrans", VX(4, 0x6BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphsui", VX(4, 0x6C0), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphsuis", VX(4, 0x6C1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphsuiaa", VX(4, 0x6C2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphsuiaas", VX(4, 0x6C3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphsuian", VX(4, 0x6C4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphsuians", VX(4, 0x6C5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssi", VX(4, 0x6C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssis", VX(4, 0x6C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssiaa", VX(4, 0x6CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssiaas", VX(4, 0x6CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssian", VX(4, 0x6CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssians", VX(4, 0x6CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssui", VX(4, 0x6D0), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssuis", VX(4, 0x6D1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssuiaa", VX(4, 0x6D2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssuiaas", VX(4, 0x6D3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssuian", VX(4, 0x6D4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssuians", VX(4, 0x6D5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssfs", VX(4, 0x6D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssfrs", VX(4, 0x6D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssfaas", VX(4, 0x6DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssfraas", VX(4, 0x6DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssfans", VX(4, 0x6DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zvdotphssfrans", VX(4, 0x6DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwluis", VX(4, 0x6E1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwluiaa", VX(4, 0x6E2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwluiaas", VX(4, 0x6E3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwluian", VX(4, 0x6E4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwluians", VX(4, 0x6E5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwlsis", VX(4, 0x6E9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwlsiaas", VX(4, 0x6EB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwlsians", VX(4, 0x6ED), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwlsuis", VX(4, 0x6F1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwlsuiaas", VX(4, 0x6F3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwlsuians", VX(4, 0x6F5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwsf", VX(4, 0x6F8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwsfr", VX(4, 0x6F9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwsfaas", VX(4, 0x6FA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwsfraas", VX(4, 0x6FB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwsfans", VX(4, 0x6FC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zmwsfrans", VX(4, 0x6FD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlddx", VX(4, 0x300), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zldd", VX(4, 0x301), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}}, +{"zldwx", VX(4, 0x302), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zldw", VX(4, 0x303), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}}, +{"zldhx", VX(4, 0x304), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zldh", VX(4, 0x305), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}}, +{"zlwgsfdx", VX(4, 0x308), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwgsfd", VX(4, 0x309), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, +{"zlwwosdx", VX(4, 0x30A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwwosd", VX(4, 0x30B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, +{"zlwhsplatwdx", VX(4, 0x30C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhsplatwd", VX(4, 0x30D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, +{"zlwhsplatdx", VX(4, 0x30E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhsplatd", VX(4, 0x30F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, +{"zlwhgwsfdx", VX(4, 0x310), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhgwsfd", VX(4, 0x311), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, +{"zlwhedx", VX(4, 0x312), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhed", VX(4, 0x313), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, +{"zlwhosdx", VX(4, 0x314), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhosd", VX(4, 0x315), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, +{"zlwhoudx", VX(4, 0x316), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhoud", VX(4, 0x317), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, +{"zlwhx", VX(4, 0x318), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlwh", VX(4, 0x319), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}}, +{"zlwwx", VX(4, 0x31A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlww", VX(4, 0x31B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}}, +{"zlhgwsfx", VX(4, 0x31C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhgwsf", VX(4, 0x31D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, +{"zlhhsplatx", VX(4, 0x31E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhhsplat", VX(4, 0x31F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, +{"zstddx", VX(4, 0x320), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstdd", VX(4, 0x321), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}}, +{"zstdwx", VX(4, 0x322), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstdw", VX(4, 0x323), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}}, +{"zstdhx", VX(4, 0x324), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstdh", VX(4, 0x325), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}}, +{"zstwhedx", VX(4, 0x328), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstwhed", VX(4, 0x329), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}}, +{"zstwhodx", VX(4, 0x32A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstwhod", VX(4, 0x32B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}}, +{"zlhhex", VX(4, 0x330), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhhe", VX(4, 0x331), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, +{"zlhhosx", VX(4, 0x332), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhhos", VX(4, 0x333), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, +{"zlhhoux", VX(4, 0x334), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhhou", VX(4, 0x335), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, +{"zsthex", VX(4, 0x338), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, +{"zsthe", VX(4, 0x339), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}}, +{"zsthox", VX(4, 0x33A), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, +{"zstho", VX(4, 0x33B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}}, +{"zstwhx", VX(4, 0x33C), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, +{"zstwh", VX(4, 0x33D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}}, +{"zstwwx", VX(4, 0x33E), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, +{"zstww", VX(4, 0x33F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}}, +{"zlddmx", VX(4, 0x340), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlddu", VX(4, 0x341), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}}, +{"zldwmx", VX(4, 0x342), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zldwu", VX(4, 0x343), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}}, +{"zldhmx", VX(4, 0x344), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zldhu", VX(4, 0x345), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}}, +{"zlwgsfdmx", VX(4, 0x348), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwgsfdu", VX(4, 0x349), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, +{"zlwwosdmx", VX(4, 0x34A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwwosdu", VX(4, 0x34B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, +{"zlwhsplatwdmx", VX(4, 0x34C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhsplatwdu", VX(4, 0x34D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, +{"zlwhsplatdmx", VX(4, 0x34E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhsplatdu", VX(4, 0x34F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, +{"zlwhgwsfdmx", VX(4, 0x350), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhgwsfdu", VX(4, 0x351), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, +{"zlwhedmx", VX(4, 0x352), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhedu", VX(4, 0x353), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, +{"zlwhosdmx", VX(4, 0x354), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhosdu", VX(4, 0x355), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, +{"zlwhoudmx", VX(4, 0x356), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, +{"zlwhoudu", VX(4, 0x357), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, +{"zlwhmx", VX(4, 0x358), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlwhu", VX(4, 0x359), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}}, +{"zlwwmx", VX(4, 0x35A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlwwu", VX(4, 0x35B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}}, +{"zlhgwsfmx", VX(4, 0x35C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhgwsfu", VX(4, 0x35D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, +{"zlhhsplatmx", VX(4, 0x35E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhhsplatu", VX(4, 0x35F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, +{"zstddmx", VX(4, 0x360), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstddu", VX(4, 0x361), VX_MASK, PPCLSP, 0, {RS, EVUIMM_8_EX0, RA}}, +{"zstdwmx", VX(4, 0x362), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstdwu", VX(4, 0x363), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}}, +{"zstdhmx", VX(4, 0x364), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstdhu", VX(4, 0x365), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}}, +{"zstwhedmx", VX(4, 0x368), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstwhedu", VX(4, 0x369), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}}, +{"zstwhodmx", VX(4, 0x36A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, +{"zstwhodu", VX(4, 0x36B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}}, +{"zlhhemx", VX(4, 0x370), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhheu", VX(4, 0x371), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, +{"zlhhosmx", VX(4, 0x372), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhhosu", VX(4, 0x373), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, +{"zlhhoumx", VX(4, 0x374), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, +{"zlhhouu", VX(4, 0x375), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, +{"zsthemx", VX(4, 0x378), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, +{"zstheu", VX(4, 0x379), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}}, +{"zsthomx", VX(4, 0x37A), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, +{"zsthou", VX(4, 0x37B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}}, +{"zstwhmx", VX(4, 0x37C), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, +{"zstwhu", VX(4, 0x37D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}}, +{"zstwwmx", VX(4, 0x37E), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, +{"zstwwu", VX(4, 0x37F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}}, + {"e_cmpi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, {"e_cmpwi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, {"e_cmpli", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, -- 2.30.2