From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15951 invoked by alias); 22 Sep 2014 18:41:54 -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 15939 invoked by uid 89); 22 Sep 2014 18:41:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ie0-f182.google.com Received: from mail-ie0-f182.google.com (HELO mail-ie0-f182.google.com) (209.85.223.182) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 22 Sep 2014 18:41:52 +0000 Received: by mail-ie0-f182.google.com with SMTP id tp5so2711999ieb.13 for ; Mon, 22 Sep 2014 11:41:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=jyURjPIKOJ/6pm9TLy97uUv2tq7+1acz2xMQLfuWDXw=; b=GbHN4o/p301UcDIIjrXOurexyhdocrRrfT2nLlmhFbMjHBYoup/ZPct07TH81rEg33 TDLDyn5fCrL/IH9xzo0CCttIQoBFPqmqlEa/Q0sXbkQtJMo2bKwWhy7lUT0MasMIlA0T Xnb66JHrIpuokDMT3UTiUHpxfxnvgO7K5F/ZuXfPbH42zyRxTkb4aZTLtzDWHb2KPvAz l3RXo/hZn9fBEpFaUs+QwN19BTago/otUdEi8PFrTKW6g49/V2w4YuRI5hXJTnSIH+oV /p7retKkX5CUQjs4jbYTo1YmkP266oG6rqFEFl9NlcOKiFfhAmJLCiARYy3j8bwl/aTm jO9g== X-Gm-Message-State: ALoCoQls/ukkv0lJq9G5ZXygWStRMVmyXvONOrU6sh06+sXSdAy/ZSevgDoh3CC1ZVO/HBLn939A MIME-Version: 1.0 X-Received: by 10.50.66.36 with SMTP id c4mr16556369igt.48.1411411310562; Mon, 22 Sep 2014 11:41:50 -0700 (PDT) Received: by 10.64.96.6 with HTTP; Mon, 22 Sep 2014 11:41:50 -0700 (PDT) Date: Mon, 22 Sep 2014 18:41:00 -0000 Message-ID: Subject: [Patch AArch64] Fix extended register width From: Carrot Wei To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary=001a1134cc1ecca5a30503abcd83 X-IsSubscribed: yes X-SW-Source: 2014-09/txt/msg01870.txt.bz2 --001a1134cc1ecca5a30503abcd83 Content-Type: text/plain; charset=UTF-8 Content-length: 1941 Hi The extended register width in add/adds/sub/subs/cmp instructions is not always the same as target register, it depends on both target register width and extension type. But in current implementation the extended register width is always the same as target register. We have noticed it can generate following wrong assembler code when compiled an internal application, add x2, x20, x0, sxtw 3 The correct assembler should be add x2, x20, w0, sxtw 3 On the other hand I noticed current gcc can only generate following extension types: xtb, xth, xtw. In these cases the extended register width can only be 'w'. So this patch changes the the extended register size attribute to 'w'. Passed regression tests on qemu without failure. OK for trunk and 4.9 branch? thanks Guozhi Wei 2014-09-22 Guozhi Wei * config/aarch64/aarch64.md (*adds__): Change the extended register width to w. (*subs__): Likewise. (*adds__multp2): Likewise. (*subs__multp2): Likewise. (*add__): Likewise. (*add__shft_): Likewise. (*add__mult_): Likewise. (*add__multp2): Likewise. (*add_uxt_multp2): Likewise. (*sub__): Likewise. (*sub__shft_): Likewise. (*sub__multp2): Likewise. (*sub_uxt_multp2): Likewise. (*cmp_swp__reg): Likewise. (*cmp_swp__shft_): Likewise. 2014-09-22 Guozhi Wei * gcc.target/aarch64/subs3.c: Change the extended register width to w. * gcc.target/aarch64/adds3.c: Likewise. * gcc.target/aarch64/cmp.c: Likewise. --001a1134cc1ecca5a30503abcd83 Content-Type: application/octet-stream; name=patch1 Content-Disposition: attachment; filename=patch1 Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0e5skoy0 Content-length: 6039 SW5kZXg6IGFhcmNoNjQubWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g YWFyY2g2NC5tZAkocmV2aXNpb24gMjE1MzY0KQorKysgYWFyY2g2NC5tZAko d29ya2luZyBjb3B5KQpAQCAtMTMzNiw3ICsxMzM2LDcgQEAKICAgIChzZXQg KG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIp CiAJKHBsdXM6R1BJIChBTllfRVhURU5EOkdQSSAobWF0Y2hfZHVwIDEpKSAo bWF0Y2hfZHVwIDIpKSldCiAgICIiCi0gICJhZGRzXFx0JTxHUEk6dz4wLCAl PEdQSTp3PjIsICU8R1BJOnc+MSwgPHN1Pnh0PEFMTFg6c2l6ZT4iCisgICJh ZGRzXFx0JTxHUEk6dz4wLCAlPEdQSTp3PjIsICV3MSwgPHN1Pnh0PEFMTFg6 c2l6ZT4iCiAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHVzX2V4dCIpXQogKQog CkBAIC0xMzUwLDcgKzEzNTAsNyBAQAogICAgKHNldCAobWF0Y2hfb3BlcmFu ZDpHUEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKIAkobWludXM6R1BJ IChtYXRjaF9kdXAgMSkgKEFOWV9FWFRFTkQ6R1BJIChtYXRjaF9kdXAgMikp KSldCiAgICIiCi0gICJzdWJzXFx0JTxHUEk6dz4wLCAlPEdQSTp3PjEsICU8 R1BJOnc+MiwgPHN1Pnh0PEFMTFg6c2l6ZT4iCisgICJzdWJzXFx0JTxHUEk6 dz4wLCAlPEdQSTp3PjEsICV3MiwgPHN1Pnh0PEFMTFg6c2l6ZT4iCiAgIFso c2V0X2F0dHIgInR5cGUiICJhbHVzX2V4dCIpXQogKQogCkBAIC0xMzcwLDcg KzEzNzAsNyBAQAogCQkJCSAgIChjb25zdF9pbnQgMCkpCiAJCSAgKG1hdGNo X2R1cCA0KSkpXQogICAiYWFyY2g2NF9pc19leHRlbmRfZnJvbV9leHRyYWN0 ICg8TU9ERT5tb2RlLCBvcGVyYW5kc1syXSwgb3BlcmFuZHNbM10pIgotICAi YWRkc1xcdCU8dz4wLCAlPHc+NCwgJTx3PjEsIDxzdT54dCVlMyAlcDIiCisg ICJhZGRzXFx0JTx3PjAsICU8dz40LCAldzEsIDxzdT54dCVlMyAlcDIiCiAg IFsoc2V0X2F0dHIgInR5cGUiICJhbHVzX2V4dCIpXQogKQogCkBAIC0xMzkw LDcgKzEzOTAsNyBAQAogCQkJCSAgKG1hdGNoX2R1cCAzKQogCQkJCSAgKGNv bnN0X2ludCAwKSkpKV0KICAgImFhcmNoNjRfaXNfZXh0ZW5kX2Zyb21fZXh0 cmFjdCAoPE1PREU+bW9kZSwgb3BlcmFuZHNbMl0sIG9wZXJhbmRzWzNdKSIK LSAgInN1YnNcXHQlPHc+MCwgJTx3PjQsICU8dz4xLCA8c3U+eHQlZTMgJXAy IgorICAic3Vic1xcdCU8dz4wLCAlPHc+NCwgJXcxLCA8c3U+eHQlZTMgJXAy IgogICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1c19leHQiKV0KICkKIApAQCAt MTQ1NSw3ICsxNDU1LDcgQEAKIAkocGx1czpHUEkgKEFOWV9FWFRFTkQ6R1BJ IChtYXRjaF9vcGVyYW5kOkFMTFggMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIi KSkKIAkJICAobWF0Y2hfb3BlcmFuZDpHUEkgMiAicmVnaXN0ZXJfb3BlcmFu ZCIgInIiKSkpXQogICAiIgotICAiYWRkXFx0JTxHUEk6dz4wLCAlPEdQSTp3 PjIsICU8R1BJOnc+MSwgPHN1Pnh0PEFMTFg6c2l6ZT4iCisgICJhZGRcXHQl PEdQSTp3PjAsICU8R1BJOnc+MiwgJXcxLCA8c3U+eHQ8QUxMWDpzaXplPiIK ICAgWyhzZXRfYXR0ciAidHlwZSIgImFsdV9leHQiKV0KICkKIApAQCAtMTQ3 Nyw3ICsxNDc3LDcgQEAKIAkJCSAgICAgIChtYXRjaF9vcGVyYW5kIDIgImFh cmNoNjRfaW1tMyIgIlVpMyIpKQogCQkgIChtYXRjaF9vcGVyYW5kOkdQSSAz ICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSldCiAgICIiCi0gICJhZGRcXHQl PEdQSTp3PjAsICU8R1BJOnc+MywgJTxHUEk6dz4xLCA8c3U+eHQ8QUxMWDpz aXplPiAlMiIKKyAgImFkZFxcdCU8R1BJOnc+MCwgJTxHUEk6dz4zLCAldzEs IDxzdT54dDxBTExYOnNpemU+ICUyIgogICBbKHNldF9hdHRyICJ0eXBlIiAi YWx1X2V4dCIpXQogKQogCkBAIC0xNTAxLDcgKzE1MDEsNyBAQAogCQkJICAg IChtYXRjaF9vcGVyYW5kIDIgImFhcmNoNjRfcHdyX2ltbTMiICJVcDMiKSkK IAkJICAobWF0Y2hfb3BlcmFuZDpHUEkgMyAicmVnaXN0ZXJfb3BlcmFuZCIg InIiKSkpXQogICAiIgotICAiYWRkXFx0JTxHUEk6dz4wLCAlPEdQSTp3PjMs ICU8R1BJOnc+MSwgPHN1Pnh0PEFMTFg6c2l6ZT4gJXAyIgorICAiYWRkXFx0 JTxHUEk6dz4wLCAlPEdQSTp3PjMsICV3MSwgPHN1Pnh0PEFMTFg6c2l6ZT4g JXAyIgogICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1X2V4dCIpXQogKQogCkBA IC0xNTI2LDcgKzE1MjYsNyBAQAogCQkgICAoY29uc3RfaW50IDApKQogCQkg IChtYXRjaF9vcGVyYW5kOkdQSSA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIp KSldCiAgICJhYXJjaDY0X2lzX2V4dGVuZF9mcm9tX2V4dHJhY3QgKDxNT0RF Pm1vZGUsIG9wZXJhbmRzWzJdLCBvcGVyYW5kc1szXSkiCi0gICJhZGRcXHQl PHc+MCwgJTx3PjQsICU8dz4xLCA8c3U+eHQlZTMgJXAyIgorICAiYWRkXFx0 JTx3PjAsICU8dz40LCAldzEsIDxzdT54dCVlMyAlcDIiCiAgIFsoc2V0X2F0 dHIgInR5cGUiICJhbHVfZXh0IildCiApCiAKQEAgLTE2NjAsNyArMTY2MCw3 IEBACiAgICIqCiAgIG9wZXJhbmRzWzNdID0gR0VOX0lOVCAoYWFyY2g2NF91 eHRfc2l6ZSAoZXhhY3RfbG9nMiAoSU5UVkFMIChvcGVyYW5kc1syXSkpLAog CQkJCQkgICBJTlRWQUwgKG9wZXJhbmRzWzNdKSkpOwotICByZXR1cm4gXCJh ZGRcdCU8dz4wLCAlPHc+NCwgJTx3PjEsIHV4dCVlMyAlcDJcIjsiCisgIHJl dHVybiBcImFkZFx0JTx3PjAsICU8dz40LCAldzEsIHV4dCVlMyAlcDJcIjsi CiAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHVfZXh0IildCiApCiAKQEAgLTE4 MTEsNyArMTgxMSw3IEBACiAJCSAgIChBTllfRVhURU5EOkdQSQogCQkgICAg KG1hdGNoX29wZXJhbmQ6QUxMWCAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIp KSkpXQogICAiIgotICAic3ViXFx0JTxHUEk6dz4wLCAlPEdQSTp3PjEsICU8 R1BJOnc+MiwgPHN1Pnh0PEFMTFg6c2l6ZT4iCisgICJzdWJcXHQlPEdQSTp3 PjAsICU8R1BJOnc+MSwgJXcyLCA8c3U+eHQ8QUxMWDpzaXplPiIKICAgWyhz ZXRfYXR0ciAidHlwZSIgImFsdV9leHQiKV0KICkKIApAQCAtMTgzNCw3ICsx ODM0LDcgQEAKIAkJCQkobWF0Y2hfb3BlcmFuZDpBTExYIDIgInJlZ2lzdGVy X29wZXJhbmQiICJyIikpCiAJCQkgICAgICAgKG1hdGNoX29wZXJhbmQgMyAi YWFyY2g2NF9pbW0zIiAiVWkzIikpKSldCiAgICIiCi0gICJzdWJcXHQlPEdQ STp3PjAsICU8R1BJOnc+MSwgJTxHUEk6dz4yLCA8c3U+eHQ8QUxMWDpzaXpl PiAlMyIKKyAgInN1YlxcdCU8R1BJOnc+MCwgJTxHUEk6dz4xLCAldzIsIDxz dT54dDxBTExYOnNpemU+ICUzIgogICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1 X2V4dCIpXQogKQogCkBAIC0xODYwLDcgKzE4NjAsNyBAQAogCQkgICAgKG1h dGNoX29wZXJhbmQgMyAiY29uc3RfaW50X29wZXJhbmQiICJuIikKIAkJICAg IChjb25zdF9pbnQgMCkpKSldCiAgICJhYXJjaDY0X2lzX2V4dGVuZF9mcm9t X2V4dHJhY3QgKDxNT0RFPm1vZGUsIG9wZXJhbmRzWzJdLCBvcGVyYW5kc1sz XSkiCi0gICJzdWJcXHQlPHc+MCwgJTx3PjQsICU8dz4xLCA8c3U+eHQlZTMg JXAyIgorICAic3ViXFx0JTx3PjAsICU8dz40LCAldzEsIDxzdT54dCVlMyAl cDIiCiAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHVfZXh0IildCiApCiAKQEAg LTE5MTYsNyArMTkxNiw3IEBACiAgICIqCiAgIG9wZXJhbmRzWzNdID0gR0VO X0lOVCAoYWFyY2g2NF91eHRfc2l6ZSAoZXhhY3RfbG9nMiAoSU5UVkFMIChv cGVyYW5kc1syXSkpLAogCQkJCQkgICBJTlRWQUwgKG9wZXJhbmRzWzNdKSkp OwotICByZXR1cm4gXCJzdWJcdCU8dz4wLCAlPHc+NCwgJTx3PjEsIHV4dCVl MyAlcDJcIjsiCisgIHJldHVybiBcInN1Ylx0JTx3PjAsICU8dz40LCAldzEs IHV4dCVlMyAlcDJcIjsiCiAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHVfZXh0 IildCiApCiAKQEAgLTIzNDksNyArMjM0OSw3IEBACiAJCQkgKG1hdGNoX29w ZXJhbmQ6QUxMWCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQogCQkJKG1h dGNoX29wZXJhbmQ6R1BJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKV0K ICAgIiIKLSAgImNtcFxcdCU8R1BJOnc+MSwgJTxHUEk6dz4wLCA8c3U+eHQ8 QUxMWDpzaXplPiIKKyAgImNtcFxcdCU8R1BJOnc+MSwgJXcwLCA8c3U+eHQ8 QUxMWDpzaXplPiIKICAgWyhzZXRfYXR0ciAidHlwZSIgImFsdXNfZXh0Iild CiApCiAKQEAgLTIzNjEsNyArMjM2MSw3IEBACiAJCQkgKG1hdGNoX29wZXJh bmQgMSAiYWFyY2g2NF9pbW0zIiAiVWkzIikpCiAJKG1hdGNoX29wZXJhbmQ6 R1BJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKV0KICAgIiIKLSAgImNt cFxcdCU8R1BJOnc+MiwgJTxHUEk6dz4wLCA8c3U+eHQ8QUxMWDpzaXplPiAl MSIKKyAgImNtcFxcdCU8R1BJOnc+MiwgJXcwLCA8c3U+eHQ8QUxMWDpzaXpl PiAlMSIKICAgWyhzZXRfYXR0ciAidHlwZSIgImFsdXNfZXh0IildCiApCiAK --001a1134cc1ecca5a30503abcd83 Content-Type: application/octet-stream; name=patch2 Content-Disposition: attachment; filename=patch2 Content-Transfer-Encoding: base64 X-Attachment-Id: f_i0e5t7td1 Content-length: 1611 SW5kZXg6IHN1YnMzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3Vi czMuYwkocmV2aXNpb24gMjE1MzY0KQorKysgc3ViczMuYwkod29ya2luZyBj b3B5KQpAQCAtNTgsNCArNTgsNCBAQAogICByZXR1cm4gMDsKIH0KIAotLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzdWJzXHR4XFsw LTlcXSssIHhcWzAtOVxdKywgeFxbMC05XF0rLCBzeHR3IiAyIH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzdWJzXHR4 XFswLTlcXSssIHhcWzAtOVxdKywgd1xbMC05XF0rLCBzeHR3IiAyIH0gfSAq LwpJbmRleDogYWRkczMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBh ZGRzMy5jCShyZXZpc2lvbiAyMTUzNjQpCisrKyBhZGRzMy5jCSh3b3JraW5n IGNvcHkpCkBAIC01OCw0ICs1OCw0IEBACiAgIHJldHVybiAwOwogfQogCi0v KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImFkZHNcdHhc WzAtOVxdKywgeFxbMC05XF0rLCB4XFswLTlcXSssIHN4dHciIDIgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImFkZHNc dHhcWzAtOVxdKywgeFxbMC05XF0rLCB3XFswLTlcXSssIHN4dHciIDIgfSB9 ICovCkluZGV4OiBjbXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBj bXAuYwkocmV2aXNpb24gMjE1MzY0KQorKysgY21wLmMJKHdvcmtpbmcgY29w eSkKQEAgLTU4LDQgKzU4LDUgQEAKIH0KIAogLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzICJjbXBcdHdcWzAtOVxdKywgd1xbMC05XF0r IiAyIH0gfSAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzICJjbXBcdHhcWzAtOVxdKywgeFxbMC05XF0rIiA0IH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJjbXBcdHhcWzAt OVxdKywgeFxbMC05XF0rIiAyIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzICJjbXBcdHhcWzAtOVxdKywgd1xbMC05XF0r LCBzeHR3IiAyIH0gfSAqLwo= --001a1134cc1ecca5a30503abcd83--