diff options
author | Camil Staps | 2016-11-06 21:43:34 +0000 |
---|---|---|
committer | Camil Staps | 2016-11-06 21:43:34 +0000 |
commit | b36ae1f253e4293921faac8c0c7200dd46c17f56 (patch) | |
tree | 08f34bcc6e3c5bad169501fcdecfc403017011d6 | |
parent | Fix some cases where data before a node entry is used (diff) |
Rollback some previous changes because they were incorrect
-rw-r--r-- | thumb2copy.s | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/thumb2copy.s b/thumb2copy.s index 643c9f9..bc68a9e 100644 --- a/thumb2copy.s +++ b/thumb2copy.s @@ -16,10 +16,10 @@ COPY_RECORDS_WITHOUT_POINTERS_TO_END_OF_HEAP = 1 add r9,r10,r4
-@ r0 = INT+3
-@ r1 = CHAR+3
- laol r0,INT+3,INT_o_2,6
- laol r1,CHAR+3,CHAR_o_2,2
+@ r0 = INT+2
+@ r1 = CHAR+2
+ laol r0,INT+2,INT_o_2,6
+ laol r1,CHAR+2,CHAR_o_2,2
otoa r0,INT_o_2,6
otoa r1,CHAR_o_2,2
@@ -110,8 +110,8 @@ end_finalizers_after_copy: lto heap_p2,9
lto heap_size_129,4
lto semi_space_size,0
- ltol INT+3,INT_o_2,6
- ltol CHAR+3,CHAR_o_2,2
+ ltol INT+2,INT_o_2,6
+ ltol CHAR+2,CHAR_o_2,2
.if WRITE_HEAP
ltol heap2_begin_and_end+4,heap2_begin_and_end_o_4,0
.endif
@@ -151,7 +151,7 @@ continue_after_selector_2: beq not_in_hnf_2
in_hnf_2:
- ldrh r4,[r6,#-3]
+ ldrh r4,[r6,#-2]
cmp r4,#0
beq copy_arity_0_node2
@@ -206,7 +206,7 @@ copy_hnf_node2_3: ldr r7,[r6]
tst r7,#1
- beq arguments_already_copied_2
+ bne arguments_already_copied_2
str r10,[r10,#-4]
@@ -235,17 +235,17 @@ arguments_already_copied_2: b copy_lp1
copy_arity_0_node2:
- cmp r6,r0 @ INT+3
+ cmp r6,r0 @ INT+2
blo copy_real_file_or_string_2
- cmp r6,r1 @ CHAR+3
+ cmp r6,r1 @ CHAR+2
bhi copy_normal_hnf_0_2
copy_int_bool_or_char_2:
ldr r4,[r7,#4]
beq copy_char_2
- cmp r6,r0 @ INT+3
+ cmp r6,r0 @ INT+2
bne no_small_int_or_char_2
copy_int_2:
@@ -283,10 +283,10 @@ copy_record_node2_1_b: str r6,[r9,#-8]
str r4,[r9,#-4]
- sub r9,r9,#8
+ sub r9,r9,#7
str r9,[r7]
- add r9,r9,#1
+ sub r9,r9,#1
str r9,[r5]
@@ -305,7 +305,7 @@ copy_normal_hnf_0_2: b copy_lp1
copy_real_file_or_string_2:
- laol r12,__STRING__+3,__STRING___o_2,7
+ laol r12,__STRING__+2,__STRING___o_2,7
otoa r12,__STRING___o_2,7
cmp r6,r12
bls copy_string_or_array_2
@@ -354,7 +354,7 @@ copy_record_2: str r10,[r5]
str r6,[r10]
- add r6,r10,#0
+ add r6,r10,#1
ldr r4,[r7,#4]
str r6,[r7]
@@ -379,7 +379,7 @@ copy_record_node2_1: str r10,[r5]
str r6,[r10]
- add r6,r10,#0
+ add r6,r10,#1
str r4,[r10,#4]
str r6,[r7]
@@ -395,7 +395,7 @@ copy_record_node2_3: bls copy_record_node2_3_ab_or_b
str r4,[sp,#-4]!
- add r4,r10,#0
+ add r4,r10,#1
str r4,[r7]
ldr r4,[r7,#8]
@@ -409,7 +409,7 @@ copy_record_node2_3: ldr r12,[r4]
mov r6,r4
tst r12,#1
- beq record_arguments_already_copied_2
+ bne record_arguments_already_copied_2
add r7,r10,#12
@@ -454,7 +454,7 @@ copy_record_node2_3_ab_or_b: copy_record_node2_3_ab:
str r4,[sp,#-4]!
- add r4,r10,#0
+ add r4,r10,#1
lao r12,heap_p1,9
@@ -593,7 +593,7 @@ record_arguments_already_copied_3_b: ldr r7,[r6]
ldr r4,[sp],#4
- add r7,r7,#1
+ sub r7,r7,#1
str r7,[r9,#8]
subs r3,r3,#1
@@ -830,7 +830,7 @@ copy_selector_2__: ldr r4,[r4,#8]
ldrb r12,[r4]
tst r12,#1
- bne copy_arity_1_node2_
+ beq copy_arity_1_node2_
copy_record_selector_2_:
.ifdef PIC
add r11,r6,#-9+4
@@ -983,7 +983,7 @@ copy_arity_0_node2_: copy_string_or_array_2:
.ifdef DLL
beq copy_string_2
- laol r12,__ARRAY__+3,__ARRAY___o_2,15
+ laol r12,__ARRAY__+2,__ARRAY___o_2,15
otoa r12,__ARRAY___o_2,15
cmp r6,r12
blo copy_normal_hnf_0_2
@@ -1019,7 +1019,7 @@ copy_string_2: str r3,[r9,#-8]!
str r9,[r5]
- sub r7,r9,#1
+ add r7,r9,#1
str r7,[r6,#-4]
add r7,r9,#4
@@ -1077,7 +1077,7 @@ copy_array_a3: str r4,[r7]
- sub r4,r7,#1
+ add r4,r7,#1
add r7,r7,#4
str r4,[r6],#4
@@ -1087,10 +1087,10 @@ copy_array_a3: copy_strict_basic_array_2:
ldr r3,[r6,#4]
- cmp r4,r0 @ INT+3
+ cmp r4,r0 @ INT+2
beq copy_int_array_2
- laol r12,BOOL+3,BOOL_o_2,4
+ laol r12,BOOL+2,BOOL_o_2,4
otoa r12,BOOL_o_2,4
cmp r4,r12
beq copy_bool_array_2
@@ -1107,12 +1107,12 @@ copy_int_array_2: mov r9,r7
str r4,[r7]
- sub r4,r7,#1
+ add r4,r7,#1
add r7,r7,#4
str r4,[r6],#4
- sub r4,r3,#1
+ add r4,r3,#1
b cp_s_arg_lp2
copy_bool_array_2:
@@ -1140,7 +1140,7 @@ copy_lp1: tst r4,#2
beq not_in_hnf_1
in_hnf_1:
- ldrh r3,[r4,#-3]
+ ldrh r3,[r4,#-2]
cmp r3,#0
beq copy_array_21
@@ -1309,7 +1309,7 @@ copy_array_21_lp_ab_next: .ifdef PIC
lto small_integers,1
lto static_characters,1
- ltol __STRING__+3,__STRING___o_2,7
+ ltol __STRING__+2,__STRING___o_2,7
lto heap_p1,9
lto heap_copied_vector,4
lto heap_p1,10
@@ -1322,13 +1322,13 @@ copy_array_21_lp_ab_next: lto heap_p1,12
lto heap_copied_vector,7
.ifdef DLL
- ltol __ARRAY__+3,__ARRAY___o_2,15
+ ltol __ARRAY__+2,__ARRAY___o_2,15
.endif
lto heap_p1,13
lto semi_space_size,1
lto heap_p1,14
lto semi_space_size,2
- ltol BOOL+3,BOOL_o_2,4
+ ltol BOOL+2,BOOL_o_2,4
.endif
.ltorg
|