aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-i386/ifunc-1b.S
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-i386/ifunc-1b.S')
-rw-r--r--ld/testsuite/ld-i386/ifunc-1b.S42
1 files changed, 42 insertions, 0 deletions
diff --git a/ld/testsuite/ld-i386/ifunc-1b.S b/ld/testsuite/ld-i386/ifunc-1b.S
new file mode 100644
index 0000000..802a36d
--- /dev/null
+++ b/ld/testsuite/ld-i386/ifunc-1b.S
@@ -0,0 +1,42 @@
+ .section .rodata.str1.1,"aMS",@progbits,1
+.LC0:
+ .string "PASS"
+ .text
+ .p2align 4,,15
+ .globl check
+ .type check, @function
+check:
+ pushl %ebx
+ call __x86.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ subl $8, %esp
+ call *get_func1@GOT(%ebx)
+ cmpl func1@GOT(%ebx), %eax
+ jne .L3
+ call *func1@GOT(%ebx)
+ cmpl $1, %eax
+ jne .L3
+ call *call_func1@GOT(%ebx)
+ cmpl $1, %eax
+ jne .L3
+ call *call_func2@GOT(%ebx)
+ cmpl $2, %eax
+ jne .L3
+ leal .LC0@GOTOFF(%ebx), %eax
+ subl $12, %esp
+ pushl %eax
+ call *puts@GOT(%ebx)
+ addl $24, %esp
+ popl %ebx
+ ret
+.L3:
+ call *abort@GOT(%ebx)
+ .size check, .-check
+ .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
+ .globl __x86.get_pc_thunk.bx
+ .hidden __x86.get_pc_thunk.bx
+ .type __x86.get_pc_thunk.bx, @function
+__x86.get_pc_thunk.bx:
+ movl (%esp), %ebx
+ ret
+ .section .note.GNU-stack,"",@progbits