diff options
author | John van Groningen | 2011-06-24 12:38:37 +0000 |
---|---|---|
committer | John van Groningen | 2011-06-24 12:38:37 +0000 |
commit | 11161e614778ccbeb12cf27276486e8b5d186416 (patch) | |
tree | 5d1f2911a66b13821dadf1661ade9192c55659eb /acopy.asm | |
parent | allow arrays in data segment (diff) |
allow arrays in data segment
Diffstat (limited to 'acopy.asm')
-rw-r--r-- | acopy.asm | 29 |
1 files changed, 16 insertions, 13 deletions
@@ -1149,13 +1149,12 @@ copy_arity_0_node2_: ret copy_string_or_array_2: - mov rcx,rdx + mov rcx,rdx jne copy_array_2 - mov rax,rcx - sub rax,heap_p1 - cmp rax,semi_space_size - jae copy_string_constant + sub rdx,heap_p1 + cmp rdx,semi_space_size + jae copy_string_or_array_constant mov rdx,8[rcx] add rbp,8 @@ -1196,15 +1195,11 @@ cp_s_arg_lp2: jae copy_lp2 ret -copy_string_constant: - mov qword ptr [rbp],rdx - add rbp,8 - - sub rbx,1 - jae copy_lp2 - ret - copy_array_2: + sub rdx,heap_p1 + cmp rdx,semi_space_size + jae copy_string_or_array_constant + push rbx mov rax,qword ptr 16[rcx] @@ -1282,6 +1277,14 @@ copy_bool_array_2: shr rbx,3 jmp copy_int_or_real_array_2 +copy_string_or_array_constant: + mov qword ptr [rbp],rcx + add rbp,8 + + sub rbx,1 + jae copy_lp2 + ret + end_copy1: mov heap_end_after_gc,rsi |