From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 66420 invoked by alias); 16 Jan 2019 15:55:45 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 66408 invoked by uid 89); 16 Jan 2019 15:55:44 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=uros, ubizjak@gmail.com, ubizjakgmailcom, U*ubizjak X-HELO: mail-it1-f176.google.com Received: from mail-it1-f176.google.com (HELO mail-it1-f176.google.com) (209.85.166.176) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 16 Jan 2019 15:55:43 +0000 Received: by mail-it1-f176.google.com with SMTP id g76so3708887itg.2 for ; Wed, 16 Jan 2019 07:55:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=fuoU+r1Geef7lKYnwbFRe6K0SqUTclhYQ6g+O45zqnc=; b=YAFnGAf6W1Yjbjxyh6epp6Tn4oyL7ZGnGYiTZMpq2gqDCV9oD8rp/AXrgApd5IOTox C8Y9KK26pi5tRvnHa0AMfBWh1qGwt4yrui5OaIv9gEpJWXFdps6OFBTpgJK+Ho18pNe3 GwUOL8pH6YuPveuLCF0HbsfSQSgD1PWONEq7Ba7pN6rerFJySWJfflxFKlSOg6g3777u Kf4WI1EI/T+GxTELuxeL3hovILIhKGxdzO6hJuWkRlJJ690HDgUui7ASOcfrIGv96WW/ 9O/bxkvFzrWcRCaFjGoe+WLqLCx9Y5EngUQwgQWJCn/nQcHt1+ACuOEa5x7gRPz4BPII 3Dvg== MIME-Version: 1.0 From: Uros Bizjak Date: Wed, 16 Jan 2019 15:55:00 -0000 Message-ID: Subject: [PATCH, alpha]: Correctly handle split _Complex float variable arguments To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary="0000000000004f4fe9057f954fb0" X-SW-Source: 2019-01/txt/msg00921.txt.bz2 --0000000000004f4fe9057f954fb0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-length: 914 Hello! Attached patch corrects handing of split _Complex float variable arguments. Alpha is not able to pass 32bit floats in float registers as variable arguments (see the comment in alpha_pass_by_reference), so we pass them by reference. However, complex float arguments are split to their real and imaginary part and passed separately. When passed by reference, every part is passed separately by a separate reference. Attached patch fixes this oversight in alpha_gimplify_va_arg. The patch fixes: FAIL: gcc.dg/compat/scalar-by-value-4 c_compat_x_tst.o-c_compat_y_tst.o exe= cute FAIL: gcc.dg/compat/scalar-return-4 c_compat_x_tst.o-c_compat_y_tst.o execu= te 2019-01-16 Uro=C5=A1 Bizjak * config/alpha/alpha.c (alpha_gimplify_va_arg): Handle split indirect COMPLEX_TYPE arguments. Bootstrapped and regression tested on alphaev68-linux-gnu. Committed to mainline SVN. Uros. --0000000000004f4fe9057f954fb0 Content-Type: text/plain; charset="US-ASCII"; name="a.diff.txt" Content-Disposition: attachment; filename="a.diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jqzdb2kt0 Content-length: 2249 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWxwaGEvYWxwaGEuYyBiL2djYy9j b25maWcvYWxwaGEvYWxwaGEuYwppbmRleCBjZTQ1YzU0ZWViN2EuLmYwZTgx MjQ3OTdmMyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hbHBoYS9hbHBoYS5j CisrKyBiL2djYy9jb25maWcvYWxwaGEvYWxwaGEuYwpAQCAtNjM3OCw4ICs2 Mzc4LDQwIEBAIGFscGhhX2dpbXBsaWZ5X3ZhX2FyZyAodHJlZSB2YWxpc3Qs IHRyZWUgdHlwZSwgZ2ltcGxlX3NlcSAqcHJlX3AsCiAgIG9mZnNldCA9IGdl dF9pbml0aWFsaXplZF90bXBfdmFyICh0LCBwcmVfcCwgTlVMTCk7CiAKICAg aW5kaXJlY3QgPSBwYXNzX2J5X3JlZmVyZW5jZSAoTlVMTCwgVFlQRV9NT0RF ICh0eXBlKSwgdHlwZSwgZmFsc2UpOworCiAgIGlmIChpbmRpcmVjdCkKLSAg ICB0eXBlID0gYnVpbGRfcG9pbnRlcl90eXBlX2Zvcl9tb2RlICh0eXBlLCBw dHJfbW9kZSwgdHJ1ZSk7CisgICAgeworICAgICAgaWYgKFRSRUVfQ09ERSAo dHlwZSkgPT0gQ09NUExFWF9UWVBFCisJICAmJiB0YXJnZXRtLmNhbGxzLnNw bGl0X2NvbXBsZXhfYXJnICh0eXBlKSkKKwl7CisJICB0cmVlIHJlYWxfcGFy dCwgaW1hZ19wYXJ0LCByZWFsX3RlbXA7CisKKwkgIHRyZWUgcHRyX3R5cGUg PSBidWlsZF9wb2ludGVyX3R5cGVfZm9yX21vZGUgKFRSRUVfVFlQRSAodHlw ZSksCisJCQkJCQkgICAgICAgcHRyX21vZGUsIHRydWUpOworCisJICByZWFs X3BhcnQgPSBhbHBoYV9naW1wbGlmeV92YV9hcmdfMSAocHRyX3R5cGUsIGJh c2UsCisJCQkJCSAgICAgICBvZmZzZXQsIHByZV9wKTsKKwkgIHJlYWxfcGFy dCA9IGJ1aWxkX3ZhX2FyZ19pbmRpcmVjdF9yZWYgKHJlYWxfcGFydCk7CisK KwkgIC8qIENvcHkgdGhlIHZhbHVlIGludG8gYSBuZXcgdGVtcG9yYXJ5LCBs ZXN0IHRoZSBmb3JtYWwgdGVtcG9yYXJ5CisJICAgICBiZSByZXVzZWQgb3V0 IGZyb20gdW5kZXIgdXMuICAqLworCSAgcmVhbF90ZW1wID0gZ2V0X2luaXRp YWxpemVkX3RtcF92YXIgKHJlYWxfcGFydCwgcHJlX3AsIE5VTEwpOworCisJ ICBpbWFnX3BhcnQgPSBhbHBoYV9naW1wbGlmeV92YV9hcmdfMSAocHRyX3R5 cGUsIGJhc2UsCisJCQkJCSAgICAgICBvZmZzZXQsIHByZV9wKTsKKwkgIGlt YWdfcGFydCA9IGJ1aWxkX3ZhX2FyZ19pbmRpcmVjdF9yZWYgKGltYWdfcGFy dCk7CisKKwkgIHIgPSBidWlsZDIgKENPTVBMRVhfRVhQUiwgdHlwZSwgcmVh bF90ZW1wLCBpbWFnX3BhcnQpOworCisJICAvKiBTdHVmZiB0aGUgb2Zmc2V0 IHRlbXBvcmFyeSBiYWNrIGludG8gaXRzIGZpZWxkLiAgKi8KKwkgIGdpbXBs aWZ5X2Fzc2lnbiAodW5zaGFyZV9leHByIChvZmZzZXRfZmllbGQpLAorCQkJ ICAgZm9sZF9jb252ZXJ0IChUUkVFX1RZUEUgKG9mZnNldF9maWVsZCksIG9m ZnNldCksCisJCQkgICBwcmVfcCk7CisJICByZXR1cm4gcjsKKwl9CisgICAg ICBlbHNlCisJdHlwZSA9IGJ1aWxkX3BvaW50ZXJfdHlwZV9mb3JfbW9kZSAo dHlwZSwgcHRyX21vZGUsIHRydWUpOworICAgIH0KIAogICAvKiBGaW5kIHRo ZSB2YWx1ZS4gIE5vdGUgdGhhdCB0aGlzIHdpbGwgYmUgYSBzdGFibGUgaW5k aXJlY3Rpb24sIG9yCiAgICAgIGEgY29tcG9zaXRlIG9mIHN0YWJsZSBpbmRp cmVjdGlvbnMgaW4gdGhlIGNhc2Ugb2YgY29tcGxleC4gICovCg== --0000000000004f4fe9057f954fb0--