summaryrefslogtreecommitdiff
path: root/thumb2ap.s
diff options
context:
space:
mode:
Diffstat (limited to 'thumb2ap.s')
-rw-r--r--thumb2ap.s168
1 files changed, 97 insertions, 71 deletions
diff --git a/thumb2ap.s b/thumb2ap.s
index 8127222..16343ab 100644
--- a/thumb2ap.s
+++ b/thumb2ap.s
@@ -600,7 +600,7 @@ repl_args_5:
no_fast_ap32:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -615,7 +615,7 @@ no_fast_ap32:
no_fast_ap31:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -630,7 +630,7 @@ no_fast_ap31:
no_fast_ap30:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -645,7 +645,7 @@ no_fast_ap30:
no_fast_ap29:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -660,7 +660,7 @@ no_fast_ap29:
no_fast_ap28:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -675,7 +675,7 @@ no_fast_ap28:
no_fast_ap27:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -690,7 +690,7 @@ no_fast_ap27:
no_fast_ap26:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -705,7 +705,7 @@ no_fast_ap26:
no_fast_ap25:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -720,7 +720,7 @@ no_fast_ap25:
no_fast_ap24:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -735,7 +735,7 @@ no_fast_ap24:
no_fast_ap23:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -750,7 +750,7 @@ no_fast_ap23:
no_fast_ap22:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -765,7 +765,7 @@ no_fast_ap22:
no_fast_ap21:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -780,7 +780,7 @@ no_fast_ap21:
no_fast_ap20:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -795,7 +795,7 @@ no_fast_ap20:
no_fast_ap19:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -810,7 +810,7 @@ no_fast_ap19:
no_fast_ap18:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -825,7 +825,7 @@ no_fast_ap18:
no_fast_ap17:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -840,7 +840,7 @@ no_fast_ap17:
no_fast_ap16:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -855,7 +855,7 @@ no_fast_ap16:
no_fast_ap15:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -870,7 +870,7 @@ no_fast_ap15:
no_fast_ap14:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -885,7 +885,7 @@ no_fast_ap14:
no_fast_ap13:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -900,7 +900,7 @@ no_fast_ap13:
no_fast_ap12:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -915,7 +915,7 @@ no_fast_ap12:
no_fast_ap11:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -930,7 +930,7 @@ no_fast_ap11:
no_fast_ap10:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -945,7 +945,7 @@ no_fast_ap10:
no_fast_ap9:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -960,7 +960,7 @@ no_fast_ap9:
no_fast_ap8:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -975,7 +975,7 @@ no_fast_ap8:
no_fast_ap7:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -990,7 +990,7 @@ no_fast_ap7:
no_fast_ap6:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -1005,7 +1005,7 @@ no_fast_ap6:
no_fast_ap5:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -1020,7 +1020,7 @@ no_fast_ap5:
no_fast_ap4:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -1035,7 +1035,7 @@ no_fast_ap4:
no_fast_ap3:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r11,[r6]
@@ -1050,7 +1050,7 @@ no_fast_ap3:
no_fast_ap2:
ldr r12,[r11,#2]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r12
ldr r8,[r6]
@@ -1459,7 +1459,9 @@ yet_args_needed_0_gc_r:
mov r6,r10
add r4,r4,#8
str r4,[r10],#8
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
yet_args_needed_0_gc:
bl collect_2
@@ -1485,7 +1487,9 @@ yet_args_needed_1_gc_r:
ldr r3,[r7,#4]
str r3,[r10,#4]
add r10,r10,#12
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
yet_args_needed_1_gc:
bl collect_2
@@ -1499,7 +1503,9 @@ build_node_2_gc_r:
str r6,[r10,#8]
mov r6,r10
add r10,r10,#12
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
build_node_2_gc:
bl collect_2
@@ -1528,7 +1534,9 @@ gc_r_22:
str r8,[r10]
str r10,[r10,#16]
add r10,r10,#20
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
gc_22: bl collect_2
b gc_r_22
@@ -1546,7 +1554,9 @@ build_node_3_gc_r:
subs r9,r9,#4
str r8,[r10,#16]
add r10,r10,#20
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
build_node_3_gc:
bl collect_2
@@ -1578,7 +1588,9 @@ gc_r_23:
add r6,r10,#12
str r8,[r10,#4]
add r10,r10,#24
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
gc_23: bl collect_2
b gc_r_23
@@ -1598,7 +1610,9 @@ build_node_4_gc_r:
subs r9,r9,#8
str r8,[r10,#20]
add r10,r10,#24
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
build_node_4_gc:
bl collect_2
@@ -1632,7 +1646,9 @@ gc_r_24:
ldr r8,[r7,#8]
str r8,[r10,#8]
add r10,r10,#28
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
gc_24: bl collect_2
b gc_r_24
@@ -1654,7 +1670,9 @@ build_node_5_gc_r:
subs r9,r9,#12
str r8,[r10,#24]
add r10,r10,#28
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
build_node_5_gc:
bl collect_2
@@ -2025,7 +2043,9 @@ yet_args_needed_cp_a:
str r3,[r10,#8]
str r8,[r10,#12]
add r10,r10,#16
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
yet_args_needed_gc:
bl collect_2
@@ -2057,7 +2077,9 @@ build_node_cp_a:
subs r4,r4,#1
bne build_node_cp_a
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
build_node_gc:
bl collect_2
@@ -2243,7 +2265,7 @@ apupd_7:
ldr r8,[r9,#-28]
ldr r4,[r9,#-32]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_8
lao r12,e__system__nind,29
@@ -2264,7 +2286,7 @@ apupd_8:
ldr r8,[r9,#-32]
ldr r4,[r9,#-36]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_9
lao r12,e__system__nind,30
@@ -2285,7 +2307,7 @@ apupd_9:
ldr r8,[r9,#-36]
ldr r4,[r9,#-40]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_10
lao r12,e__system__nind,31
@@ -2306,7 +2328,7 @@ apupd_10:
ldr r8,[r9,#-40]
ldr r4,[r9,#-44]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_11
lao r12,e__system__nind,32
@@ -2327,7 +2349,7 @@ apupd_11:
ldr r8,[r9,#-44]
ldr r4,[r9,#-48]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_12
lao r12,e__system__nind,33
@@ -2348,7 +2370,7 @@ apupd_12:
ldr r8,[r9,#-48]
ldr r4,[r9,#-52]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_13
lao r12,e__system__nind,34
@@ -2369,7 +2391,7 @@ apupd_13:
ldr r8,[r9,#-52]
ldr r4,[r9,#-56]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_14
lao r12,e__system__nind,35
@@ -2390,7 +2412,7 @@ apupd_14:
ldr r8,[r9,#-56]
ldr r4,[r9,#-60]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_15
lao r12,e__system__nind,36
@@ -2411,7 +2433,7 @@ apupd_15:
ldr r8,[r9,#-60]
ldr r4,[r9,#-64]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_16
lao r12,e__system__nind,37
@@ -2432,7 +2454,7 @@ apupd_16:
ldr r8,[r9,#-64]
ldr r4,[r9,#-68]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_17
lao r12,e__system__nind,38
@@ -2453,7 +2475,7 @@ apupd_17:
ldr r8,[r9,#-68]
ldr r4,[r9,#-72]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_18
lao r12,e__system__nind,39
@@ -2474,7 +2496,7 @@ apupd_18:
ldr r8,[r9,#-72]
ldr r4,[r9,#-76]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_19
lao r12,e__system__nind,40
@@ -2495,7 +2517,7 @@ apupd_19:
ldr r8,[r9,#-76]
ldr r4,[r9,#-80]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_20
lao r12,e__system__nind,41
@@ -2516,7 +2538,7 @@ apupd_20:
ldr r8,[r9,#-80]
ldr r4,[r9,#-84]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_21
lao r12,e__system__nind,42
@@ -2537,7 +2559,7 @@ apupd_21:
ldr r8,[r9,#-84]
ldr r4,[r9,#-88]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_22
lao r12,e__system__nind,43
@@ -2558,7 +2580,7 @@ apupd_22:
ldr r8,[r9,#-88]
ldr r4,[r9,#-92]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_23
lao r12,e__system__nind,44
@@ -2579,7 +2601,7 @@ apupd_23:
ldr r8,[r9,#-92]
ldr r4,[r9,#-96]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_24
lao r12,e__system__nind,45
@@ -2600,7 +2622,7 @@ apupd_24:
ldr r8,[r9,#-96]
ldr r4,[r9,#-100]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_25
lao r12,e__system__nind,46
@@ -2621,7 +2643,7 @@ apupd_25:
ldr r8,[r9,#-100]
ldr r4,[r9,#-104]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_26
lao r12,e__system__nind,47
@@ -2642,7 +2664,7 @@ apupd_26:
ldr r8,[r9,#-104]
ldr r4,[r9,#-108]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_27
lao r12,e__system__nind,48
@@ -2663,7 +2685,7 @@ apupd_27:
ldr r8,[r9,#-108]
ldr r4,[r9,#-112]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_28
lao r12,e__system__nind,49
@@ -2684,7 +2706,7 @@ apupd_28:
ldr r8,[r9,#-112]
ldr r4,[r9,#-116]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_29
lao r12,e__system__nind,50
@@ -2705,7 +2727,7 @@ apupd_29:
ldr r8,[r9,#-116]
ldr r4,[r9,#-120]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_30
lao r12,e__system__nind,51
@@ -2726,7 +2748,7 @@ apupd_30:
ldr r8,[r9,#-120]
ldr r4,[r9,#-124]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_31
lao r12,e__system__nind,52
@@ -2747,7 +2769,7 @@ apupd_31:
ldr r8,[r9,#-124]
ldr r4,[r9,#-128]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_32
lao r12,e__system__nind,53
@@ -2768,7 +2790,7 @@ apupd_32:
ldr r8,[r9,#-128]
ldr r4,[r9,#-132]
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl move_33
lao r12,e__system__nind,54
@@ -2815,7 +2837,7 @@ ap_32__u0:
add r8,r8,pc
.endif
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
blx r8
apupd_upd:
@@ -2828,7 +2850,9 @@ apupd_upd:
ldr r4,[r6,#8]
mov r6,r7
str r4,[r7,#8]
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
move_33:
ldr r3,[r9,#-124]
@@ -2919,7 +2943,9 @@ move_7:
str r3,[r9,#-12]
ldr r3,[r9,#-4]
str r3,[r9,#-8]
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
.ifdef PIC
lto apupd_upd,0