From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20471 invoked by alias); 2 Jul 2005 10:17:08 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 20443 invoked by uid 48); 2 Jul 2005 10:17:03 -0000 Date: Sat, 02 Jul 2005 10:17:00 -0000 Message-ID: <20050702101703.20442.qmail@sourceware.org> From: "falk at debian dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20040702165134.16331.thutt@vmware.com> References: <20040702165134.16331.thutt@vmware.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug target/16331] x86-64 inline asm register constraints insufficient WRT ABI X-Bugzilla-Reason: CC X-SW-Source: 2005-07/txt/msg00165.txt.bz2 List-Id: ------- Additional Comments From falk at debian dot org 2005-07-02 10:17 ------- (In reply to comment #4) > The first call of pokus() completely ignores the assigned value of the variable > r8 -- instead the value '6' into it for the call. The second call assumes the > the register r8 should be used for the call, but by now the wrong value has bee > placed into it. I cannot reproduce this with gcc 3.3.6, the generated assembly looks just fine for me: 0000000000000000 : 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp 4: e8 00 00 00 00 callq 9 5: R_X86_64_PC32 hokus+0xfffffffffffffffc 9: 41 89 c0 mov %eax,%r8d c: 41 b9 06 00 00 00 mov $0x6,%r9d 12: be 02 00 00 00 mov $0x2,%esi 17: ba 03 00 00 00 mov $0x3,%edx 1c: b9 04 00 00 00 mov $0x4,%ecx 21: 44 89 c7 mov %r8d,%edi 24: e8 00 00 00 00 callq 29 25: R_X86_64_PC32 pokus+0xfffffffffffffffc 29: e8 00 00 00 00 callq 2e 2a: R_X86_64_PC32 hokus+0xfffffffffffffffc 2e: 41 b9 06 00 00 00 mov $0x6,%r9d 34: 41 b8 05 00 00 00 mov $0x5,%r8d 3a: b9 04 00 00 00 mov $0x4,%ecx 3f: ba 03 00 00 00 mov $0x3,%edx 44: be 02 00 00 00 mov $0x2,%esi 49: 44 89 c7 mov %r8d,%edi 4c: b8 00 00 00 00 mov $0x0,%eax 51: e8 00 00 00 00 callq 56 52: R_X86_64_PC32 pokus+0xfffffffffffffffc 56: c9 leaveq Please retry and give the exact version and flags you used. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16331