From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20837 invoked by alias); 29 Apr 2016 04:09:03 -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 20811 invoked by uid 89); 29 Apr 2016 04:09:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=necessarily X-HELO: mail-qg0-f52.google.com Received: from mail-qg0-f52.google.com (HELO mail-qg0-f52.google.com) (209.85.192.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 29 Apr 2016 04:09:00 +0000 Received: by mail-qg0-f52.google.com with SMTP id f74so38328566qge.2 for ; Thu, 28 Apr 2016 21:09:00 -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:in-reply-to:references:date :message-id:subject:from:to:cc; bh=4K+u/oo0mHJB6weIpvhawvtO6QHsAa+3ayF0Eot1SPY=; b=Wgxz0JpNoQT8PvSWI1JPAYmYmgnbQp8/3sphaIvlztoCaOgJErZcE4sobeRsyM0Coh pp1zVOlLa4/IuS46s5mw3U7sy1lQdtrg4Tqnny8lbwwQ+D+bK/zjYAYBXwT6xSYchTum EILlanFA2mYTi4jMKjLt0fo4bnk3DJGmzuZDnXlazCODC5Id3mpeKeW6fOGip2vL6frn i+WKZMj9PvZ8SkW5gt7LOfX016qgSb+ltlsfYNCWOkTKoFU5pGI+1ifjiJdwvVFbnJfr uUP4nEji/EBYRlZswe21792Fxuzj9d2UAL+VqoGyhyIjwyGWM2e7Y45Detasg+kIbTVU ZzBA== X-Gm-Message-State: AOPr4FXcz4VxXWVp/ahK1MbR4S+TzvnhSbg+Oa9mgP1elbL3SNG0xGbNOdv7XqG7pek1ZCL+SuhL8LuIEMI03Q== MIME-Version: 1.0 X-Received: by 10.140.32.161 with SMTP id h30mr17061133qgh.51.1461902938864; Thu, 28 Apr 2016 21:08:58 -0700 (PDT) Received: by 10.55.72.130 with HTTP; Thu, 28 Apr 2016 21:08:58 -0700 (PDT) In-Reply-To: References: <4E89A029A0F8D443B436A5167BA3C53F03CFFF4E@CDSMSX101.ccr.corp.intel.com> <739bb353-4440-f6da-400b-c3f9464ff2e9@redhat.com> Date: Fri, 29 Apr 2016 04:09:00 -0000 Message-ID: Subject: Re: [PATCH] x86 interrupt attribute patch [1/2] From: Yulia Koval To: "H.J. Lu" Cc: Jeff Law , "Koval, Julia" , "gcc-patches@gcc.gnu.org" , "Lu, Hongjiu" , "ubizjak@gmail.com" , "Zamyatin, Igor" Content-Type: multipart/mixed; boundary=001a113a797c5e3bf9053197cd11 X-SW-Source: 2016-04/txt/msg01924.txt.bz2 --001a113a797c5e3bf9053197cd11 Content-Type: text/plain; charset=UTF-8 Content-length: 3470 Thanks, Here is the patch. Is it ok? Update TARGET_FUNCTION_INCOMING_ARG documentation On x86, interrupt handlers are only called by processors which push interrupt data onto stack at the address where the normal return address is. Since interrupt handlers must access interrupt data via pointers so that they can update interrupt data, the pointer argument is passed as "argument pointer - word". TARGET_FUNCTION_INCOMING_ARG defines how callee sees its argument. Normally it returns REG, NULL, or CONST_INT. This patch adds arbitrary address computation based on hard register, which can be forced into a register, to the list. When copying an incoming argument onto stack, assign_parm_setup_stack has: if (argument in memory) copy argument in memory to stack else move argument to stack Since an arbitrary address computation may be passed as an argument, we change it to: if (argument in memory) copy argument in memory to stack else { if (argument isn't in register) force argument into a register move argument to stack } * function.c (assign_parm_setup_stack): Force source into a register if needed. * target.def (function_incoming_arg): Update documentation to allow arbitrary address computation based on hard register. * doc/tm.texi: Regenerated. On Thu, Apr 28, 2016 at 10:32 PM, H.J. Lu wrote: > On Thu, Apr 28, 2016 at 11:22 AM, Yulia Koval wrote: >> Thank you, >> Here is the repost. >> >> Update TARGET_FUNCTION_INCOMING_ARG documentation >> >> On x86, interrupt handlers are only called by processors which push >> interrupt data onto stack at the address where the normal return address >> is. Since interrupt handlers must access interrupt data via pointers so >> that they can update interrupt data, the pointer argument is passed as >> "argument pointer - word". >> >> TARGET_FUNCTION_INCOMING_ARG defines how callee sees its argument. >> Normally it returns REG, NULL, or CONST_INT. This patch adds arbitrary >> address computation based on hard register, which can be forced into a >> register, to the list. >> >> When copying an incoming argument onto stack, assign_parm_setup_stack >> has: >> >> if (argument in memory) >> copy argument in memory to stack >> else >> move argument to stack >> >> Since an arbitrary address computation may be passed as an argument, we >> change it to: >> >> if (argument in memory) >> copy argument in memory to stack >> else >> { >> if (argument isn't in register) >> force argument into a register >> move argument to stack >> } >> >> * function.c (assign_parm_setup_stack): Force source into a >> register if needed. >> * target.def (function_incoming_arg): Update documentation to >> allow arbitrary address computation based on hard register. >> * doc/tm.texi: Regenerated. >> >> >> Br, >> Yulia >> > > You also need to update > > DEFHOOK > (function_incoming_arg, > "Define this hook if the target machine has ``register windows'', so\n\ > that the register in which a function sees an arguments is not\n\ > necessarily the same as the one in which the caller passed the\n\ > argument.\n\ > \n\ > ..... > > in target.def. > > -- > H.J. --001a113a797c5e3bf9053197cd11 Content-Type: application/octet-stream; name=patch Content-Disposition: attachment; filename=patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_inl782ao0 Content-length: 6800 Y29tbWl0IDNhM2Y4ZGMwODM1YmJhODc5N2ZlZTk5ZWQ2MDRiYzdmZDcxMWNk ZWMKQXV0aG9yOiBILkouIEx1IDxoamwudG9vbHNAZ21haWwuY29tPgpEYXRl OiAgIEZyaSBGZWIgNSAwNDo0MzoxNSAyMDE2IC0wODAwCgogICAgVXBkYXRl IFRBUkdFVF9GVU5DVElPTl9JTkNPTUlOR19BUkcgZG9jdW1lbnRhdGlvbgog ICAgCiAgICBPbiB4ODYsIGludGVycnVwdCBoYW5kbGVycyBhcmUgb25seSBj YWxsZWQgYnkgcHJvY2Vzc29ycyB3aGljaCBwdXNoCiAgICBpbnRlcnJ1cHQg ZGF0YSBvbnRvIHN0YWNrIGF0IHRoZSBhZGRyZXNzIHdoZXJlIHRoZSBub3Jt YWwgcmV0dXJuIGFkZHJlc3MKICAgIGlzLiAgU2luY2UgaW50ZXJydXB0IGhh bmRsZXJzIG11c3QgYWNjZXNzIGludGVycnVwdCBkYXRhIHZpYSBwb2ludGVy cyBzbwogICAgdGhhdCB0aGV5IGNhbiB1cGRhdGUgaW50ZXJydXB0IGRhdGEs IHRoZSBwb2ludGVyIGFyZ3VtZW50IGlzIHBhc3NlZCBhcwogICAgImFyZ3Vt ZW50IHBvaW50ZXIgLSB3b3JkIi4KICAgIAogICAgVEFSR0VUX0ZVTkNUSU9O X0lOQ09NSU5HX0FSRyBkZWZpbmVzIGhvdyBjYWxsZWUgc2VlcyBpdHMgYXJn dW1lbnQuCiAgICBOb3JtYWxseSBpdCByZXR1cm5zIFJFRywgTlVMTCwgb3Ig Q09OU1RfSU5ULiAgVGhpcyBwYXRjaCBhZGRzIGFyYml0cmFyeQogICAgYWRk cmVzcyBjb21wdXRhdGlvbiBiYXNlZCBvbiBoYXJkIHJlZ2lzdGVyLCB3aGlj aCBjYW4gYmUgZm9yY2VkIGludG8gYQogICAgcmVnaXN0ZXIsIHRvIHRoZSBs aXN0LgogICAgCiAgICBXaGVuIGNvcHlpbmcgYW4gaW5jb21pbmcgYXJndW1l bnQgb250byBzdGFjaywgYXNzaWduX3Bhcm1fc2V0dXBfc3RhY2sKICAgIGhh czoKICAgIAogICAgaWYgKGFyZ3VtZW50IGluIG1lbW9yeSkKICAgICAgY29w eSBhcmd1bWVudCBpbiBtZW1vcnkgdG8gc3RhY2sKICAgIGVsc2UKICAgICAg bW92ZSBhcmd1bWVudCB0byBzdGFjawogICAgCiAgICBTaW5jZSBhbiBhcmJp dHJhcnkgYWRkcmVzcyBjb21wdXRhdGlvbiBtYXkgYmUgcGFzc2VkIGFzIGFu IGFyZ3VtZW50LCB3ZQogICAgY2hhbmdlIGl0IHRvOgogICAgCiAgICBpZiAo YXJndW1lbnQgaW4gbWVtb3J5KQogICAgICBjb3B5IGFyZ3VtZW50IGluIG1l bW9yeSB0byBzdGFjawogICAgZWxzZQogICAgICB7CiAgICAgICAgaWYgKGFy Z3VtZW50IGlzbid0IGluIHJlZ2lzdGVyKQogICAgICAgICAgZm9yY2UgYXJn dW1lbnQgaW50byBhIHJlZ2lzdGVyCiAgICAgICAgbW92ZSBhcmd1bWVudCB0 byBzdGFjawogICAgICB9CiAgICAKICAgIAkqIGZ1bmN0aW9uLmMgKGFzc2ln bl9wYXJtX3NldHVwX3N0YWNrKTogRm9yY2Ugc291cmNlIGludG8gYQogICAg CXJlZ2lzdGVyIGlmIG5lZWRlZC4KICAgIAkqIHRhcmdldC5kZWYgKGZ1bmN0 aW9uX2luY29taW5nX2FyZyk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIHRvCiAg ICAJYWxsb3cgYXJiaXRyYXJ5IGFkZHJlc3MgY29tcHV0YXRpb24gYmFzZWQg b24gaGFyZCByZWdpc3Rlci4KICAgIAkqIGRvYy90bS50ZXhpOiBSZWdlbmVy YXRlZC4KCmRpZmYgLS1naXQgYS9nY2MvZG9jL3RtLnRleGkgYi9nY2MvZG9j L3RtLnRleGkKaW5kZXggNzQ1OTEwZi4uNjFhYmJmMyAxMDA2NDQKLS0tIGEv Z2NjL2RvYy90bS50ZXhpCisrKyBiL2djYy9kb2MvdG0udGV4aQpAQCAtMzkz OCwxNyArMzkzOCwyMSBAQCBkb2N1bWVudGF0aW9uLgogQGVuZCBkZWZ0eXBl Zm4KIAogQGRlZnR5cGVmbiB7VGFyZ2V0IEhvb2t9IHJ0eCBUQVJHRVRfRlVO Q1RJT05fSU5DT01JTkdfQVJHIChjdW11bGF0aXZlX2FyZ3NfdCBAdmFye2Nh fSwgbWFjaGluZV9tb2RlIEB2YXJ7bW9kZX0sIGNvbnN0X3RyZWUgQHZhcnt0 eXBlfSwgYm9vbCBAdmFye25hbWVkfSkKLURlZmluZSB0aGlzIGhvb2sgaWYg dGhlIHRhcmdldCBtYWNoaW5lIGhhcyBgYHJlZ2lzdGVyIHdpbmRvd3MnJywg c28KLXRoYXQgdGhlIHJlZ2lzdGVyIGluIHdoaWNoIGEgZnVuY3Rpb24gc2Vl cyBhbiBhcmd1bWVudHMgaXMgbm90Ci1uZWNlc3NhcmlseSB0aGUgc2FtZSBh cyB0aGUgb25lIGluIHdoaWNoIHRoZSBjYWxsZXIgcGFzc2VkIHRoZQotYXJn dW1lbnQuCitEZWZpbmUgdGhpcyBob29rIGlmIHRoZSBjYWxsZXIgYW5kIGNh bGxlZSBvbiB0aGUgdGFyZ2V0IGhhdmUgZGlmZmVyZW50Cit2aWV3cyBvZiB3 aGVyZSBhcmd1bWVudHMgYXJlIHBhc3NlZC4gIEFsc28gZGVmaW5lIHRoaXMg aG9vayBpZiB0aGVyZSBhcmUKK2Z1bmN0aW9ucyB0aGF0IGFyZSBuZXZlciBk aXJlY3RseSBjYWxsZWQsIGJ1dCBhcmUgaW52b2tlZCBieSB0aGUgaGFyZHdh cmUKK2FuZCB3aGljaCBoYXZlIG5vbnN0YW5kYXJkIGNhbGxpbmcgY29udmVu dGlvbnMuCiAKLUZvciBzdWNoIG1hY2hpbmVzLCBAY29kZXtUQVJHRVRfRlVO Q1RJT05fQVJHfSBjb21wdXRlcyB0aGUgcmVnaXN0ZXIgaW4KK0luIHRoaXMg Y2FzZSBAY29kZXtUQVJHRVRfRlVOQ1RJT05fQVJHfSBjb21wdXRlcyB0aGUg cmVnaXN0ZXIgaW4KIHdoaWNoIHRoZSBjYWxsZXIgcGFzc2VzIHRoZSB2YWx1 ZSwgYW5kCiBAY29kZXtUQVJHRVRfRlVOQ1RJT05fSU5DT01JTkdfQVJHfSBz aG91bGQgYmUgZGVmaW5lZCBpbiBhIHNpbWlsYXIKIGZhc2hpb24gdG8gdGVs bCB0aGUgZnVuY3Rpb24gYmVpbmcgY2FsbGVkIHdoZXJlIHRoZSBhcmd1bWVu dHMgd2lsbAogYXJyaXZlLgogCitAY29kZXtUQVJHRVRfRlVOQ1RJT05fSU5D T01JTkdfQVJHfSBjYW4gYWxzbyByZXR1cm4gYXJiaXRyYXJ5IGFkZHJlc3MK K2NvbXB1dGF0aW9uIHVzaW5nIGhhcmQgcmVnaXN0ZXIsIHdoaWNoIGNhbiBi ZSBmb3JjZWQgaW50byBhIHJlZ2lzdGVyLAorc28gdGhhdCBpdCBjYW4gYmUg dXNlZCB0byBwYXNzIHNwZWNpYWwgYXJndW1lbnRzLgorCiBJZiBAY29kZXtU QVJHRVRfRlVOQ1RJT05fSU5DT01JTkdfQVJHfSBpcyBub3QgZGVmaW5lZCwK IEBjb2Rle1RBUkdFVF9GVU5DVElPTl9BUkd9IHNlcnZlcyBib3RoIHB1cnBv c2VzLgogQGVuZCBkZWZ0eXBlZm4KZGlmZiAtLWdpdCBhL2djYy9mdW5jdGlv bi5jIGIvZ2NjL2Z1bmN0aW9uLmMKaW5kZXggMWFjOGUyNi4uYzQyZTg2NSAx MDA2NDQKLS0tIGEvZ2NjL2Z1bmN0aW9uLmMKKysrIGIvZ2NjL2Z1bmN0aW9u LmMKQEAgLTM0NjYsNyArMzQ2NiwxMSBAQCBhc3NpZ25fcGFybV9zZXR1cF9z dGFjayAoc3RydWN0IGFzc2lnbl9wYXJtX2RhdGFfYWxsICphbGwsIHRyZWUg cGFybSwKIAkJCSAgIEJMT0NLX09QX05PUk1BTCk7CiAJfQogICAgICAgZWxz ZQotCWVtaXRfbW92ZV9pbnNuIChkZXN0LCBzcmMpOworCXsKKwkgIGlmICgh UkVHX1AgKHNyYykpCisJICAgIHNyYyA9IGZvcmNlX3JlZyAoR0VUX01PREUg KHNyYyksIHNyYyk7CisJICBlbWl0X21vdmVfaW5zbiAoZGVzdCwgc3JjKTsK Kwl9CiAgICAgfQogCiAgIGlmICh0b19jb252ZXJzaW9uKQpkaWZmIC0tZ2l0 IGEvZ2NjL3RhcmdldC5kZWYgYi9nY2MvdGFyZ2V0LmRlZgppbmRleCAyMGYy YjMyLi5iNGNjYjMwIDEwMDY0NAotLS0gYS9nY2MvdGFyZ2V0LmRlZgorKysg Yi9nY2MvdGFyZ2V0LmRlZgpAQCAtNDQ2OCwyMSArNDQ2OCwyMyBAQCBhIHJl Z2lzdGVyLiIsCiAgICAgICAgYm9vbCBuYW1lZCksCiAgZGVmYXVsdF9mdW5j dGlvbl9hcmcpCiAKLS8qIExpa2V3aXNlLCBidXQgZm9yIG1hY2hpbmVzIHdp dGggcmVnaXN0ZXIgd2luZG93cy4gIFJldHVybiB0aGUKLSAgIGxvY2F0aW9u IHdoZXJlIHRoZSBhcmd1bWVudCB3aWxsIGFwcGVhciB0byB0aGUgY2FsbGVl LiAgKi8KIERFRkhPT0sKIChmdW5jdGlvbl9pbmNvbWluZ19hcmcsCi0gIkRl ZmluZSB0aGlzIGhvb2sgaWYgdGhlIHRhcmdldCBtYWNoaW5lIGhhcyBgYHJl Z2lzdGVyIHdpbmRvd3MnJywgc29cblwKLXRoYXQgdGhlIHJlZ2lzdGVyIGlu IHdoaWNoIGEgZnVuY3Rpb24gc2VlcyBhbiBhcmd1bWVudHMgaXMgbm90XG5c Ci1uZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgb25lIGluIHdoaWNoIHRo ZSBjYWxsZXIgcGFzc2VkIHRoZVxuXAotYXJndW1lbnQuXG5cCisgIkRlZmlu ZSB0aGlzIGhvb2sgaWYgdGhlIGNhbGxlciBhbmQgY2FsbGVlIG9uIHRoZSB0 YXJnZXQgaGF2ZSBkaWZmZXJlbnRcblwKK3ZpZXdzIG9mIHdoZXJlIGFyZ3Vt ZW50cyBhcmUgcGFzc2VkLiAgQWxzbyBkZWZpbmUgdGhpcyBob29rIGlmIHRo ZXJlIGFyZVxuXAorZnVuY3Rpb25zIHRoYXQgYXJlIG5ldmVyIGRpcmVjdGx5 IGNhbGxlZCwgYnV0IGFyZSBpbnZva2VkIGJ5IHRoZSBoYXJkd2FyZVxuXAor YW5kIHdoaWNoIGhhdmUgbm9uc3RhbmRhcmQgY2FsbGluZyBjb252ZW50aW9u cy5cblwKIFxuXAotRm9yIHN1Y2ggbWFjaGluZXMsIEBjb2Rle1RBUkdFVF9G VU5DVElPTl9BUkd9IGNvbXB1dGVzIHRoZSByZWdpc3RlciBpblxuXAorSW4g dGhpcyBjYXNlIEBjb2Rle1RBUkdFVF9GVU5DVElPTl9BUkd9IGNvbXB1dGVz IHRoZSByZWdpc3RlciBpblxuXAogd2hpY2ggdGhlIGNhbGxlciBwYXNzZXMg dGhlIHZhbHVlLCBhbmRcblwKIEBjb2Rle1RBUkdFVF9GVU5DVElPTl9JTkNP TUlOR19BUkd9IHNob3VsZCBiZSBkZWZpbmVkIGluIGEgc2ltaWxhclxuXAog ZmFzaGlvbiB0byB0ZWxsIHRoZSBmdW5jdGlvbiBiZWluZyBjYWxsZWQgd2hl cmUgdGhlIGFyZ3VtZW50cyB3aWxsXG5cCiBhcnJpdmUuXG5cCiBcblwKK0Bj b2Rle1RBUkdFVF9GVU5DVElPTl9JTkNPTUlOR19BUkd9IGNhbiBhbHNvIHJl dHVybiBhcmJpdHJhcnkgYWRkcmVzc1xuXAorY29tcHV0YXRpb24gdXNpbmcg aGFyZCByZWdpc3Rlciwgd2hpY2ggY2FuIGJlIGZvcmNlZCBpbnRvIGEgcmVn aXN0ZXIsXG5cCitzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIHRvIHBhc3Mgc3Bl Y2lhbCBhcmd1bWVudHMuXG5cCitcblwKIElmIEBjb2Rle1RBUkdFVF9GVU5D VElPTl9JTkNPTUlOR19BUkd9IGlzIG5vdCBkZWZpbmVkLFxuXAogQGNvZGV7 VEFSR0VUX0ZVTkNUSU9OX0FSR30gc2VydmVzIGJvdGggcHVycG9zZXMuIiwK ICBydHgsIChjdW11bGF0aXZlX2FyZ3NfdCBjYSwgbWFjaGluZV9tb2RlIG1v ZGUsIGNvbnN0X3RyZWUgdHlwZSwK --001a113a797c5e3bf9053197cd11--