1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- { %CPU=i386 }
- { This file tests the movd instruction has this
- instruction does convert 32 bit into 64 bit
- which is not handled by the normal assembler instruction
- suffixes Pierre Muller }
- uses
- mmx;
- {$asmmode intel}
- procedure test_intel; { do not run }
- begin
- asm
- SUB ESP,4
- MOVD [ESP],MM7
- MOVD MM0,DWORD PTR [ESP]
- MOVD MM1,[ESP]
- MOVD DWORD PTR [ESP],MM3
- ADD ESP,4
- end;
- end;
- procedure test_cvtsi2ss_intel;
- begin
- asm
- cvtsi2ss xmm2,DWORD PTR [esp]
- cvtsi2ss xmm2, [esp]
- end;
- end;
- {$asmmode att}
- procedure test_att; { do not run }
- begin
- asm
- subl $4,%esp
- movd (%esp),%mm2
- movd %mm6,(%esp)
- addl $4,%esp
- end;
- end;
- procedure test_cvtsi2ss_att;
- begin
- asm
- cvtsi2ss (%esp),%xmm2
- end;
- end;
- begin
- if is_mmx_cpu then
- begin
- emms;
- test_att;
- test_intel;
- end;
- end.
|