t_id
41
t_cpu
i386
t_adddate
2003/10/03
t_result
0
t_knownrunerror
0
Record count: 50
Total = 50
OK=4 Percentage= 8.00
Skipped=46 Percentage= 92.00
Result type | Cat. | Count | Percentage | First date | Last Date |
Successfully run | 4 | 8.0 | 2024/09/26 19:54:00 70 | 2024/09/26 22:38:00 79 | |
i386 | 4 | 100.0 | 2024/09/26 19:54:00 70 | 2024/09/26 22:38:00 79 | |
go32v2 | 4 | 100.0 | 2024/09/26 19:54:00 70 | 2024/09/26 22:38:00 79 | |
3.3.1 | 4 | 100.0 | 2024/09/26 19:54:00 70 | 2024/09/26 22:38:00 79 | |
Skipping test because for other cpu | 46 | 92.0 | 2024/09/26 18:42:00 90 | 2024/09/26 23:02:00 44 | |
powerpc | 14 | 30.4 | 2024/09/26 19:41:00 35 | 2024/09/26 23:02:00 44 | |
powerpc64 | 17 | 37.0 | 2024/09/26 18:42:00 90 | 2024/09/26 22:29:00 103 | |
wasm32 | 7 | 15.2 | 2024/09/26 19:31:00 339 | 2024/09/26 22:50:00 299 | |
riscv64 | 8 | 17.4 | 2024/09/26 19:14:00 123 | 2024/09/26 19:59:00 123 | |
linux | 39 | 84.8 | 2024/09/26 18:42:00 90 | 2024/09/26 23:02:00 44 | |
wasi | 7 | 15.2 | 2024/09/26 19:31:00 339 | 2024/09/26 22:50:00 299 | |
3.3.1 | 30 | 65.2 | 2024/09/26 18:42:00 90 | 2024/09/26 22:50:00 299 | |
3.2.3 | 16 | 34.8 | 2024/09/26 21:17:00 71 | 2024/09/26 23:02:00 44 |
{ %CPU=i386 } { testfdiv variant with GNU AS output forced } {$ifdef win32} {$output_format asw} {$else} {$output_format as} {$endif win32} { This test program deals with the the delicate problem of non commutative FPU instruction where the destination register is ST(1) to ST(7) Whereas Intel interprets fdiv st(1),st as st(1):=st(1) / st The ATT read fdiv %st,%st(1) as st(1):=st/st(1) Should be tested with different output styles : for go32v2 -Aas -Acoff and -Anasmcoff for win32 -Aas -Apecoff and -Anasmwin32 for linux -Aas and -Anasmelf } program test_nasm_div; var x,y,z : double; begin x:=4; y:=2; Writeln('4/2=',x/y:0:2); if x/y <> 2.0 then Halt(1); {$asmmode att} asm fldl y fldl x fdivp %st,%st(1) fstpl z end; Writeln('ATT result of 4/2=',z:0:2); if z <> 2.0 then Halt(1); asm fldl y fldl x fdiv %st(1),%st fstpl z fstp %st end; Writeln('ATT result of 4/2=',z:0:2); if z <> 2.0 then Halt(1); asm fldl y fldl x fdiv %st,%st(1) fstp %st fstpl z end; Writeln('ATT result of 4/2=',z:0:2); if z <> 2.0 then Halt(1); asm fldl y fldl x fadd fstpl z end; Writeln('ATT result of 4+2=',z:0:2); if z <> 6.0 then Halt(1); {$asmmode intel} asm fld x fld y fdivp st(1),st fstp z end; Writeln('Intel result of 4/2=',z:0:2); if z <> 2.0 then Halt(1); asm fld y fld x fdiv st,st(1) fstp z fstp st end; Writeln('Intel result of 4/2=',z:0:2); if z <> 2.0 then Halt(1); asm fld y fld x fadd fstp z end; Writeln('Intel result of 4+2=',z:0:2); if z <> 6.0 then Halt(1); Writeln('All tests completed successfully!'); end.