From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5822 invoked by alias); 8 Jan 2013 15:57:24 -0000 Received: (qmail 5812 invoked by uid 22791); 8 Jan 2013 15:57:23 -0000 X-SWARE-Spam-Status: No, hits=-8.8 required=5.0 tests=AWL,BAYES_00,KHOP_PGP_SIGNED,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp.gentoo.org (HELO smtp.gentoo.org) (140.211.166.183) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 08 Jan 2013 15:57:17 +0000 Received: from vapier.localnet (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 51D4033DAAB; Tue, 8 Jan 2013 15:57:16 +0000 (UTC) From: Mike Frysinger To: gdb-patches@sourceware.org Subject: Re: [PATCH] gdb: x86: fix x32 builds with inline asm Date: Tue, 08 Jan 2013 15:57:00 -0000 User-Agent: KMail/1.13.7 (Linux/3.7.1; KDE/4.6.5; x86_64; ; ) Cc: hjl.tools@gmail.com, jan.kratochvil@redhat.com References: <1357657280-24150-1-git-send-email-vapier@gentoo.org> In-Reply-To: <1357657280-24150-1-git-send-email-vapier@gentoo.org> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart6097738.hEzdynvVRd"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201301081059.40723.vapier@gentoo.org> X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2013-01/txt/msg00133.txt.bz2 --nextPart6097738.hEzdynvVRd Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-length: 1216 On Tuesday 08 January 2013 10:01:20 Mike Frysinger wrote: > -#if defined __i386__ > - asm volatile ("pushl %0;" > - ".globl linux_ptrace_test_ret_to_nx_instr;" > - "linux_ptrace_test_ret_to_nx_instr:" > - "ret" > - : : "r" (return_address) : "%esp", "memory"); > -#elif defined __x86_64__ > - asm volatile ("pushq %0;" > + asm volatile ("push %0;" > ".globl linux_ptrace_test_ret_to_nx_instr;" > "linux_ptrace_test_ret_to_nx_instr:" > "ret" > - : : "r" (return_address) : "%rsp", "memory"); > -#else > -# error "!__i386__ && !__x86_64__" > -#endif > + : : "r" (return_address) : "sp", "memory"); hrm, this works for -m32 and -m64, but doesn't actually help with -mx32. t= his=20 doesn't seem to line up with my expectations. can you suggest something he= re=20 H.J. Lu ? $ cat test.c main() { asm volatile ("push %0; ret;" : : "r"(main) : "sp", "memory"); } $ gcc -m32 test.c 8: 50 push %eax 9: c3 ret=20=20=20=20 $ gcc -m64 test.c 9: 50 push %rax a: c3 retq=20=20=20 $ gcc -mx32 test.c test.c: Assembler messages: test.c:2: Error: operand type mismatch for `push' -mike --nextPart6097738.hEzdynvVRd Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. Content-length: 836 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (GNU/Linux) iQIcBAABAgAGBQJQ7EJsAAoJEEFjO5/oN/WBSqMQALQmFmdO4W+gaGHX5VUVq/4J h9tky3Mos73OjkkWdkB+jpk066fZAMO/CjnaUc2CC9kbKOLW+S0DAu9sxeI5g39f YD5lRRrrr6XND1YD5wR/Dk/RH5BhvJmCdjlds5zFQ0p1NZ/7QkPU0LLAxt2MDMnt OYDQr1bXKPi8Odx4vIKCElW1aIebW0ETWmKXWS3zZU+MsfsvqAAmbJ8J/VdnleEI w6KfwewI1s4cmSRj3E0GmvQQyveTQB+xLadHr+W/h548eLyzLzb68/draalpfAfD x9JjtTP19tyM7TT2OH4AlJeblpWuGmn05T+2pb1AXIW3/RSPtYK6KQAaEKUPjkAF yH3TBAIHja0cMpvIe5+s/rxWYbRaMWJ88gJnTONkRGP0Wg3ZLL3Fw8gP9uoSfyBC 2gsUqsL3RqbnteAyYkiNanTyL5gqljaRwWHgE61u8B7C5EbZGbuhbhtqUjq1eWur Ea6KWceZ2Iw4MwRz1acm8sCGvv9QWc5KyVFW+iuhLz8pI0FVQfzenmEAZvwzkxcA Cc7OmCAhczjseCgT2iVxH6QgUGFrib0QnOcnoz1C8VbM0cfSJ2JmgvyIiIJ+PleK sgoSBc/PcBJp5Mbk7Bf0f6DUKMM4Q/+I8CYCOdf8NSbv/g3rLJZRHEsIuGWOwjkd 2En/aplSRQni9wSrSJ0M =FZjO -----END PGP SIGNATURE----- --nextPart6097738.hEzdynvVRd--