about summary refs log tree commit diff stats
path: root/subx/run_one_test.subx
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-06-11 22:50:40 -0700
committerKartik Agaram <vc@akkartik.com>2019-06-11 23:43:55 -0700
commit5ac0786623f5ebd0b3a4f23fb6c23b72e6e277cb (patch)
tree82009ccce35a7b7d73ed4316d94dc2e56ddbc881 /subx/run_one_test.subx
parentf47066a7c2f53796fb252dc187cdcf77834a1157 (diff)
downloadmu-5ac0786623f5ebd0b3a4f23fb6c23b72e6e277cb.tar.gz
new Vim convenience macro
Runs test under cursor and opens its trace.
Diffstat (limited to 'subx/run_one_test.subx')
-rw-r--r--subx/run_one_test.subx30
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