You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
922 B
43 lines
922 B
/*
|
|
* Copyright 2002-2019 Intel Corporation.
|
|
*
|
|
* This software is provided to you as Sample Source Code as defined in the accompanying
|
|
* End User License Agreement for the Intel(R) Software Development Products ("Agreement")
|
|
* section 1.L.
|
|
*
|
|
* This software and the related documents are provided as is, with no express or implied
|
|
* warranties, other than those that are expressly stated in the License.
|
|
*/
|
|
|
|
/*
|
|
* This test verifies Pin's handling of two weird instructions:
|
|
* "call *%rsp" and "jmp *%rsp".
|
|
*/
|
|
|
|
.text
|
|
.globl main
|
|
main:
|
|
pushl %ebp
|
|
movl %esp, %ebp
|
|
subl $8, %esp
|
|
|
|
/*
|
|
* Push a 'ret' instruction, then call it.
|
|
*/
|
|
pushl $0xc3 /* ret */
|
|
call *%esp
|
|
popl %eax
|
|
|
|
/*
|
|
* Push a 'jmp *%ecx' instruction, then jump to it.
|
|
*/
|
|
lea .l1, %ecx
|
|
pushl $0xe1ff /* jmp *%ecx */
|
|
jmp *%esp
|
|
.l1:
|
|
popl %eax
|
|
|
|
xorl %eax, %eax
|
|
leave
|
|
ret
|