diff options
Diffstat (limited to 'subx/run_one_test.subx')
-rw-r--r-- | subx/run_one_test.subx | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/subx/run_one_test.subx b/subx/run_one_test.subx new file mode 100644 index 00000000..43c98fca --- /dev/null +++ b/subx/run_one_test.subx @@ -0,0 +1,30 @@ +# run a single test + +== code +# instruction effective address register displacement immediate +# . op subop mod rm32 base index scale r32 +# . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes + +Entry: + # Heap = new-segment(64KB) + # . . push args + 68/push Heap/imm32 + 68/push 0x10000/imm32/64KB + # . . call + e8/call new-segment/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP + # initialize-trace-stream(256KB) + # . . push args + 68/push 0x40000/imm32/256KB + # . . call + e8/call initialize-trace-stream/disp32 + # . . discard args + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP + # for debugging: run a single test + e8/call $TEST_NAME/disp32 + 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 3/r32/EBX Num-test-failures/disp32 # copy *Num-test-failures to EBX + b8/copy-to-EAX 1/imm32/exit + cd/syscall 0x80/imm8 + +# . . vim:nowrap:textwidth=0 |