mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
Small tweaks to sse2 instructions.
This commit is contained in:
parent
2adab5d0b2
commit
0f17484fd3
@ -1,3 +1,8 @@
|
||||
2001-03-24 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* gas/i386/ssemmx2.s: Change movntq to movntdq.
|
||||
* gas/i386/ssemmx2.d: Matching change.
|
||||
|
||||
2001-03-23 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* gas/cris/pic-err-1.s, gas/cris/rd-pic-1.s, gas/cris/rd-pic-1.d:
|
||||
|
@ -33,7 +33,7 @@ Disassembly of section .text:
|
||||
[ ]+65: f3 0f 70 75 00 04[ ]+pshufhw \$0x4,0x0\(%ebp\),%xmm6
|
||||
[ ]+6b: f2 0f 70 da 01[ ]+pshuflw \$0x1,%xmm2,%xmm3
|
||||
[ ]+70: f2 0f 70 75 00 04[ ]+pshuflw \$0x4,0x0\(%ebp\),%xmm6
|
||||
[ ]+76: 66 0f e7 10[ ]+movntq %xmm2,\(%eax\)
|
||||
[ ]+76: 66 0f e7 10[ ]+movntdq %xmm2,\(%eax\)
|
||||
[ ]+7a: 66 0f 60 90 90 90 90 90 punpcklbw 0x90909090\(%eax\),%xmm2
|
||||
[ ]+82: 66 0f 61 90 90 90 90 90 punpcklwd 0x90909090\(%eax\),%xmm2
|
||||
[ ]+8a: 66 0f 62 90 90 90 90 90 punpckldq 0x90909090\(%eax\),%xmm2
|
||||
|
@ -26,7 +26,7 @@ foo:
|
||||
pshufhw $0x4,0x0(%ebp),%xmm6
|
||||
pshuflw $0x1,%xmm2,%xmm3
|
||||
pshuflw $0x4,0x0(%ebp),%xmm6
|
||||
movntq %xmm2,(%eax)
|
||||
movntdq %xmm2,(%eax)
|
||||
punpcklbw 0x90909090(%eax),%xmm2
|
||||
punpcklwd 0x90909090(%eax),%xmm2
|
||||
punpckldq 0x90909090(%eax),%xmm2
|
||||
|
@ -1,3 +1,8 @@
|
||||
2001-03-24 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* i386.h (i386_optab): Correct entry for "movntdq". Add "punpcklqdq".
|
||||
Add InvMem to first operand of "maskmovdqu".
|
||||
|
||||
2001-03-22 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* cris.h (ADD_PC_INCR_OPCODE): New macro.
|
||||
|
@ -1140,7 +1140,7 @@ static const template i386_optab[] = {
|
||||
{"movmskps", 2, 0x0f50, X, CpuSSE, FP|Modrm, { RegXMM|InvMem, Reg32, 0 } },
|
||||
{"movntps", 2, 0x0f2b, X, CpuSSE, FP|Modrm, { RegXMM, LLongMem, 0 } },
|
||||
{"movntq", 2, 0x0fe7, X, CpuSSE, FP|Modrm, { RegMMX, LLongMem, 0 } },
|
||||
{"movntq", 2, 0x660fe7, X, CpuSSE2,FP|Modrm, { RegXMM, LLongMem, 0 } },
|
||||
{"movntdq", 2, 0x660fe7, X, CpuSSE2,FP|Modrm, { RegXMM, LLongMem, 0 } },
|
||||
{"movss", 2, 0xf30f10, X, CpuSSE, FP|Modrm, { RegXMM|WordMem, RegXMM, 0 } },
|
||||
{"movss", 2, 0xf30f11, X, CpuSSE, FP|Modrm, { RegXMM, RegXMM|WordMem, 0 } },
|
||||
{"movups", 2, 0x0f10, X, CpuSSE, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
|
||||
@ -1262,7 +1262,7 @@ static const template i386_optab[] = {
|
||||
{"cvttsd2si", 2, 0xf20f2c, X, CpuSSE2, lq_Suf|IgnoreSize|Modrm,{ RegXMM|WordMem, Reg32|Reg64, 0 } },
|
||||
{"cvttpd2dq", 2, 0x660fe6, X, CpuSSE2, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
|
||||
{"cvttps2dq", 2, 0xf30f5b, X, CpuSSE2, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
|
||||
{"maskmovdqu",2, 0x660ff7, X, CpuSSE2, FP|Modrm, { RegXMM, RegXMM, 0 } },
|
||||
{"maskmovdqu",2, 0x660ff7, X, CpuSSE2, FP|Modrm, { RegXMM|InvMem, RegXMM, 0 } },
|
||||
{"movdqa", 2, 0x660f6f, X, CpuSSE2, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
|
||||
{"movdqa", 2, 0x660f7f, X, CpuSSE2, FP|Modrm, { RegXMM, RegXMM|LLongMem, 0 } },
|
||||
{"movdqu", 2, 0xf30f6f, X, CpuSSE2, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
|
||||
@ -1277,6 +1277,7 @@ static const template i386_optab[] = {
|
||||
{"pslldq", 2, 0x660f73, 7, CpuSSE2, FP|Modrm, { Imm8, RegXMM, 0 } },
|
||||
{"psrldq", 2, 0x660f73, 3, CpuSSE2, FP|Modrm, { Imm8, RegXMM, 0 } },
|
||||
{"punpckhqdq",2, 0x660f6d, X, CpuSSE2, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
|
||||
{"punpcklqdq",2, 0x660f6c, X, CpuSSE2, FP|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
|
||||
|
||||
/* AMD 3DNow! instructions. */
|
||||
|
||||
|
@ -1,3 +1,16 @@
|
||||
2001-03-24 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* i386-dis.c (PREGRP25): Define.
|
||||
(dis386_twobyte_att): Use here in place of "movntq" entry.
|
||||
(dis386_twobyte_intel): Likewise.
|
||||
(prefix_user_table): Add PREGRP25 entry for "movntq" and "movntdq".
|
||||
(PREGRP26): Define.
|
||||
(dis386_twobyte_att): Use here.
|
||||
(dis386_twobyte_intel): Likewise.
|
||||
(prefix_user_table): Add PREGRP26 entry for "punpcklqdq".
|
||||
(prefix_user_table <maskmovdqu>): XM operand, not MX.
|
||||
(prefix_user_table): Cosmetic changes to "bad" entries.
|
||||
|
||||
2001-03-23 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* mips-opc.c: Remove extraneous whitespace.
|
||||
|
@ -409,6 +409,8 @@ static void BadOp PARAMS ((void));
|
||||
#define PREGRP22 NULL, NULL, 22, NULL, USE_PREFIX_USER_TABLE, NULL, 0
|
||||
#define PREGRP23 NULL, NULL, 23, NULL, USE_PREFIX_USER_TABLE, NULL, 0
|
||||
#define PREGRP24 NULL, NULL, 24, NULL, USE_PREFIX_USER_TABLE, NULL, 0
|
||||
#define PREGRP25 NULL, NULL, 25, NULL, USE_PREFIX_USER_TABLE, NULL, 0
|
||||
#define PREGRP26 NULL, NULL, 26, NULL, USE_PREFIX_USER_TABLE, NULL, 0
|
||||
|
||||
#define FLOATCODE 50
|
||||
#define FLOAT NULL, NULL, FLOATCODE, NULL, 0, NULL, 0
|
||||
@ -1737,7 +1739,7 @@ static const struct dis386 dis386_twobyte_att[] = {
|
||||
{ "punpckhwd", MX, EM, XX },
|
||||
{ "punpckhdq", MX, EM, XX },
|
||||
{ "packssdw", MX, EM, XX },
|
||||
{ "(bad)", XX, XX, XX },
|
||||
{ PREGRP26 },
|
||||
{ PREGRP24 },
|
||||
{ "movd", MX, Ed, XX },
|
||||
{ PREGRP19 },
|
||||
@ -1875,7 +1877,7 @@ static const struct dis386 dis386_twobyte_att[] = {
|
||||
{ "pmulhuw", MX, EM, XX },
|
||||
{ "pmulhw", MX, EM, XX },
|
||||
{ PREGRP15 },
|
||||
{ "movntq", Ev, MX, XX },
|
||||
{ PREGRP25 },
|
||||
/* e8 */
|
||||
{ "psubsb", MX, EM, XX },
|
||||
{ "psubsw", MX, EM, XX },
|
||||
@ -2029,7 +2031,7 @@ static const struct dis386 dis386_twobyte_intel[] = {
|
||||
{ "punpckhwd", MX, EM, XX },
|
||||
{ "punpckhdq", MX, EM, XX },
|
||||
{ "packssdw", MX, EM, XX },
|
||||
{ "(bad)", XX, XX, XX },
|
||||
{ PREGRP26 },
|
||||
{ PREGRP24 },
|
||||
{ "movd", MX, Ed, XX },
|
||||
{ PREGRP19 },
|
||||
@ -2167,7 +2169,7 @@ static const struct dis386 dis386_twobyte_intel[] = {
|
||||
{ "pmulhuw", MX, EM, XX },
|
||||
{ "pmulhw", MX, EM, XX },
|
||||
{ PREGRP15 },
|
||||
{ "movntq", Ev, MX, XX },
|
||||
{ PREGRP25 },
|
||||
/* e8 */
|
||||
{ "psubsb", MX, EM, XX },
|
||||
{ "psubsw", MX, EM, XX },
|
||||
@ -2693,7 +2695,7 @@ static const struct dis386 prefix_user_table[][4] = {
|
||||
{
|
||||
{ "maskmovq", MX, EM, XX },
|
||||
{ "(bad)", XM, EX, XX },
|
||||
{ "maskmovdqu", MX, EX, XX },
|
||||
{ "maskmovdqu", XM, EX, XX },
|
||||
{ "(bad)", XM, EX, XX },
|
||||
},
|
||||
/* PREGRP19 */
|
||||
@ -2729,14 +2731,28 @@ static const struct dis386 prefix_user_table[][4] = {
|
||||
{ "movd", Ed, MX, XX },
|
||||
{ "movq", Ed, XM, XX },
|
||||
{ "movd", Ed, XM, XX },
|
||||
{ "(bad)", EX, XM, XX },
|
||||
{ "(bad)", Ed, XM, XX },
|
||||
},
|
||||
/* PREGRP24 */
|
||||
{
|
||||
{ "(bad)", EX, XM, XX },
|
||||
{ "(bad)", EX, XM, XX },
|
||||
{ "(bad)", MX, EX, XX },
|
||||
{ "(bad)", XM, EX, XX },
|
||||
{ "punpckhqdq", XM, EX, XX },
|
||||
{ "(bad)", EX, XM, XX },
|
||||
{ "(bad)", XM, EX, XX },
|
||||
},
|
||||
/* PREGRP25 */
|
||||
{
|
||||
{ "movntq", Ev, MX, XX },
|
||||
{ "(bad)", Ev, XM, XX },
|
||||
{ "movntdq", Ev, XM, XX },
|
||||
{ "(bad)", Ev, XM, XX },
|
||||
},
|
||||
/* PREGRP26 */
|
||||
{
|
||||
{ "(bad)", MX, EX, XX },
|
||||
{ "(bad)", XM, EX, XX },
|
||||
{ "punpcklqdq", XM, EX, XX },
|
||||
{ "(bad)", XM, EX, XX },
|
||||
},
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user