v86/tests/nasm
Fabian b96f984963 Use softfloat f80 for x87 fpu
This fixes several long-standing issues with x87 float emulation, in particular:

- 80 bit precision floats, fixing Haiku after its switch to musl libc (hrev53728)
- the precision bit in the x87 control word
- fucom and fucomi (unordered comparisons)
- aliasing of x87 and mmx registers
- rounding during conversion to integers

Operations that are not implemented in softfloat were implemented by
converting to f64 (sine, pow, ln, etc.) and thus operate with lower
precision.

Softfloat has been combined into a single file using a script [0] and checked into the repository.

[0] 57df21e2eb/contrib/single_file_libs/combine.sh
2020-12-31 19:14:32 -06:00
..
cmpxchg.asm cmpxchg tests 2020-12-31 19:14:32 -06:00
cmpxchg8b.asm Minor: Remove trailing newlines 2020-12-31 19:14:32 -06:00
create_tests.js Allow creating more than one nasmtest per instruction 2020-12-31 19:14:32 -06:00
emms.asm Update emms test 2017-06-20 16:19:38 -05:00
f2xm1.asm Minor: Remove trailing newlines 2020-12-31 19:14:32 -06:00
fchs.asm Add some fpu tests 2020-12-31 19:14:32 -06:00
fdecstp.asm Minor: Remove trailing newlines 2020-12-31 19:14:32 -06:00
fdiv-zero.asm FPU: Implement zero divide fault 2020-08-30 19:37:15 -05:00
fdiv.asm Add some fpu tests 2020-12-31 19:14:32 -06:00
fdivr.asm Add some fpu tests 2020-12-31 19:14:32 -06:00
fincstp.asm Minor: Remove trailing newlines 2020-12-31 19:14:32 -06:00
footer.inc Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
fprem.asm Fix some minor fpu bugs and add more nasm tests 2020-12-31 19:14:30 -06:00
fprem1.asm Fix some minor fpu bugs and add more nasm tests 2020-12-31 19:14:30 -06:00
fptan.asm Minor: Remove trailing newlines 2020-12-31 19:14:32 -06:00
fpu_m80.asm Add tests for fstenv/fldenv/fld [m80] 2020-12-31 19:14:29 -06:00
frndint.asm Minor: Remove trailing newlines 2020-12-31 19:14:32 -06:00
fsave_frstor.asm Add test for fsave and frstor 2020-12-31 19:14:29 -06:00
fscale.asm Minor: Remove trailing newlines 2020-12-31 19:14:32 -06:00
fsincos.asm Fix some minor fpu bugs and add more nasm tests 2020-12-31 19:14:30 -06:00
fsqrt.asm Minor: Remove trailing newlines 2020-12-31 19:14:32 -06:00
fstenv.asm Add tests for fstenv/fldenv/fld [m80] 2020-12-31 19:14:29 -06:00
fstm80.asm Add some fpu tests 2020-12-31 19:14:32 -06:00
fxtract-zero.asm FPU: Implement zero divide fault 2020-08-30 19:37:15 -05:00
fxtract.asm Fix fxtract 2020-08-30 19:37:15 -05:00
fyl2x-zero.asm FPU: Implement zero divide fault 2020-08-30 19:37:15 -05:00
fyl2x.asm Minor: Remove trailing newlines 2020-12-31 19:14:32 -06:00
fyl2xp1.asm Fix some minor fpu bugs and add more nasm tests 2020-12-31 19:14:30 -06:00
gdb-extract-def nasmtests: Print newlines after invalid fpu registers 2020-12-31 19:14:30 -06:00
gen_fixtures.js Better message 2020-12-31 19:14:32 -06:00
header.inc Squash 2020-07-21 20:10:12 -05:00
indirect-call.asm Fix some minor fpu bugs and add more nasm tests 2020-12-31 19:14:30 -06:00
indirect-jump.asm Fix some minor fpu bugs and add more nasm tests 2020-12-31 19:14:30 -06:00
jcxz.asm Make loop, loopz, loopnz and jcxz custom generated 2020-12-31 19:14:30 -06:00
jump.asm Nasm: Jump tests 2020-07-21 20:10:14 -05:00
leave16.asm Custom code generation for leave (C9) 2020-08-30 19:37:15 -05:00
leave32.asm Custom code generation for leave (C9) 2020-08-30 19:37:15 -05:00
loop.asm Make loop, loopz, loopnz and jcxz custom generated 2020-12-31 19:14:30 -06:00
loopnz.asm Make loop, loopz, loopnz and jcxz custom generated 2020-12-31 19:14:30 -06:00
loopz.asm Make loop, loopz, loopnz and jcxz custom generated 2020-12-31 19:14:30 -06:00
Makefile nasmtests: Turn warnings into errors 2020-12-31 19:14:30 -06:00
maskmovdqu.asm Add NASM test for maskmovdqu xmm, xmm 2020-07-21 20:10:12 -05:00
maskmovq.asm Update maskmovq test to use "test memory" the same way as maskmovdqu 2020-07-21 20:10:12 -05:00
mov16.asm nasmtests: Re-enable 0x89 mem tests in mov16 2020-08-30 19:27:02 -05:00
mov_sreg.asm Test for mov [mem], sreg 2020-12-31 19:14:29 -06:00
movd.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
movq.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
packssdw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
packsswb.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
packuswb.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
paddb.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
paddd.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
paddsb.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
paddsw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
paddusb.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
paddusw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
paddw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pand.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pandn.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pcmpeqb.asm Fix manual pcmpeqb nasm test 2020-07-21 20:10:13 -05:00
pcmpeqd.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pcmpeqw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pcmpgtb.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pcmpgtd.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pcmpgtw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pmaddwd.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pmulhw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pmullw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pop_esp.asm nasm: pop esp test 2020-07-21 20:10:14 -05:00
pop_esp2.asm Fix some minor fpu bugs and add more nasm tests 2020-12-31 19:14:30 -06:00
por.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
prand.js Squash 2020-07-21 20:10:12 -05:00
pshufw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
pslld.asm Add XMM based manual tests for SSE shift instructions 2020-07-21 20:10:12 -05:00
psllq.asm Add XMM based manual tests for SSE shift instructions 2020-07-21 20:10:12 -05:00
psllw.asm Add XMM based manual tests for SSE shift instructions 2020-07-21 20:10:12 -05:00
psrad.asm Add XMM based manual tests for SSE shift instructions 2020-07-21 20:10:12 -05:00
psraw.asm Add XMM based manual tests for SSE shift instructions 2020-07-21 20:10:12 -05:00
psrld.asm Add XMM based manual tests for SSE shift instructions 2020-07-21 20:10:12 -05:00
psrlq.asm Add XMM based manual tests for SSE shift instructions 2020-07-21 20:10:12 -05:00
psrlw.asm Add XMM based manual tests for SSE shift instructions 2020-07-21 20:10:12 -05:00
psubb.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
psubd.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
psubsb.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
psubsw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
psubusb.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
psubusw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
psubw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
punpckhbw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
punpckhdq.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
punpckhwd.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
punpcklbw.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
punpckldq.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
punpcklwd.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
push.asm Clean up push nasm test 2020-07-21 20:10:14 -05:00
pxor.asm Simplify nasm tests by using boilerplate includes 2017-06-20 12:07:24 -04:00
Readme.md Remove outdated docs and gdbauto script 2020-07-21 20:10:13 -05:00
ret-imm.asm Custom code generation for ret imm (C2) 2020-08-30 19:37:15 -05:00
run.js Use softfloat f80 for x87 fpu 2020-12-31 19:14:32 -06:00

About

The tests in this folder are not comprehensive by any means at the moment.

Automated Testing

  • Run make nasmtests in the root of the project