+ MOVD test

This commit is contained in:
pierre 2001-03-30 11:31:06 +00:00
parent c3d66b883c
commit f52167285f
2 changed files with 60 additions and 0 deletions

View File

@ -58,6 +58,8 @@ Range checking ........ trange1.pp range checking when converting int64/
Random ................ trandom.pp tests random (interactive)
Floating Point ........ tfpu1.pp
tfpu2.pp
Assembler readers.......tasmread.pp tests for support of unit or program specifier
testmovd.pp testspecial issues about MOVD instruction
RTL
---

58
tests/test/testmovd.pp Normal file
View File

@ -0,0 +1,58 @@
{ 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.