From 87890af05c79e3fb1cfb2cdc0ffa0cea8a3b26da Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 22 Mar 2001 02:27:54 +0000 Subject: [PATCH] paddq and psubq support. --- include/opcode/ChangeLog | 4 ++++ include/opcode/i386.h | 4 ++++ opcodes/ChangeLog | 6 ++++++ opcodes/i386-dis.c | 12 ++++++------ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index eef5c4dc6fd..1c1cb558e87 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,7 @@ +2001-03-22 Alan Modra + + * i386.h (i386_optab): Add paddq, psubq. + 2001-03-19 Alan Modra * i386.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Define. diff --git a/include/opcode/i386.h b/include/opcode/i386.h index f480dd4003e..44d92aeff87 100644 --- a/include/opcode/i386.h +++ b/include/opcode/i386.h @@ -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 } }, diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 692a029c4a0..b75e0b33055 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2001-03-22 Alan Modra + + * 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 * cgen-dis.in (print_insn_@arch@): Add support for target machine diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index b2fc9e10fab..399d61cb4df 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -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 */ }; -- 2.30.2