From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22380 invoked by alias); 14 Mar 2003 08:16:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 22115 invoked by uid 71); 14 Mar 2003 08:16:00 -0000 Resent-Date: 14 Mar 2003 08:16:00 -0000 Resent-Message-ID: <20030314081600.22113.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, douze@enseeiht.fr Received: (qmail 17024 invoked by uid 48); 14 Mar 2003 08:14:57 -0000 Message-Id: <20030314081457.17020.qmail@sources.redhat.com> Date: Fri, 14 Mar 2003 08:16:00 -0000 From: douze@enseeiht.fr Reply-To: douze@enseeiht.fr To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: target/10077: gcc -msse2 generates movd to move dwords between xmm regs X-SW-Source: 2003-03/txt/msg00826.txt.bz2 List-Id: >Number: 10077 >Category: target >Synopsis: gcc -msse2 generates movd to move dwords between xmm regs >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Mar 14 08:16:00 UTC 2003 >Closed-Date: >Last-Modified: >Originator: douze@enseeiht.fr >Release: gcc 3.2.2 on x86 >Organization: >Environment: Linux 2.4.18 >Description: The bug appears when I compile a function with many variables. GCC then uses xmm registers as 32-bit scalar integer registers. When it has to move data with an xmm register involved, it generates a movd instruction, which doesn't work (movss might work better). Although there is sse2 assembly in my code, I don't think it comes from there. The assembler used is GNU assembler version 2.11.92.0.10 (i486-suse-linux) using BFD version 2.11.92.0.10 20011021 (SuSE) >How-To-Repeat: Compile the code with gcc -c gcc_bug.i -msse2 -O3 >Fix: replace movd with movss in the .s file >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="gcc_bug.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gcc_bug.i" CiAKdHlwZWRlZiBpbnQgbTEyOCAKICAgIF9fYXR0cmlidXRlX18gKChfX21vZGVfXyhfX1Y0U0lf XyksYWxpZ25lZCgxNikpKTsKCiAKc3RhdGljIF9faW5saW5lIG0xMjggeG1tX21hZGQobTEyOCBh LG0xMjggYixtMTI4IGMpIHsKICBhc20gdm9sYXRpbGUoCiAgICAgICIgIHBtYWRkd2QgJTIsJTBc biIKICAgICAgIiAgcGFkZGQgJTAsJTFcbiIKICAgICAgOiAiK3giIChiKSwiK3giIChjKQogICAg ICA6ICJ4bSIgKGEpKTsKICByZXR1cm4gYzsKfQoKIAogCnN0YXRpYyBfX2lubGluZSBpbnQgeG1t X2dldF8zMihtMTI4IGEpIHsKICBpbnQgYjsgCiAgYXNtIHZvbGF0aWxlKAogICAgICAiICBtb3Zk ICUxLCUwIiAKICAgICAgOiAiPXEiIChiKQogICAgICA6ICJ4IiAoYSkpOwogIHJldHVybiBiOwp9 CgoKCgoKCgp2b2lkIGF0cmFfcygKICAgIHNob3J0ICphLGludCBtLGludCBuLGludCBsZGEsCiAg ICBkb3VibGUgKmF0YSkgewogIGludCBpMSxqMTsKICBpbnQgbmQ9bi8gOCAsbmM9bmQqIDggOwog IGludCBtZD1tLyA4ICxtYz1tZCogOCA7CgogIGZvcihpMT0wO2kxPG5kO2kxKyspIHsKICAgIHNo b3J0ICpiaT1hK2xkYSppMSogOCA7CgogICAgZm9yKGoxPWkxKzE7ajE8bmQ7ajErKykgewogICAg ICBtMTI4IGFjY3VbOCAqIDggXTsKICAgICAgc2hvcnQgKmJqPWErbGRhKmoxKiA4IDsKICAgICAg aW50IGksaixrOwogICAgICBkb3VibGUgKmF0YV9sPWF0YStpMSogOCArajEqIDggKm47CiAgICAg CiAgICAgIGZvcihrPTA7azxtZDtrKyspIHsKICAgICAgICBzaG9ydCAqbGk9YmkrayogOCA7CiAg ICAgICAgc2hvcnQgKmxqPWJqK2sqIDggOwogICAgICAgIGZvcihqPTA7ajwgOCA7aisrKSBmb3Io aT0wO2k8IDggO2krKykgewoJICBtMTI4IGFjY3UxOwogICAgICAgICAgbTEyOCAqbWk9KHZvaWQq KShsaStpKmxkYSk7CiAgICAgICAgICBtMTI4ICptaj0odm9pZCopKGxqK2oqbGRhKTsKICAgICAg ICAgIGFjY3UxPWFjY3VbaStqKiA4IF07CgkgIAkgIAogICAgICAgICAgYWNjdTE9eG1tX21hZGQo bWlbMF0sbWpbMF0sYWNjdTEpOwoJICAKCSAgYWNjdVtpK2oqIDggXT1hY2N1MTsKICAgICAgICB9 ICAgICAgICAKICAgICAgfQoKCiAgICAgIGZvcihqPTA7ajwgOCA7aisrKSBmb3IoaT0wO2k8IDgg O2krKykgewogICAgICAgIHNob3J0ICpsaT1iaStpKmxkYTsKICAgICAgICBzaG9ydCAqbGo9Ymor aipsZGE7CiAgICAgICAgaW50IGFjY3UxOwoJYWNjdTE9eG1tX2dldF8zMihhY2N1W2kraiogOCBd KTsKCQogICAgICAgIGZvcihrPW1jO2s8bTtrKyspIHsKICAgICAgICAgIGFjY3UxKz1saVtrXSps altrXTsKCX0KICAgICAgICBhdGFfbFtpK2oqbl09YWNjdTE7CiAgICAgIH0KICAgICAgCiAgICB9 CiAgfQoKfQoKCgoKCg==