diff options
author | John van Groningen | 2006-09-05 14:34:10 +0000 |
---|---|---|
committer | John van Groningen | 2006-09-05 14:34:10 +0000 |
commit | 780cf4df7a774dc7c8375d1be107a1769c3d4f05 (patch) | |
tree | 882f6e1e70843c796953433d4e648c91062c0f55 | |
parent | rsi is register a5, not a4 (diff) |
add call to write_heap
-rw-r--r-- | astartup.asm | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/astartup.asm b/astartup.asm index 83ec60f..ca39b2b 100644 --- a/astartup.asm +++ b/astartup.asm @@ -25,7 +25,7 @@ _DATA ends ifndef LINUX extrn convert_real_to_string:near endif -; extrn write_heap:near + extrn write_heap:near extrn return_code:near extrn execution_aborted:near extrn e____system__kFinalizerGCTemp:near @@ -2446,7 +2446,7 @@ end_garbage_collect_: ifdef LINUX mov r13,rsi mov r14,rdi - + mov rdi,rcx else sub rsp,32 @@ -2491,13 +2491,13 @@ no_heap_use_message: push rbp push rsi push rdi - + sub rsp,128 mov rax,qword ptr d3_flag_write_heap test rax,rax - jne copy_to_compact_with_alloc_in_extra_heap - + jne copy_to_compact_with_alloc_in_extra_heap + movsx rax,byte ptr garbage_collect_flag mov rcx,qword ptr heap2_begin_and_end @@ -2544,10 +2544,18 @@ gc1: mov qword ptr 112[rax],offset __STRING__+2 mov qword ptr 120[rax],offset __ARRAY__+2 - push rax -; call write_heap - - add rsp,136 + mov rbp,rsp + and rsp,-16 + ifdef LINUX + mov rdi,rax + else + mov rcx,rax + sub rsp,32 + endif + call write_heap + mov rsp,rbp + + add rsp,128 pop rdi pop rsi |