diff options
Diffstat (limited to 'ld/testsuite/ld-i386/pr20253-1b.S')
-rw-r--r-- | ld/testsuite/ld-i386/pr20253-1b.S | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/ld/testsuite/ld-i386/pr20253-1b.S b/ld/testsuite/ld-i386/pr20253-1b.S new file mode 100644 index 0000000..93c6d26 --- /dev/null +++ b/ld/testsuite/ld-i386/pr20253-1b.S @@ -0,0 +1,52 @@ + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "PASS" + .text + .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) +#ifdef CHECK_PLT + cmpl $func1, %eax +#else + cmpl func1@GOT(%ebx), %eax +#endif + jne .L3 + movl func1_p@GOT(%ebx), %edx + cmpl %eax, (%edx) + jne .L3 + call *func1@GOT(%ebx) + cmpl $1, %eax + jne .L3 + call *call_func1@GOT(%ebx) + cmpl $1, %eax + jne .L3 + call *get_func2@GOT(%ebx) + movl func2_p@GOT(%ebx), %edx + cmpl %eax, (%edx) + 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 |