diff options
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelok.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelok.s | 6 | ||||
-rw-r--r-- | include/opcode/ChangeLog | 7 | ||||
-rw-r--r-- | include/opcode/i386.h | 14 |
5 files changed, 26 insertions, 10 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 37e74ec..9e031b6 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2005-02-09 Jan Beulich <jbeulich@novell.com> + + * gas/i386/intelok.s: Remove comments disabling alternative forms of + fbld, fbstp, and fldcw. + * gas/i386/intelok.d: Expect two instances of fbld, fbstp, and fldcw. + 2005-02-07 Inderpreet Singh <inderpreetb@noida.hcltech.com> * gas/maxq10/jump.d: Fixed relative jump offset. diff --git a/gas/testsuite/gas/i386/intelok.d b/gas/testsuite/gas/i386/intelok.d index 02ad234..265aaa2 100644 --- a/gas/testsuite/gas/i386/intelok.d +++ b/gas/testsuite/gas/i386/intelok.d @@ -34,6 +34,8 @@ Disassembly of section .text: [ ]*[0-9a-f]+: d8 00[ ]+fadd[ ]+DWORD PTR \[eax\] [ ]*[0-9a-f]+: dc 00[ ]+fadd[ ]+QWORD PTR \[eax\] [ ]*[0-9a-f]+: df 20[ ]+fbld[ ]+(TBYTE PTR )?\[eax\] +[ ]*[0-9a-f]+: df 20[ ]+fbld[ ]+(TBYTE PTR )?\[eax\] +[ ]*[0-9a-f]+: df 30[ ]+fbstp[ ]+(TBYTE PTR )?\[eax\] [ ]*[0-9a-f]+: df 30[ ]+fbstp[ ]+(TBYTE PTR )?\[eax\] [ ]*[0-9a-f]+: da 00[ ]+fiadd[ ]+DWORD PTR \[eax\] [ ]*[0-9a-f]+: de 00[ ]+fiadd[ ]+WORD PTR \[eax\] @@ -52,6 +54,7 @@ Disassembly of section .text: [ ]*[0-9a-f]+: dd 00[ ]+fld[ ]+QWORD PTR \[eax\] [ ]*[0-9a-f]+: db 28[ ]+fld[ ]+TBYTE PTR \[eax\] [ ]*[0-9a-f]+: d9 28[ ]+fldcw[ ]+(WORD PTR )?\[eax\] +[ ]*[0-9a-f]+: d9 28[ ]+fldcw[ ]+(WORD PTR )?\[eax\] [ ]*[0-9a-f]+: d9 20[ ]+fldenvd?[ ]+\[eax\] [ ]*[0-9a-f]+: d9 20[ ]+fldenvd?[ ]+\[eax\] [ ]*[0-9a-f]+: 66 d9 20[ ]+fldenvw[ ]+\[eax\] diff --git a/gas/testsuite/gas/i386/intelok.s b/gas/testsuite/gas/i386/intelok.s index e0a0792..f13793a 100644 --- a/gas/testsuite/gas/i386/intelok.s +++ b/gas/testsuite/gas/i386/intelok.s @@ -28,9 +28,9 @@ start: fadd dword ptr [eax] fadd qword ptr [eax] fbld [eax] -#XXX fbld tbyte ptr [eax] + fbld tbyte ptr [eax] fbstp [eax] -#XXX fbstp tbyte ptr [eax] + fbstp tbyte ptr [eax] fiadd dword ptr [eax] fiadd word ptr [eax] fild dword ptr [eax] @@ -48,7 +48,7 @@ start: fld qword ptr [eax] fld tbyte ptr [eax] fldcw [eax] -#XXX fldcw word ptr [eax] + fldcw word ptr [eax] fldenv [eax] fldenvd [eax] fldenvw [eax] diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 44c7dc4..7844fee 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,10 @@ +2005-02-09 Jan Beulich <jbeulich@novell.com> + + PR gas/707 + * i386.h (i386_optab): Add x_Suf to fbld and fbstp. Add w_Suf and + FloatMF to fldcw, fstcw, fnstcw, and the memory formas of fstsw and + fnstsw. + 2005-01-25 Alexandre Oliva <aoliva@redhat.com> 2004-11-10 Alexandre Oliva <aoliva@redhat.com> diff --git a/include/opcode/i386.h b/include/opcode/i386.h index bceedfc..0717787 100644 --- a/include/opcode/i386.h +++ b/include/opcode/i386.h @@ -601,7 +601,7 @@ static const template i386_optab[] = {"fild", 1, 0xdf, 5, 0, q_FP|Modrm, { LLongMem, 0, 0} }, {"fildll", 1, 0xdf, 5, 0, FP|Modrm, { LLongMem, 0, 0} }, {"fldt", 1, 0xdb, 5, 0, FP|Modrm, { LLongMem, 0, 0} }, -{"fbld", 1, 0xdf, 4, 0, FP|Modrm, { LLongMem, 0, 0} }, +{"fbld", 1, 0xdf, 4, 0, x_Suf|Modrm, { LLongMem, 0, 0} }, /* store (no pop) */ {"fst", 1, 0xddd0, X, 0, FP|ShortForm, { FloatReg, 0, 0} }, @@ -619,7 +619,7 @@ static const template i386_optab[] = {"fistp", 1, 0xdf, 7, 0, q_FP|Modrm, { LLongMem, 0, 0} }, {"fistpll",1, 0xdf, 7, 0, FP|Modrm, { LLongMem, 0, 0} }, {"fstpt", 1, 0xdb, 7, 0, FP|Modrm, { LLongMem, 0, 0} }, -{"fbstp", 1, 0xdf, 6, 0, FP|Modrm, { LLongMem, 0, 0} }, +{"fbstp", 1, 0xdf, 6, 0, x_Suf|Modrm, { LLongMem, 0, 0} }, /* exchange %st<n> with %st0 */ {"fxch", 1, 0xd9c8, X, 0, FP|ShortForm, { FloatReg, 0, 0} }, @@ -812,16 +812,16 @@ static const template i386_optab[] = /* processor control */ {"fninit", 0, 0xdbe3, X, 0, FP, { 0, 0, 0} }, {"finit", 0, 0xdbe3, X, 0, FP|FWait, { 0, 0, 0} }, -{"fldcw", 1, 0xd9, 5, 0, FP|Modrm, { ShortMem, 0, 0} }, -{"fnstcw", 1, 0xd9, 7, 0, FP|Modrm, { ShortMem, 0, 0} }, -{"fstcw", 1, 0xd9, 7, 0, FP|FWait|Modrm, { ShortMem, 0, 0} }, +{"fldcw", 1, 0xd9, 5, 0, w_Suf|FloatMF|Modrm, { ShortMem, 0, 0} }, +{"fnstcw", 1, 0xd9, 7, 0, w_Suf|FloatMF|Modrm, { ShortMem, 0, 0} }, +{"fstcw", 1, 0xd9, 7, 0, w_Suf|FloatMF|FWait|Modrm, { ShortMem, 0, 0} }, /* XXX should reject %al, %eax, and %rax */ {"fnstsw", 1, 0xdfe0, X, 0, FP|IgnoreSize, { Acc, 0, 0} }, -{"fnstsw", 1, 0xdd, 7, 0, FP|Modrm, { ShortMem, 0, 0} }, +{"fnstsw", 1, 0xdd, 7, 0, w_Suf|FloatMF|Modrm, { ShortMem, 0, 0} }, {"fnstsw", 0, 0xdfe0, X, 0, FP, { 0, 0, 0} }, /* XXX should reject %al, %eax, and %rax */ {"fstsw", 1, 0xdfe0, X, 0, FP|FWait|IgnoreSize, { Acc, 0, 0} }, -{"fstsw", 1, 0xdd, 7, 0, FP|FWait|Modrm, { ShortMem, 0, 0} }, +{"fstsw", 1, 0xdd, 7, 0, w_Suf|FloatMF|FWait|Modrm, { ShortMem, 0, 0} }, {"fstsw", 0, 0xdfe0, X, 0, FP|FWait, { 0, 0, 0} }, {"fnclex", 0, 0xdbe2, X, 0, FP, { 0, 0, 0} }, {"fclex", 0, 0xdbe2, X, 0, FP|FWait, { 0, 0, 0} }, |