From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 85989 invoked by alias); 1 Apr 2015 17:44:40 -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 85969 invoked by uid 89); 1 Apr 2015 17:44:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.3 required=5.0 tests=AWL,BAYES_40,FREEMAIL_FROM,KAM_FROM_URIBL_PCCC,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-ob0-f171.google.com Received: from mail-ob0-f171.google.com (HELO mail-ob0-f171.google.com) (209.85.214.171) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 01 Apr 2015 17:44:37 +0000 Received: by obbec2 with SMTP id ec2so89971161obb.3 for ; Wed, 01 Apr 2015 10:44:35 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.182.250.193 with SMTP id ze1mr42166338obc.70.1427910275347; Wed, 01 Apr 2015 10:44:35 -0700 (PDT) Received: by 10.60.151.175 with HTTP; Wed, 1 Apr 2015 10:44:34 -0700 (PDT) Date: Wed, 01 Apr 2015 17:44:00 -0000 Message-ID: Subject: [PATCH, i386]: Fix atomic_storedi_fpu predicate From: Uros Bizjak To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary=089e01635140bc01c20512ad4457 X-SW-Source: 2015-04/txt/msg00031.txt.bz2 --089e01635140bc01c20512ad4457 Content-Type: text/plain; charset=UTF-8 Content-length: 1217 Hello! Attached patch fixes invalid atomic_storedi_fpu predicate (match_operand:DI 1 "register_operand" "x,m,?r"). This predicate is not compatible with memory constraint. While at this, I also changed expanders to accept memory operands that can be handled by *_fpu instructions. To avoid unwanted pattern matching, UNSPEC_MOVA has been replaced with UNSPEC_LDA and UNSPEC_STA. Also, the move from uninitalized operand in atomic_store_fpu was fixed in case of memory input operand with xmm temporary register. 2015-04-01 Uros Bizjak * config/i386/sync.md (UNSPEC_MOVA): Remove. (atomic_load): Change operand 0 predicate to nonimmediate_operand and fix up the destination when needed. Use UNSPEC_LDA. (atomic_loaddi_fpu): Use UNSPEC_LDA. (atomic_store): Change operand 1 predicate to nonimmendate_operand and move the source to register when needed. Use UNSPEC_STA. (atomic_store_1): Use UNSPEC_STA. (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand. Fix moves from memory operand. Use UNSPEC_STA. The patch was bootstraped and regression tested on x86_64-linux-gnu {,-m32} and committed to mainline SVN. Uros. --089e01635140bc01c20512ad4457 Content-Type: text/plain; charset=US-ASCII; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i7z0ucho0 Content-length: 4226 SW5kZXg6IGNvbmZpZy9pMzg2L3N5bmMubWQKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gY29uZmlnL2kzODYvc3luYy5tZAkocmV2aXNpb24gMjIxODA3 KQorKysgY29uZmlnL2kzODYvc3luYy5tZAkod29ya2luZyBjb3B5KQpAQCAt MjEsNyArMjEsOCBAQAogICBVTlNQRUNfTEZFTkNFCiAgIFVOU1BFQ19TRkVO Q0UKICAgVU5TUEVDX01GRU5DRQotICBVTlNQRUNfTU9WQQk7IEZvciBfX2F0 b21pYyBzdXBwb3J0CisKKyAgOzsgX19hdG9taWMgc3VwcG9ydAogICBVTlNQ RUNfTERBCiAgIFVOU1BFQ19TVEEKIF0pCkBAIC0xNDAsMTAgKzE0MSwxMCBA QAogICAgXSkKIAogKGRlZmluZV9leHBhbmQgImF0b21pY19sb2FkPG1vZGU+ IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBVE9NSUMgMCAicmVnaXN0ZXJf b3BlcmFuZCIpCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFUT01JQyAwICJu b25pbW1lZGlhdGVfb3BlcmFuZCIpCiAJKHVuc3BlYzpBVE9NSUMgWyhtYXRj aF9vcGVyYW5kOkFUT01JQyAxICJtZW1vcnlfb3BlcmFuZCIpCiAJCQkobWF0 Y2hfb3BlcmFuZDpTSSAyICJjb25zdF9pbnRfb3BlcmFuZCIpXQotCQkgICAg ICAgVU5TUEVDX01PVkEpKV0KKwkJICAgICAgIFVOU1BFQ19MREEpKV0KICAg IiIKIHsKICAgLyogRm9yIERJbW9kZSBvbiAzMi1iaXQsIHdlIGNhbiB1c2Ug dGhlIEZQVSB0byBwZXJmb3JtIHRoZSBsb2FkLiAgKi8KQEAgLTE1MiwxNCAr MTUzLDI1IEBACiAJICAgICAgIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0s CiAJICAgICAgICBhc3NpZ25fMzg2X3N0YWNrX2xvY2FsIChESW1vZGUsIFNM T1RfVEVNUCkpKTsKICAgZWxzZQotICAgIGVtaXRfbW92ZV9pbnNuIChvcGVy YW5kc1swXSwgb3BlcmFuZHNbMV0pOworICAgIHsKKyAgICAgIHJ0eCBkc3Qg PSBvcGVyYW5kc1swXTsKKworICAgICAgaWYgKE1FTV9QIChkc3QpKQorCWRz dCA9IGdlbl9yZWdfcnR4ICg8TU9ERT5tb2RlKTsKKworICAgICAgZW1pdF9t b3ZlX2luc24gKGRzdCwgb3BlcmFuZHNbMV0pOworCisgICAgICAvKiBGaXgg dXAgdGhlIGRlc3RpbmF0aW9uIGlmIG5lZWRlZC4gICovCisgICAgICBpZiAo ZHN0ICE9IG9wZXJhbmRzWzBdKQorCWVtaXRfbW92ZV9pbnNuIChvcGVyYW5k c1swXSwgZHN0KTsKKyAgICB9CiAgIERPTkU7CiB9KQogCiAoZGVmaW5lX2lu c25fYW5kX3NwbGl0ICJhdG9taWNfbG9hZGRpX2ZwdSIKICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6REkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9eCxt LD9yIikKIAkodW5zcGVjOkRJIFsobWF0Y2hfb3BlcmFuZDpESSAxICJtZW1v cnlfb3BlcmFuZCIgIm0sbSxtIildCi0JCSAgIFVOU1BFQ19NT1ZBKSkKKwkJ ICAgVU5TUEVDX0xEQSkpCiAgICAoY2xvYmJlciAobWF0Y2hfb3BlcmFuZDpE SSAyICJtZW1vcnlfb3BlcmFuZCIgIj1YLFgsbSIpKQogICAgKGNsb2JiZXIg KG1hdGNoX3NjcmF0Y2g6REYgMyAiPVgseGYseGYiKSldCiAgICIhVEFSR0VU XzY0QklUICYmIChUQVJHRVRfODAzODcgfHwgVEFSR0VUX1NTRSkiCkBAIC0x OTcsOSArMjA5LDkgQEAKIAogKGRlZmluZV9leHBhbmQgImF0b21pY19zdG9y ZTxtb2RlPiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QVRPTUlDIDAgIm1l bW9yeV9vcGVyYW5kIikKLQkodW5zcGVjOkFUT01JQyBbKG1hdGNoX29wZXJh bmQ6QVRPTUlDIDEgInJlZ2lzdGVyX29wZXJhbmQiKQorCSh1bnNwZWM6QVRP TUlDIFsobWF0Y2hfb3BlcmFuZDpBVE9NSUMgMSAibm9uaW1tZWRpYXRlX29w ZXJhbmQiKQogCQkJKG1hdGNoX29wZXJhbmQ6U0kgMiAiY29uc3RfaW50X29w ZXJhbmQiKV0KLQkJICAgICAgIFVOU1BFQ19NT1ZBKSldCisJCSAgICAgICBV TlNQRUNfU1RBKSldCiAgICIiCiB7CiAgIGVudW0gbWVtbW9kZWwgbW9kZWwg PSAoZW51bSBtZW1tb2RlbCkgKElOVFZBTCAob3BlcmFuZHNbMl0pICYgTUVN TU9ERUxfTUFTSyk7CkBAIC0yMTUsNiArMjI3LDggQEAKICAgICB9CiAgIGVs c2UKICAgICB7CisgICAgICBvcGVyYW5kc1sxXSA9IGZvcmNlX3JlZyAoPE1P REU+bW9kZSwgb3BlcmFuZHNbMV0pOworCiAgICAgICAvKiBGb3Igc2VxLWNz dCBzdG9yZXMsIHdoZW4gd2UgbGFjayBNRkVOQ0UsIHVzZSBYQ0hHLiAgKi8K ICAgICAgIGlmIChtb2RlbCA9PSBNRU1NT0RFTF9TRVFfQ1NUICYmICEoVEFS R0VUXzY0QklUIHx8IFRBUkdFVF9TU0UyKSkKIAl7CkBAIC0yMzgsMTQgKzI1 MiwxNCBAQAogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTV0kgMCAibWVtb3J5 X29wZXJhbmQiICI9bSIpCiAJKHVuc3BlYzpTV0kgWyhtYXRjaF9vcGVyYW5k OlNXSSAxICI8bm9ubWVtb3J5X29wZXJhbmQ+IiAiPHI+PGk+IikKIAkJICAg ICAobWF0Y2hfb3BlcmFuZDpTSSAyICJjb25zdF9pbnRfb3BlcmFuZCIpXQot CQkgICAgVU5TUEVDX01PVkEpKV0KKwkJICAgIFVOU1BFQ19TVEEpKV0KICAg IiIKICAgIiVLMm1vdns8aW1vZGVzdWZmaXg+fVx0eyUxLCAlMHwlMCwgJTF9 IikKIAogKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiYXRvbWljX3N0b3JlZGlf ZnB1IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJtZW1vcnlfb3Bl cmFuZCIgIj1tLG0sbSIpCi0JKHVuc3BlYzpESSBbKG1hdGNoX29wZXJhbmQ6 REkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIngsbSw/ciIpXQotCQkgICBVTlNQ RUNfTU9WQSkpCisJKHVuc3BlYzpESSBbKG1hdGNoX29wZXJhbmQ6REkgMSAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4LG0sP3IiKV0KKwkJICAgVU5TUEVD X1NUQSkpCiAgICAoY2xvYmJlciAobWF0Y2hfb3BlcmFuZDpESSAyICJtZW1v cnlfb3BlcmFuZCIgIj1YLFgsbSIpKQogICAgKGNsb2JiZXIgKG1hdGNoX3Nj cmF0Y2g6REYgMyAiPVgseGYseGYiKSldCiAgICIhVEFSR0VUXzY0QklUICYm IChUQVJHRVRfODAzODcgfHwgVEFSR0VUX1NTRSkiCkBAIC0yNzMsNyArMjg3 LDcgQEAKICAgICAgIGVsc2UKIAl7CiAJICBhZGp1c3RfcmVnX21vZGUgKHRt cCwgREltb2RlKTsKLQkgIGVtaXRfbW92ZV9pbnNuICh0bXAsIG1lbSk7CisJ ICBlbWl0X21vdmVfaW5zbiAodG1wLCBzcmMpOwogCSAgc3JjID0gdG1wOwog CX0KICAgICB9Cg== --089e01635140bc01c20512ad4457--