From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21602 invoked by alias); 11 Dec 2001 18:30:38 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 21551 invoked from network); 11 Dec 2001 18:30:31 -0000 Received: from unknown (HELO cdlsystems.com) (207.228.116.20) by sources.redhat.com with SMTP; 11 Dec 2001 18:30:31 -0000 Received: from hades by cdlsystems.com with SMTP (MDaemon.v3.5.3.R) for ; Tue, 11 Dec 2001 11:30:26 -0700 Message-ID: <00cc01c18271$ef4c12a0$160e10ac@hades> From: "Mark Cuss" To: Cc: References: <20011204153416.A24659@disaster.jaj.com> <20011204155032.A24992@disaster.jaj.com> <00d001c17d05$4be398c0$160e10ac@hades> <3C0D3A05.6FE3602F@redhat.com> Subject: Embedded Assembly and MMX in GCC Date: Tue, 11 Dec 2001 11:14:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Return-Path: mcuss@cdlsystems.com X-MDaemon-Deliver-To: gcc@gcc.gnu.org Reply-To: mcuss@cdlsystems.com X-SW-Source: 2001-12/txt/msg00600.txt.bz2 Hello All, I've been playing around with the MMX instructions with some inline code (using GCC 2.96, AS v 2.11.90.0.8). I'm able to do simple stuff (moves, adds, etc) between the 32 bit registers on the CPU like eax, etc. However, I can't seem to do any 64 bit stuff. For example, The following fails: __asm__("movq $1, %mm0); The assembler says "suffix or operands invalid for 'mov1' " Also, If I create a 64 bit variable (like an unsigned long long int) and move it into an mmx register, it seems that I only get the first 32 bits moving into the register. Also, the packed adding stuff (like PADDW) doesn't seem to work. I realize that "movq" is an actual intel assembly command, and all the other movs in AT&T (movb, movw) were added to specify the size of the value being moved, so I see where the "q" stuff could cause troubles. I'm pretty sure there just must be some configuration thing I need to set up or something, but I can't seem to find it... If anyone has any hints they would be greatly appreciated. Thanks in Advance, Mark