- ↑ IidHandlers
- assemble SSE 3DNow! machine instructions.
- See also
- IiHandlers,
[RoseCompiler]
iid PROGRAM FORMAT=COFF,MODEL=FLAT,WIDTH=32
INCLUDEHEAD "euroasm.htm" ; Interface (structures, symbols and macros) of other modules.
INCLUDEHEAD \ ; Include headers of another modules used in this module.
ea.htm, \
eaopt.htm, \
exp.htm, \
ii.htm, \
msg.htm, \
pgm.htm, \
pgmopt.htm, \
sss.htm, \
stm.htm, \
sym.htm, \
syswin.htm, \
;;
iid HEAD ; Start of module interface.
- ↑ %IidList
- enumerates machine instructions
of this family which €ASM can assemble.
Each instruction declared in %IidList
requires the corresponding
handler in this file.
- See also
- DictLookupIi
%IidList %SET \
FEMMS, \
PAVGUSB, \
PF2ID, \
PF2IW, \
PFACC, \
PFADD, \
PFCMPEQ, \
PFCMPGE, \
PFCMPGT, \
PFMAX, \
PFMIN, \
PFMUL, \
PFNACC, \
PFPNACC, \
PFRCP, \
PFRCPIT1, \
PFRCPIT2, \
PFRCPV, \
PFRSQIT1, \
PFRSQRT, \
PFRSQRTV, \
PFSUB, \
PFSUBR, \
PI2FD, \
PI2FW, \
PMULHRW, \
PMULHRWA, \
PSWAPD, \
;
ENDHEAD iid ; End of module interface.
- ↑ IidGroup3DNow
- IidGroup3DNow is a common handler for (deprecated)
[D3Now] instructions.
- Input
- CL is the immediate byte which selects 3DNow! instruction.
EDI is pointer to II structure with parsed operands.
EDX has operand types as set by IiAssemble.
- Tested by
- t3665
t3670
t3675
t3680
IidGroup3DNow:: PROC
IiRequire 686,AMD,MMX,D3NOW
IiEncoding IMM=BYTE,DATA=QWORD
MOV [EDI+II.ImmLow],CL
IiEmitOpcode 0x0F,0x0F
IiOpEn RM
IiModRM /r
IiDispatchFormat mmx.mmx, mmx.mem
.mmx.mmx:
.mmx.mem:
RET
ENDP IidGroup3DNow::
- ↑ PI2FW
- Packed Integer to Floating-Point Word Conversion
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x0C
- CPU
- AMD K6-2, deprecated
- Documented
- [D3Now]
- Tested by
- T3665
- Tested by
- t3665
IidPI2FW:: PROC
MOV CL,0x0C
JMP IidGroup3DNow:
ENDP IidPI2FW::
- ↑ PI2FD
- Packed Integer to Floating-Point Doubleword Conversion
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x0D
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- HSUBPS
- Documented
- [D3Now]
- Tested by
- T3665
- Tested by
- t3665
IidPI2FD:: PROC
MOV CL,0x0D
JMP IidGroup3DNow:
ENDP IidPI2FD::
- ↑ PF2IW
- Packed Floating-Point to Integer Word Conversion
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x1C
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- CVTPS2DQ
- Documented
- [D3Now]
- Tested by
- T3665
- Tested by
- t3665
IidPF2IW:: PROC
MOV CL,0x1C
JMP IidGroup3DNow:
ENDP IidPF2IW::
- ↑ PF2ID
- Packed Floating-Point to Integer Doubleword Conversion
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x1D
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- CVTTPS2DQ
- Documented
- [D3Now]
- Tested by
- T3665
- Tested by
- t3665
IidPF2ID:: PROC
MOV CL,0x1D
JMP IidGroup3DNow:
ENDP IidPF2ID::
- ↑ PFRCPV
- Packed floating-point reciprocal approximation
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x96 .
- CPU
- GEODE, deprecated
- Recommended substitution
- RCPSS
- Documented
- [Geode]
- Tested by
- T3680
- Tested by
- t3680
IidPFRCPV:: PROC
MOV CL,0x86
JMP IidGroup3DNow:
ENDP IidPFRCPV::
- ↑ PFRSQRTV
- Packed Floating-Point Reciprocal Square Root Approximation
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x87
- CPU
- GEODE, deprecated
- Documented
- [Geode]
- Tested by
- T3680
- Tested by
- t3680
IidPFRSQRTV:: PROC
IiRequire CYRIX
MOV CL,0x87
JMP IidGroup3DNow:
ENDP IidPFRSQRTV::
- ↑ PFNACC
- Packed Floating-Point Negative Accumulate
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x8A
- CPU
- AMD K6-2, deprecated
- Documented
- [D3Now]
- Tested by
- T3670
- Tested by
- t3670
IidPFNACC:: PROC
MOV CL,0x8A
JMP IidGroup3DNow:
ENDP IidPFNACC::
- ↑ PFPNACC
- Packed Floating-Point Positive-Negative Accumulate
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x8E
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- ADDSUBPS
- Documented
- [D3Now]
- Tested by
- T3670
- Tested by
- t3670
IidPFPNACC:: PROC
MOV CL,0x8E
JMP IidGroup3DNow:
ENDP IidPFPNACC::
- ↑ PFCMPGE
- Packed Floating-Point Compare Greater or Equal
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x90
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- CMPSS
- Documented
- [D3Now]
- Tested by
- T3665
- Tested by
- t3665
IidPFCMPGE:: PROC
MOV CL,0x90
JMP IidGroup3DNow:
ENDP IidPFCMPGE::
- ↑ PFMIN
- Packed Single-Precision Floating-Point Minimum
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x94
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- MINPS
- Documented
- [D3Now]
- Tested by
- T3675
- Tested by
- t3675
IidPFMIN:: PROC
MOV CL,0x94
JMP IidGroup3DNow:
ENDP IidPFMIN::
- ↑ PFRCP
- Floating-Point Reciprocal Approximation
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x96
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- RCPSS
- Documented
- [D3Now]
- Tested by
- T3680
- Tested by
- t3680
IidPFRCP:: PROC
IiRequire CYRIX
MOV CL,0x96
JMP IidGroup3DNow:
ENDP IidPFRCP::
- ↑ PFRSQRT
- Packed Floating-Point Reciprocal Square Root Approximation
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x97
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- RSQRTSS
- Documented
- [D3Now]
- Tested by
- T3680
- Tested by
- t3680
IidPFRSQRT:: PROC
MOV CL,0x97
JMP IidGroup3DNow:
ENDP IidPFRSQRT::
- ↑ PFSUB
- Packed Floating-Point Subtract
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x9A
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- SUBPS
- Documented
- [D3Now]
- Tested by
- T3670
- Tested by
- t3670
IidPFSUB:: PROC
MOV CL,0x9A
JMP IidGroup3DNow:
ENDP IidPFSUB::
- ↑ PFADD
- Packed Floating-Point Add
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0x9E
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- ADDPS
- Documented
- [D3Now]
- Tested by
- T3670
- Tested by
- t3670
IidPFADD:: PROC
MOV CL,0x9E
JMP IidGroup3DNow:
ENDP IidPFADD::
- ↑ PFCMPGT
- Packed Floating-Point Compare Greater Than
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xA0
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- CMPSS
- Documented
- [D3Now]
- Tested by
- T3665
- Tested by
- t3665
IidPFCMPGT:: PROC
MOV CL,0xA0
JMP IidGroup3DNow:
ENDP IidPFCMPGT::
- ↑ PFMAX
- Packed Single-Precision Floating-Point Maximum
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xA4
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- MAXPS
- Documented
- [D3Now]
- Tested by
- T3675
- Tested by
- t3675
IidPFMAX:: PROC
MOV CL,0xA4
JMP IidGroup3DNow:
ENDP IidPFMAX::
- ↑ PFRCPIT1
- Packed Floating-Point Reciprocal Iteration 1
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xA6
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- PFRCP
- Documented
- [D3Now]
- Tested by
- T3675
- Tested by
- t3675
IidPFRCPIT1:: PROC
MOV CL,0xA6
JMP IidGroup3DNow:
ENDP IidPFRCPIT1::
- ↑ PFRSQIT1
- Packed Floating-Point Reciprocal Square Root Iteration 1
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xA7
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- PFRSQRT
- Documented
- [D3Now]
- Tested by
- T3675
- Tested by
- t3675
IidPFRSQIT1:: PROC
MOV CL,0xA7
JMP IidGroup3DNow:
ENDP IidPFRSQIT1::
- ↑ PFSUBR
- Packed Floating-Point Subtract Reverse
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xAA
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- SUBPS
- Documented
- [D3Now]
- Tested by
- T3670
- Tested by
- t3670
IidPFSUBR:: PROC
MOV CL,0xAA
JMP IidGroup3DNow:
ENDP IidPFSUBR::
- ↑ PFACC
- Packed Floating-Point Accumulate
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xAE
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- HADDPS
- Documented
- [D3Now]
- Tested by
- T3670
- Tested by
- t3670
IidPFACC:: PROC
MOV CL,0xAE
JMP IidGroup3DNow:
ENDP IidPFACC::
- ↑ PFCMPEQ
- Packed Floating-Point Compare Equal
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xB0
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- CMPSS
- Documented
- [D3Now]
- Tested by
- T3665
- Tested by
- t3665
IidPFCMPEQ:: PROC
MOV CL,0xB0
JMP IidGroup3DNow:
ENDP IidPFCMPEQ::
- ↑ PFMUL
- Packed Floating-Point Multiply
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xB4
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- MULPS
- Documented
- [D3Now]
- Tested by
- T3680
- Tested by
- t3680
IidPFMUL:: PROC
MOV CL,0xB4
JMP IidGroup3DNow:
ENDP IidPFMUL::
- ↑ PFRCPIT2
- Packed Floating-Point Reciprocal or Reciprocal Square Root Iteration 2
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xB6
- CPU
- AMD K6-2, deprecated
- Recommended substitution
- PFRCP
- Documented
- [D3Now]
- Tested by
- T3675
- Tested by
- t3675
IidPFRCPIT2:: PROC
MOV CL,0xB6
JMP IidGroup3DNow:
ENDP IidPFRCPIT2::
- ↑ PMULHRW
- Packed Multiply High Rounded Word
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xB7
- CPU
- 586, Cyrix
- Remark
- The same mnemonic is also used by Cyrix
0x0F59 /r
(Packed 16-bit integer multiply with rounding), so this AMD 3DNow! variant
is also aliased to PMULHRWA
in €ASM as well as in
NASM.
- Documented
- [D3Now]
- See also
- PMULHRWC,
- Tested by
- T3680
- Tested by
- t3680
IidPMULHRW:: PROC
MOV CL,0xB7
JMP IidGroup3DNow:
ENDP IidPMULHRW::
- ↑ PMULHRWA
- Packed Multiply High Rounded Word (AMD)
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xB7
- CPU
- AMD K6-2, deprecated
- Documented
- [D3Now]
- See also
- PMULHRW,
- Tested by
- T3680
- Tested by
- t3680
IidPMULHRWA:: PROC
MOV CL,0xB7
JMP IidGroup3DNow:
ENDP IidPMULHRWA::
- ↑ PSWAPD
- Packed Swap Doubleword
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xBB
- CPU
- AMD K6-2, deprecated
- Documented
- [D3Now]
- Tested by
- T3675
- Tested by
- t3675
IidPSWAPD:: PROC
MOV CL,0xBB
JMP IidGroup3DNow:
ENDP IidPSWAPD::
- ↑ PAVGUSB
- Packed Average Unsigned Bytes
- Category
- AMD, MMX, 3DNow!
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0F /r 0xBF
- CPU
- AMD K6-2, deprecated
- Documented
- [D3Now]
- Tested by
- T3675
- Tested by
- t3675
IidPAVGUSB:: PROC
MOV CL,0xBF
JMP IidGroup3DNow:
ENDP IidPAVGUSB::
- ↑ FEMMS
- Fast Exit Multimedia State
- Category
- 3DNow!, MMX
- Operands
- mmx, mmx/mem
- Opcode
- 0x0F0E /r
- CPU
- Pentium
- Documented
- [D3Now]
- See also
- EMMS.
- Tested by
- t3645
IidFEMMS:: PROC
IiRequire 586,D3NOW,AMD
IiEmitOpcode 0x0F,0x0F
IiDispatchFormat none
.none:RET
ENDP IidFEMMS::
ENDPROGRAM iid
▲Back to the top▲