mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 19:29:24 +02:00
+ more assembler tests
This commit is contained in:
parent
fb012b5a24
commit
9581f8a99b
@ -5,6 +5,7 @@ program test_fp_instructions;
|
||||
|
||||
var
|
||||
x,y : integer;
|
||||
statusword,controlword : word;
|
||||
z,t : longint;
|
||||
a,b,c : comp;
|
||||
begin
|
||||
@ -13,8 +14,30 @@ program test_fp_instructions;
|
||||
t:=5;
|
||||
z:=4;
|
||||
a:=20;
|
||||
{ test all FPU instructions using 's' and 'l' suffix
|
||||
for word and dword size PM }
|
||||
{$asmmode att}
|
||||
asm
|
||||
fildl z
|
||||
fiadds x
|
||||
fistpq b
|
||||
fildl z
|
||||
ficoms x
|
||||
fistpq b
|
||||
fildl z
|
||||
ficomps x
|
||||
fildl z
|
||||
fidivs x
|
||||
fistpq b
|
||||
fildl z
|
||||
fidivrs x
|
||||
fistpq b
|
||||
fildl z
|
||||
fisubs x
|
||||
fistpq b
|
||||
fildl z
|
||||
fisubrs x
|
||||
fistpq b
|
||||
fildl z
|
||||
fimuls x
|
||||
fistpq b
|
||||
@ -25,6 +48,26 @@ program test_fp_instructions;
|
||||
Halt(1);
|
||||
end;
|
||||
asm
|
||||
fildl z
|
||||
fiaddl t
|
||||
fistpq b
|
||||
fildl z
|
||||
ficoml t
|
||||
fistpq b
|
||||
fildl z
|
||||
ficompl t
|
||||
fildl z
|
||||
fidivl t
|
||||
fistpq b
|
||||
fildl z
|
||||
fidivrl t
|
||||
fistpq b
|
||||
fildl z
|
||||
fisubl t
|
||||
fistpq b
|
||||
fildl z
|
||||
fisubrl t
|
||||
fistpq b
|
||||
fildl z
|
||||
fimull t
|
||||
fistpq b
|
||||
@ -34,6 +77,21 @@ program test_fp_instructions;
|
||||
Writeln('Error in FPU att syntax code generation');
|
||||
Halt(1);
|
||||
end;
|
||||
{ test CW and SW instructions }
|
||||
{ FSTSW FNSTSW
|
||||
FLDCW FSTCW FNSTCW }
|
||||
asm
|
||||
fstsw statusword
|
||||
fstsww statusword
|
||||
fnstsw statusword
|
||||
fnstsww statusword
|
||||
fstcw controlword
|
||||
fstcww controlword
|
||||
fnstcw controlword
|
||||
fnstcww controlword
|
||||
fldcw controlword
|
||||
fldcww controlword
|
||||
end;
|
||||
{$asmmode intel}
|
||||
asm
|
||||
fild dword ptr z
|
||||
@ -48,6 +106,14 @@ program test_fp_instructions;
|
||||
Writeln('Error in FPU code generation');
|
||||
Halt(1);
|
||||
end;
|
||||
{ test CW and SW instructions }
|
||||
asm
|
||||
fstsw word ptr [statusword]
|
||||
fnstsw word ptr [statusword]
|
||||
fstcw word ptr [controlword]
|
||||
fnstcw word ptr[controlword]
|
||||
fldcw word ptr [controlword]
|
||||
end;
|
||||
test:=b;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user