/* Copyright 2009-2021 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . This file is part of the gdb testsuite. Test displaced stepping over VEX-encoded RIP-relative AVX instructions. */ .text .global _start,main _start: # The area at _start is used as the displaced stepping buffer. Put # more than enough nop instructions so that the instructions under test # below don't conflict with it. .rept 200 nop .endr main: nop /***********************************************/ /* Test a VEX2-encoded RIP-relative instruction. */ .global test_rip_vex2 test_rip_vex2: vmovsd ro_var(%rip),%xmm0 .global test_rip_vex2 test_rip_vex2_end: nop /* Test a VEX3-encoded RIP-relative instruction. */ .global test_rip_vex3 test_rip_vex3: vextractf128 $0x0,%ymm0,var128(%rip) .global test_rip_vex3 test_rip_vex3_end: nop /* skip over test data */ jmp done /* RIP-relative ro-data for VEX2 test above. */ ro_var: .8byte 0x1122334455667788 .8byte 0x8877665544332211 /***********************************************/ /* All done. */ done: mov $0,%rdi call _exit hlt /* RIP-relative data for VEX3 test above. */ .data var128: .8byte 0xaa55aa55aa55aa55 .8byte 0x55aa55aa55aa55aa