Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

FFREEP

131 views
Skip to first unread message

Debs

unread,
Feb 27, 2002, 8:55:57 PM2/27/02
to
Hi again

Another opcode/mnemonic question.

In NASM, FFREEP is a supported mnemonic, with the opcode "DF C0+r". As
I'm currently updating the docs, and this is one of the few
instructions I can't find much on, I thought I'd better ask so I can
make sure I get it right...

According to the nasm source code (specifically "insns.dat" if anyone
wants to check it...) it was introduced with the P6 and is
undocumented. I have confirmed that it is undocumented (almost
impossible getting official documentation about it), but what I ahve
found conflicts with the processor class...

It's mentioned in RBIL, but there is no mention of which processor
class it was first provided with (it's just down on the FP opcode
tables). I also found mention of it in the Athlon Optimisation manual
(22007.pdf, page 154).

In the AMD docs, it says:

On the AMD Athlon processor, a faster alternative is to use
the FFREEP instruction below. Note that the FFREEP
instruction, although insufficiently documented in the past,
is supported by all 32-bit x86 processors.

So, this implies that it was available on all 386 and later
processors. Does anyone know if it was actually available this early
on all x86 processors, or is that just AMD over simplifying things?


--
Debs
de...@dwiles.nospam.demon.co.uk
----
If it's true that we are here to help others, then what exactly are the others here for?

Debs

unread,
Feb 28, 2002, 1:55:54 PM2/28/02
to
Hello cyberfolk!

On Thu, 28 Feb 2002 01:55:57 +0000 (UTC), Debs spake thus:

>Hi again
>
>Another opcode/mnemonic question.
>
>In NASM, FFREEP is a supported mnemonic, with the opcode "DF C0+r". As
>I'm currently updating the docs, and this is one of the few
>instructions I can't find much on, I thought I'd better ask so I can
>make sure I get it right...

<snip>

>So, this implies that it was available on all 386 and later
>processors. Does anyone know if it was actually available this early
>on all x86 processors, or is that just AMD over simplifying things?

I found an answer in the "INTEL 80287 PROGRAMMER'S REFERENCE MANUAL
1987". It seems that the instruction was supported in the 287, where
it says:

DF 1101 1111 1100 0REG (6)
The marked encodings are not generated by the language translators.
If, however, the 80287 encounters one of these encodings in the
instruction stream, it will execute it as follows: FFREE ST(i) and
pop stack

So, it seems that it was there (and apparently still available in
later processors, although only marked as reserved). Im going to
assume (for the purpose of documenting it) that it was first available
on the 287 (ie not available on the 8087). I look forward to the day
when I have access to enough different systems (old and new) to test
this sort of instruction without having to wade through several
hundred MB of documents :)

0 new messages