v86/tests/nasm
2017-06-16 10:47:19 -04:00
..
emms.asm Add comment about failing emms test 2017-06-16 10:47:19 -04:00
gdbauto Update gdb command file output mmx registers in JSON 2017-06-16 10:47:19 -04:00
Makefile Let nasm Makefile generate fixtures and add "all" target 2017-06-16 10:47:19 -04:00
movd.asm Add nasm regression test for movd mm, r/m32 source operand bug 2017-06-16 10:47:19 -04:00
movq.asm Add movq.asm test 2017-06-16 10:47:19 -04:00
packssdw.asm Add nasm test for packssdw 2017-06-16 10:47:19 -04:00
packsswb.asm Add nasm test for packsswb mm, mm/m64 2017-06-16 10:47:19 -04:00
packuswb.asm Add packuswb, paddw, and pand nasm tests 2017-06-16 10:47:19 -04:00
paddb.asm Add nasm test for paddb 2017-06-16 10:47:19 -04:00
paddd.asm Add nasm test for paddd 2017-06-16 10:47:19 -04:00
paddsb.asm Add nasm test for paddsb 2017-06-16 10:47:19 -04:00
paddsw.asm Add nasm test for paddsw 2017-06-16 10:47:19 -04:00
paddusb.asm Add nasm test for paddusb 2017-06-16 10:47:19 -04:00
paddusw.asm Add nasm test for paddusw 2017-06-16 10:47:19 -04:00
paddw.asm Add packuswb, paddw, and pand nasm tests 2017-06-16 10:47:19 -04:00
pand.asm Add packuswb, paddw, and pand nasm tests 2017-06-16 10:47:19 -04:00
pandn.asm Add nasm test for pandn 2017-06-16 10:47:19 -04:00
pcmpeqb.asm Add nasm test for pcmpeqb 2017-06-16 10:47:19 -04:00
pcmpeqd.asm Add nasm test for pcmpeqd 2017-06-16 10:47:19 -04:00
pcmpeqw.asm Add nasm test for pcmpeqw 2017-06-16 10:47:19 -04:00
pcmpgtb.asm Add nasm test for pcmpgtb mm, mm/m64 2017-06-16 10:47:19 -04:00
pcmpgtd.asm Add nasm test for pcmpgtd mm, mm/m64 2017-06-16 10:47:19 -04:00
pcmpgtw.asm Add nasm test for pcmpgtw mm, mm/m64 2017-06-16 10:47:19 -04:00
pmaddwd.asm Add nasm test for pmaddwd 2017-06-16 10:47:19 -04:00
pmulhw.asm Add nasm test for pmulhw 2017-06-16 10:47:19 -04:00
pmullw.asm Improve pmullw test (to confirm that unsigned mul in JS doesn't 2017-06-16 10:47:19 -04:00
por.asm Add nasm test for por 2017-06-16 10:47:19 -04:00
pshufw.asm Test for pshufw 2017-06-16 10:47:19 -04:00
pslld.asm nasm regression tests for bug where negative shifts were overlooked 2017-06-16 10:47:19 -04:00
psllq.asm Add nasm test for psllq 2017-06-16 10:47:19 -04:00
psllw.asm nasm regression tests for bug where negative shifts were overlooked 2017-06-16 10:47:19 -04:00
psrad.asm nasm regression tests for bug where negative shifts were overlooked 2017-06-16 10:47:19 -04:00
psraw.asm nasm regression tests for bug where negative shifts were overlooked 2017-06-16 10:47:19 -04:00
psrld.asm nasm regression tests for bug where negative shifts were overlooked 2017-06-16 10:47:19 -04:00
psrlq.asm Add nasm regression test for psrlq bug when shift=31 2017-06-16 10:47:19 -04:00
psrlw.asm nasm regression tests for bug where negative shifts were overlooked 2017-06-16 10:47:19 -04:00
psubb.asm Add nasmtest for psubb 2017-06-16 10:47:19 -04:00
psubd.asm Add nasm test for psubd 2017-06-16 10:47:19 -04:00
psubsb.asm Add test for psubsb 2017-06-16 10:47:19 -04:00
psubsw.asm Add nasm test for psubsw 2017-06-16 10:47:19 -04:00
psubusb.asm Add nasm test for psubusb 2017-06-16 10:47:19 -04:00
psubusw.asm Add nasm test for psubusw 2017-06-16 10:47:19 -04:00
psubw.asm Add test for psubw mm, mm/m64 2017-06-16 10:47:19 -04:00
punpckhbw.asm Add nasm test for punpckhbw mm, mm/m64 2017-06-16 10:47:19 -04:00
punpckhdq.asm Add nasm test for punpckhdq 2017-06-16 10:47:19 -04:00
punpckhwd.asm Add nasm test for punpckhwd 2017-06-16 10:47:19 -04:00
punpcklbw.asm Add nasm test for punpcklbw mm, mm/m32 2017-06-16 10:47:19 -04:00
punpckldq.asm Add nasm test for punpckldq 2017-06-16 10:47:19 -04:00
punpcklwd.asm Add nasm test for punpcklwd 2017-06-16 10:47:19 -04:00
pxor.asm Add nasm test for pxor mm, mm/m64 2017-06-16 10:47:19 -04:00
README.md Added README for nasm tests 2017-06-16 10:47:19 -04:00
run.js Use v86's bus for CPU instead of emulator's bus 2017-06-16 10:47:19 -04:00

About

All tests in this folder are currently manual (i.e. you compile them manually and run it on a real machine and compare the state of the relevant registers to that of v86's registers). They are not comprehensive in any way and are not currently meant to be. They're just quick tests used for sanity-checks.

They should be automated soon.

Compiling

  • Run make filename.img to compile a multiboot kernel image to be used in v86.
  • Run make filename.bin to compile a regular ELF binary to run on a real machine.

Testing

  • Run make filename.img (for eg. make movq.img)
  • Open this image file as a multiboot kernel in v86
  • Open filename.asm - at the end will be a comment showing the expected state of cpu.reg_mmxs (after being JSON.stringify'd). These are the expected values that should match if you're making any changes to v86 or the relevant instructions.
  • Compare cpu.reg_mmxs to this "fixture" manually