diff --git a/html/117write-int-hex.subx.html b/html/117write-int-hex.subx.html index 5408a46f..1515c6bd 100644 --- a/html/117write-int-hex.subx.html +++ b/html/117write-int-hex.subx.html @@ -458,7 +458,7 @@ if ('onhashchange' in window) { 397 e8/call flush/disp32 398 # . . discard args 399 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -400 +-- 18 lines: #? # dump line ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +400 +-- 18 lines: #? # dump line -------------------------------------------------------------------------------------------------------------------------------------------------------- 418 # check-stream-equal(_test-stream, "0x008899aa", msg) 419 # . . push args 420 68/push "F - test-write-int32-hex-buffered"/imm32 diff --git a/html/123slice.subx.html b/html/123slice.subx.html index f6b6c986..dc13cf2c 100644 --- a/html/123slice.subx.html +++ b/html/123slice.subx.html @@ -1228,7 +1228,7 @@ if ('onhashchange' in window) { 1167 8b/copy 1/mod/*+disp8 3/rm32/ebx . . . 0/r32/eax 4/disp8 . # copy *(ebx+4) to eax 1168 # skip payload->allocid 1169 05/add-to-eax 4/imm32 -1170 +-- 26 lines: #? # dump eax ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +1170 +-- 26 lines: #? # dump eax --------------------------------------------------------------------------------------------------------------------------------------------------------- 1196 # eax = string-equal?(eax, "Abc") 1197 # . . push args 1198 68/push "Abc"/imm32 diff --git a/html/126write-int-decimal.subx.html b/html/126write-int-decimal.subx.html index b547b60b..ec709f60 100644 --- a/html/126write-int-decimal.subx.html +++ b/html/126write-int-decimal.subx.html @@ -298,7 +298,7 @@ if ('onhashchange' in window) { 235 e8/call write-int32-decimal/disp32 236 # . . discard args 237 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32 # add to esp -238 +-- 26 lines: #? # dump _test-stream --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +238 +-- 26 lines: #? # dump _test-stream ------------------------------------------------------------------------------------------------------------------------------------------------ 264 # check-stream-equal(_test-stream, "-9", msg) 265 # . . push args 266 68/push "F - test-write-int32-decimal-negative"/imm32 diff --git a/html/130emit.subx.html b/html/130emit.subx.html index adafd09b..dedfd1f0 100644 --- a/html/130emit.subx.html +++ b/html/130emit.subx.html @@ -493,7 +493,7 @@ if ('onhashchange' in window) { 432 e8/call flush/disp32 433 # . . discard args 434 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp -435 +-- 26 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +435 +-- 26 lines: #? # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------ 461 # check-stream-equal(_test-output-stream, "abcd/xyz") 462 # . . push args 463 68/push "F - test-emit-non-number-with-all-hex-digits"/imm32 diff --git a/html/134emit-hex-array.subx.html b/html/134emit-hex-array.subx.html index 6b059b7e..6753ac54 100644 --- a/html/134emit-hex-array.subx.html +++ b/html/134emit-hex-array.subx.html @@ -150,7 +150,7 @@ if ('onhashchange' in window) { 90 e8/call flush/disp32 91 # . . discard args 92 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32 # add to esp - 93 +-- 33 lines: #? # dump output --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + 93 +-- 33 lines: #? # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------ 126 # check-next-stream-line-equal(_test-output-stream, "01 02 03 ", msg) 127 # . . push args 128 68/push "F - test-emit-hex-array"/imm32 diff --git a/html/312copy.subx.html b/html/312copy.subx.html index fd93cb81..a1a365f8 100644 --- a/html/312copy.subx.html +++ b/html/312copy.subx.html @@ -95,7 +95,7 @@ if ('onhashchange' in window) { 38 (lookup *eax *(eax+4)) # => eax 39 89/<- %edi 0/r32/eax 40 # -41 (copy-bytes %esi %edi %ecx) +41 (copy-bytes %esi %edi %ecx) 42 # var offset/ecx: int = lseek(src->fd, 0, SEEK_CUR) 43 8b/-> *esi 3/r32/ebx 44 b9/copy-to-ecx 0/imm32/offset diff --git a/html/314divide.subx.html b/html/314divide.subx.html new file mode 100644 index 00000000..d284f8e7 --- /dev/null +++ b/html/314divide.subx.html @@ -0,0 +1,77 @@ + + +
+ ++ 1 == code + 2 + 3 integer-divide: # a: int, b: int -> quotient/eax: int, remainder/edx: int + 4 # . prologue + 5 55/push-ebp + 6 89/<- %ebp 4/r32/esp + 7 # eax = a + 8 8b/-> *(ebp+8) 0/r32/eax + 9 # edx = all 0s or all 1s +10 99/sign-extend-eax-into-edx +11 # quotient, remainder = divide eax by b +12 f7 7/subop/divide-eax-edx-by *(ebp+0xc) +13 $integer-divide:end: +14 # . epilogue +15 89/<- %esp 5/r32/ebp +16 5d/pop-to-ebp +17 c3/return ++ + + diff --git a/html/400.mu.html b/html/400.mu.html index 7502b30a..8b6aae39 100644 --- a/html/400.mu.html +++ b/html/400.mu.html @@ -232,14 +232,16 @@ if ('onhashchange' in window) { 177 178 sig stream-empty? s: (addr stream _) -> _/eax: boolean 179 sig stream-full? s: (addr stream _) -> _/eax: boolean -180 sig stream-to-array in: (addr stream _), out: (addr handle array _) -181 sig unquote-stream-to-array in: (addr stream _), out: (addr handle array _) +180 sig stream-to-array in: (addr stream _), out: (addr handle array _) +181 sig unquote-stream-to-array in: (addr stream _), out: (addr handle array _) 182 sig stream-first s: (addr stream byte) -> _/eax: byte 183 sig stream-final s: (addr stream byte) -> _/eax: byte 184 185 #sig copy-bytes src: (addr byte), dest: (addr byte), n: int 186 sig copy-array-object src: (addr array _), dest-ah: (addr handle array _) 187 sig copy-file src: (addr buffered-file), dest-ah: (addr handle buffered-file), filename: (addr array byte) +188 +189 sig integer-divide a: int, b: int -> _/eax: int, _/edx: int