paddq and psubq support.
authorAlan Modra <amodra@gmail.com>
Thu, 22 Mar 2001 02:27:54 +0000 (02:27 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 22 Mar 2001 02:27:54 +0000 (02:27 +0000)
include/opcode/ChangeLog
include/opcode/i386.h
opcodes/ChangeLog
opcodes/i386-dis.c

index eef5c4dc6fd86a01ddc92becfde1e2f64cbc7fce..1c1cb558e87411e3db27370eaf4365794ccd6f22 100644 (file)
@@ -1,3 +1,7 @@
+2001-03-22  Alan Modra  <alan@linuxcare.com.au>
+
+       * i386.h (i386_optab): Add paddq, psubq.
+
 2001-03-19  Alan Modra  <alan@linuxcare.com.au>
 
        * i386.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Define.
index f480dd4003efeeeb6ad9c70660102fb418800e79..44d92aeff8750f715038dcacb966a089b858762d 100644 (file)
@@ -993,6 +993,8 @@ static const template i386_optab[] = {
 {"paddw",    2, 0x660ffd,X,CpuSSE2,FP|Modrm,           { RegXMM|LLongMem, RegXMM, 0 } },
 {"paddd",    2, 0x0ffe, X, CpuMMX, FP|Modrm,           { RegMMX|LongMem, RegMMX, 0 } },
 {"paddd",    2, 0x660ffe,X,CpuSSE2,FP|Modrm,           { RegXMM|LLongMem, RegXMM, 0 } },
+{"paddq",    2, 0x0fd4, X, CpuMMX, FP|Modrm,           { RegMMX|LLongMem, RegMMX, 0 } },
+{"paddq",    2, 0x660fd4,X,CpuSSE2,FP|Modrm,           { RegXMM|LLongMem, RegXMM, 0 } },
 {"paddsb",   2, 0x0fec, X, CpuMMX, FP|Modrm,           { RegMMX|LongMem, RegMMX, 0 } },
 {"paddsb",   2, 0x660fec,X,CpuSSE2,FP|Modrm,           { RegXMM|LLongMem, RegXMM, 0 } },
 {"paddsw",   2, 0x0fed, X, CpuMMX, FP|Modrm,           { RegMMX|LongMem, RegMMX, 0 } },
@@ -1063,6 +1065,8 @@ static const template i386_optab[] = {
 {"psubw",    2, 0x660ff9,X,CpuSSE2,FP|Modrm,           { RegXMM|LLongMem, RegXMM, 0 } },
 {"psubd",    2, 0x0ffa, X, CpuMMX, FP|Modrm,           { RegMMX|LongMem, RegMMX, 0 } },
 {"psubd",    2, 0x660ffa,X,CpuSSE2,FP|Modrm,           { RegXMM|LLongMem, RegXMM, 0 } },
+{"psubq",    2, 0x0ffb, X, CpuMMX, FP|Modrm,           { RegMMX|LLongMem, RegMMX, 0 } },
+{"psubq",    2, 0x660ffb,X,CpuSSE2,FP|Modrm,           { RegXMM|LLongMem, RegXMM, 0 } },
 {"psubsb",   2, 0x0fe8, X, CpuMMX, FP|Modrm,           { RegMMX|LongMem, RegMMX, 0 } },
 {"psubsb",   2, 0x660fe8,X,CpuSSE2,FP|Modrm,           { RegXMM|LLongMem, RegXMM, 0 } },
 {"psubsw",   2, 0x0fe9, X, CpuMMX, FP|Modrm,           { RegMMX|LongMem, RegMMX, 0 } },
index 692a029c4a0cc2c0fc8742328034b0ba42b90fe1..b75e0b33055feac86ad90bed839d92cf3dca6179 100644 (file)
@@ -1,3 +1,9 @@
+2001-03-22  Alan Modra  <alan@linuxcare.com.au>
+
+       * i386-dis.c (dis386_twobyte_att): Add entries for paddq, psubq.
+       (dis386_twobyte_intel): Likewise.
+       (twobyte_has_modrm): Set entry for paddq, psubq.
+
 2001-03-20  Patrick Macdonald  <patrickm@redhat.com>
 
         * cgen-dis.in (print_insn_@arch@): Add support for target machine
index b2fc9e10fabc6d928e19581f8e94b9a446e9c1f0..399d61cb4df7f71df09f84cc86ca2ced64d9a073 100644 (file)
@@ -1854,7 +1854,7 @@ static const struct dis386 dis386_twobyte_att[] = {
   { "psrlw", MX, EM, XX },
   { "psrld", MX, EM, XX },
   { "psrlq", MX, EM, XX },
-  { "(bad)", XX, XX, XX },
+  { "paddq", MX, EM, XX },
   { "pmullw", MX, EM, XX },
   { PREGRP21 },
   { "pmovmskb", Ev, MX, XX },
@@ -1898,7 +1898,7 @@ static const struct dis386 dis386_twobyte_att[] = {
   { "psubb", MX, EM, XX },
   { "psubw", MX, EM, XX },
   { "psubd", MX, EM, XX },
-  { "(bad)", XX, XX, XX },
+  { "psubq", MX, EM, XX },
   { "paddb", MX, EM, XX },
   { "paddw", MX, EM, XX },
   { "paddd", MX, EM, XX },
@@ -2146,7 +2146,7 @@ static const struct dis386 dis386_twobyte_intel[] = {
   { "psrlw", MX, EM, XX },
   { "psrld", MX, EM, XX },
   { "psrlq", MX, EM, XX },
-  { "(bad)", XX, XX, XX },
+  { "paddq", MX, EM, XX },
   { "pmullw", MX, EM, XX },
   { PREGRP21 },
   { "pmovmskb", Ev, MX, XX },
@@ -2190,7 +2190,7 @@ static const struct dis386 dis386_twobyte_intel[] = {
   { "psubb", MX, EM, XX },
   { "psubw", MX, EM, XX },
   { "psubd", MX, EM, XX },
-  { "(bad)", XX, XX, XX },
+  { "psubq", MX, EM, XX },
   { "paddb", MX, EM, XX },
   { "paddw", MX, EM, XX },
   { "paddd", MX, EM, XX },
@@ -2236,9 +2236,9 @@ static const unsigned char twobyte_has_modrm[256] = {
   /* a0 */ 0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1, /* af */
   /* b0 */ 1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1, /* bf */
   /* c0 */ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, /* cf */
-  /* d0 */ 0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1, /* df */
+  /* d0 */ 0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1, /* df */
   /* e0 */ 1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1, /* ef */
-  /* f0 */ 0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0  /* ff */
+  /* f0 */ 0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0  /* ff */
   /*       -------------------------------        */
   /*       0 1 2 3 4 5 6 7 8 9 a b c d e f        */
 };