summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-arm/farcall-mixed-app.s
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-arm/farcall-mixed-app.s')
-rw-r--r--ld/testsuite/ld-arm/farcall-mixed-app.s61
1 files changed, 61 insertions, 0 deletions
diff --git a/ld/testsuite/ld-arm/farcall-mixed-app.s b/ld/testsuite/ld-arm/farcall-mixed-app.s
new file mode 100644
index 0000000..e462ba3
--- /dev/null
+++ b/ld/testsuite/ld-arm/farcall-mixed-app.s
@@ -0,0 +1,61 @@
+ .text
+ .p2align 4
+ .globl _start
+_start:
+ mov ip, sp
+ stmdb sp!, {r11, ip, lr, pc}
+ bl app_func
+ bl lib_func1
+ bl lib_func2
+ ldmia sp, {r11, sp, lr}
+ bx lr
+
+ .p2align 4
+ .globl app_tfunc_close
+ .type app_tfunc_close,%function
+ .thumb_func
+ .code 16
+app_tfunc_close:
+ push {lr}
+ bl lib_func2
+ pop {pc}
+ bx lr
+
+@ We will place the section .far_arm at 0x2100000.
+ .section .far_arm, "xa"
+
+ .arm
+ .p2align 4
+ .globl app_func
+ .type app_func,%function
+app_func:
+ mov ip, sp
+ stmdb sp!, {r11, ip, lr, pc}
+ bl lib_func1
+ bl lib_func2
+ ldmia sp, {r11, sp, lr}
+ bx lr
+
+ .arm
+ .p2align 4
+ .globl app_func2
+ .type app_func2,%function
+app_func2:
+ bx lr
+
+@ We will place the section .far_thumb at 0x2200000.
+ .section .far_thumb, "xa"
+
+ .p2align 4
+ .globl app_tfunc
+ .type app_tfunc,%function
+ .thumb_func
+ .code 16
+app_tfunc:
+ push {lr}
+ bl lib_func2
+ pop {pc}
+ bx lr
+
+ .data
+ .long data_obj