From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LGDjW-0005bO-PH for qemu-devel@nongnu.org; Fri, 26 Dec 2008 09:32:10 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LGDjV-0005aN-1o for qemu-devel@nongnu.org; Fri, 26 Dec 2008 09:32:09 -0500 Received: from [199.232.76.173] (port=55902 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LGDjU-0005aK-RL for qemu-devel@nongnu.org; Fri, 26 Dec 2008 09:32:08 -0500 Received: from fg-out-1718.google.com ([72.14.220.153]:22644) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LGDjU-0007Mj-47 for qemu-devel@nongnu.org; Fri, 26 Dec 2008 09:32:08 -0500 Received: by fg-out-1718.google.com with SMTP id l26so1360709fgb.8 for ; Fri, 26 Dec 2008 06:32:06 -0800 (PST) Message-ID: <761ea48b0812260632u2d25f2c7i86c27911c4e9cb2b@mail.gmail.com> Date: Fri, 26 Dec 2008 15:32:06 +0100 From: "Laurent Desnogues" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_145189_6041519.1230301926309" Subject: [Qemu-devel] User mode emulation and TCG_OPF_CALL_CLOBBER Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_145189_6041519.1230301926309 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, while looking at generated code for a user mode emulated program I noticed some registers were saved/restored for qemu_{ld,st} operations. My understanding is that this is only needed for softmmu (and even in that case for the slow path as a comment in tcg.c says) since in that case, a call to a helper might be generated. This register save & restore behavior is enabled by the op flag TCG_OPF_CALL_CLOBBER. A quick test on ARM target and x86_64 host for a SPEC2000 test shows removing that flag speeds up execution by about 15%. Did I understand things correctly? If so what would be the best way to patch this: - get rid of TCG_OPF_CALL_CLOBBER and associated code - simply omit that flag in opc definition? The former would be slightly more intrusive for a probably low benefit. A patch is attached that implements the latter. Laurent ------=_Part_145189_6041519.1230301926309 Content-Type: text/x-patch; name=tcg-call-clobber-usermode.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fp6xv6jl0 Content-Disposition: attachment; filename=tcg-call-clobber-usermode.patch SW5kZXg6IHRjZy90Y2ctb3BjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGNnL3RjZy1vcGMuaAkocmV2aXNp b24gNjEzMSkKKysrIHRjZy90Y2ctb3BjLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3OCArMTU2 LDgzIEBACiBERUYyKGdvdG9fdGIsIDAsIDAsIDEsIFRDR19PUEZfQkJfRU5EIHwgVENHX09QRl9T SURFX0VGRkVDVFMpCiAvKiBOb3RlOiBldmVuIGlmIFRBUkdFVF9MT05HX0JJVFMgaXMgbm90IGRl ZmluZWQsIHRoZSBJTkRFWF9vcAogICAgY29uc3RhbnRzIG11c3QgYmUgZGVmaW5lZCAqLworI2lm ZGVmIENPTkZJR19TT0ZUTU1VCisjZGVmaW5lIExPQ0FMX1RDR19PUEZfQ0FMTF9DTE9CQkVSIFRD R19PUEZfQ0FMTF9DTE9CQkVSCisjZWxzZQorI2RlZmluZSBMT0NBTF9UQ0dfT1BGX0NBTExfQ0xP QkJFUiAwCisjZW5kaWYKICNpZiBUQ0dfVEFSR0VUX1JFR19CSVRTID09IDMyCiAjaWYgVEFSR0VU X0xPTkdfQklUUyA9PSAzMgotREVGMihxZW11X2xkOHUsIDEsIDEsIDEsIFRDR19PUEZfQ0FMTF9D TE9CQkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCitERUYyKHFlbXVfbGQ4dSwgMSwgMSwgMSwg TE9DQUxfVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKICNlbHNl Ci1ERUYyKHFlbXVfbGQ4dSwgMSwgMiwgMSwgVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BG X1NJREVfRUZGRUNUUykKK0RFRjIocWVtdV9sZDh1LCAxLCAyLCAxLCBMT0NBTF9UQ0dfT1BGX0NB TExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQogI2VuZGlmCiAjaWYgVEFSR0VUX0xP TkdfQklUUyA9PSAzMgotREVGMihxZW11X2xkOHMsIDEsIDEsIDEsIFRDR19PUEZfQ0FMTF9DTE9C QkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCitERUYyKHFlbXVfbGQ4cywgMSwgMSwgMSwgTE9D QUxfVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKICNlbHNlCi1E RUYyKHFlbXVfbGQ4cywgMSwgMiwgMSwgVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BGX1NJ REVfRUZGRUNUUykKK0RFRjIocWVtdV9sZDhzLCAxLCAyLCAxLCBMT0NBTF9UQ0dfT1BGX0NBTExf Q0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQogI2VuZGlmCiAjaWYgVEFSR0VUX0xPTkdf QklUUyA9PSAzMgotREVGMihxZW11X2xkMTZ1LCAxLCAxLCAxLCBUQ0dfT1BGX0NBTExfQ0xPQkJF UiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQorREVGMihxZW11X2xkMTZ1LCAxLCAxLCAxLCBMT0NB TF9UQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQogI2Vsc2UKLURF RjIocWVtdV9sZDE2dSwgMSwgMiwgMSwgVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BGX1NJ REVfRUZGRUNUUykKK0RFRjIocWVtdV9sZDE2dSwgMSwgMiwgMSwgTE9DQUxfVENHX09QRl9DQUxM X0NMT0JCRVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKICNlbmRpZgogI2lmIFRBUkdFVF9MT05H X0JJVFMgPT0gMzIKLURFRjIocWVtdV9sZDE2cywgMSwgMSwgMSwgVENHX09QRl9DQUxMX0NMT0JC RVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKK0RFRjIocWVtdV9sZDE2cywgMSwgMSwgMSwgTE9D QUxfVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKICNlbHNlCi1E RUYyKHFlbXVfbGQxNnMsIDEsIDIsIDEsIFRDR19PUEZfQ0FMTF9DTE9CQkVSIHwgVENHX09QRl9T SURFX0VGRkVDVFMpCitERUYyKHFlbXVfbGQxNnMsIDEsIDIsIDEsIExPQ0FMX1RDR19PUEZfQ0FM TF9DTE9CQkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCiAjZW5kaWYKICNpZiBUQVJHRVRfTE9O R19CSVRTID09IDMyCi1ERUYyKHFlbXVfbGQzMnUsIDEsIDEsIDEsIFRDR19PUEZfQ0FMTF9DTE9C QkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCitERUYyKHFlbXVfbGQzMnUsIDEsIDEsIDEsIExP Q0FMX1RDR19PUEZfQ0FMTF9DTE9CQkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCiAjZWxzZQot REVGMihxZW11X2xkMzJ1LCAxLCAyLCAxLCBUQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZf U0lERV9FRkZFQ1RTKQorREVGMihxZW11X2xkMzJ1LCAxLCAyLCAxLCBMT0NBTF9UQ0dfT1BGX0NB TExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQogI2VuZGlmCiAjaWYgVEFSR0VUX0xP TkdfQklUUyA9PSAzMgotREVGMihxZW11X2xkMzJzLCAxLCAxLCAxLCBUQ0dfT1BGX0NBTExfQ0xP QkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQorREVGMihxZW11X2xkMzJzLCAxLCAxLCAxLCBM T0NBTF9UQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQogI2Vsc2UK LURFRjIocWVtdV9sZDMycywgMSwgMiwgMSwgVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BG X1NJREVfRUZGRUNUUykKK0RFRjIocWVtdV9sZDMycywgMSwgMiwgMSwgTE9DQUxfVENHX09QRl9D QUxMX0NMT0JCRVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKICNlbmRpZgogI2lmIFRBUkdFVF9M T05HX0JJVFMgPT0gMzIKLURFRjIocWVtdV9sZDY0LCAyLCAxLCAxLCBUQ0dfT1BGX0NBTExfQ0xP QkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQorREVGMihxZW11X2xkNjQsIDIsIDEsIDEsIExP Q0FMX1RDR19PUEZfQ0FMTF9DTE9CQkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCiAjZWxzZQot REVGMihxZW11X2xkNjQsIDIsIDIsIDEsIFRDR19PUEZfQ0FMTF9DTE9CQkVSIHwgVENHX09QRl9T SURFX0VGRkVDVFMpCitERUYyKHFlbXVfbGQ2NCwgMiwgMiwgMSwgTE9DQUxfVENHX09QRl9DQUxM X0NMT0JCRVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKICNlbmRpZgogCiAjaWYgVEFSR0VUX0xP TkdfQklUUyA9PSAzMgotREVGMihxZW11X3N0OCwgMCwgMiwgMSwgVENHX09QRl9DQUxMX0NMT0JC RVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKK0RFRjIocWVtdV9zdDgsIDAsIDIsIDEsIExPQ0FM X1RDR19PUEZfQ0FMTF9DTE9CQkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCiAjZWxzZQotREVG MihxZW11X3N0OCwgMCwgMywgMSwgVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BGX1NJREVf RUZGRUNUUykKK0RFRjIocWVtdV9zdDgsIDAsIDMsIDEsIExPQ0FMX1RDR19PUEZfQ0FMTF9DTE9C QkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCiAjZW5kaWYKICNpZiBUQVJHRVRfTE9OR19CSVRT ID09IDMyCi1ERUYyKHFlbXVfc3QxNiwgMCwgMiwgMSwgVENHX09QRl9DQUxMX0NMT0JCRVIgfCBU Q0dfT1BGX1NJREVfRUZGRUNUUykKK0RFRjIocWVtdV9zdDE2LCAwLCAyLCAxLCBMT0NBTF9UQ0df T1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQogI2Vsc2UKLURFRjIocWVt dV9zdDE2LCAwLCAzLCAxLCBUQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZF Q1RTKQorREVGMihxZW11X3N0MTYsIDAsIDMsIDEsIExPQ0FMX1RDR19PUEZfQ0FMTF9DTE9CQkVS IHwgVENHX09QRl9TSURFX0VGRkVDVFMpCiAjZW5kaWYKICNpZiBUQVJHRVRfTE9OR19CSVRTID09 IDMyCi1ERUYyKHFlbXVfc3QzMiwgMCwgMiwgMSwgVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0df T1BGX1NJREVfRUZGRUNUUykKK0RFRjIocWVtdV9zdDMyLCAwLCAyLCAxLCBMT0NBTF9UQ0dfT1BG X0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQogI2Vsc2UKLURFRjIocWVtdV9z dDMyLCAwLCAzLCAxLCBUQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RT KQorREVGMihxZW11X3N0MzIsIDAsIDMsIDEsIExPQ0FMX1RDR19PUEZfQ0FMTF9DTE9CQkVSIHwg VENHX09QRl9TSURFX0VGRkVDVFMpCiAjZW5kaWYKICNpZiBUQVJHRVRfTE9OR19CSVRTID09IDMy Ci1ERUYyKHFlbXVfc3Q2NCwgMCwgMywgMSwgVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BG X1NJREVfRUZGRUNUUykKK0RFRjIocWVtdV9zdDY0LCAwLCAzLCAxLCBMT0NBTF9UQ0dfT1BGX0NB TExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQogI2Vsc2UKLURFRjIocWVtdV9zdDY0 LCAwLCA0LCAxLCBUQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQor REVGMihxZW11X3N0NjQsIDAsIDQsIDEsIExPQ0FMX1RDR19PUEZfQ0FMTF9DTE9CQkVSIHwgVENH X09QRl9TSURFX0VGRkVDVFMpCiAjZW5kaWYKIAogI2Vsc2UgLyogVENHX1RBUkdFVF9SRUdfQklU UyA9PSAzMiAqLwogCi1ERUYyKHFlbXVfbGQ4dSwgMSwgMSwgMSwgVENHX09QRl9DQUxMX0NMT0JC RVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKLURFRjIocWVtdV9sZDhzLCAxLCAxLCAxLCBUQ0df T1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQotREVGMihxZW11X2xkMTZ1 LCAxLCAxLCAxLCBUQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQot REVGMihxZW11X2xkMTZzLCAxLCAxLCAxLCBUQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZf U0lERV9FRkZFQ1RTKQotREVGMihxZW11X2xkMzJ1LCAxLCAxLCAxLCBUQ0dfT1BGX0NBTExfQ0xP QkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQotREVGMihxZW11X2xkMzJzLCAxLCAxLCAxLCBU Q0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQotREVGMihxZW11X2xk NjQsIDEsIDEsIDEsIFRDR19PUEZfQ0FMTF9DTE9CQkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMp CitERUYyKHFlbXVfbGQ4dSwgMSwgMSwgMSwgTE9DQUxfVENHX09QRl9DQUxMX0NMT0JCRVIgfCBU Q0dfT1BGX1NJREVfRUZGRUNUUykKK0RFRjIocWVtdV9sZDhzLCAxLCAxLCAxLCBMT0NBTF9UQ0df T1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQorREVGMihxZW11X2xkMTZ1 LCAxLCAxLCAxLCBMT0NBTF9UQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZF Q1RTKQorREVGMihxZW11X2xkMTZzLCAxLCAxLCAxLCBMT0NBTF9UQ0dfT1BGX0NBTExfQ0xPQkJF UiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQorREVGMihxZW11X2xkMzJ1LCAxLCAxLCAxLCBMT0NB TF9UQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQorREVGMihxZW11 X2xkMzJzLCAxLCAxLCAxLCBMT0NBTF9UQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lE RV9FRkZFQ1RTKQorREVGMihxZW11X2xkNjQsIDEsIDEsIDEsIExPQ0FMX1RDR19PUEZfQ0FMTF9D TE9CQkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCiAKLURFRjIocWVtdV9zdDgsIDAsIDIsIDEs IFRDR19PUEZfQ0FMTF9DTE9CQkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCi1ERUYyKHFlbXVf c3QxNiwgMCwgMiwgMSwgVENHX09QRl9DQUxMX0NMT0JCRVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNU UykKLURFRjIocWVtdV9zdDMyLCAwLCAyLCAxLCBUQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19P UEZfU0lERV9FRkZFQ1RTKQotREVGMihxZW11X3N0NjQsIDAsIDIsIDEsIFRDR19PUEZfQ0FMTF9D TE9CQkVSIHwgVENHX09QRl9TSURFX0VGRkVDVFMpCitERUYyKHFlbXVfc3Q4LCAwLCAyLCAxLCBM T0NBTF9UQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQorREVGMihx ZW11X3N0MTYsIDAsIDIsIDEsIExPQ0FMX1RDR19PUEZfQ0FMTF9DTE9CQkVSIHwgVENHX09QRl9T SURFX0VGRkVDVFMpCitERUYyKHFlbXVfc3QzMiwgMCwgMiwgMSwgTE9DQUxfVENHX09QRl9DQUxM X0NMT0JCRVIgfCBUQ0dfT1BGX1NJREVfRUZGRUNUUykKK0RFRjIocWVtdV9zdDY0LCAwLCAyLCAx LCBMT0NBTF9UQ0dfT1BGX0NBTExfQ0xPQkJFUiB8IFRDR19PUEZfU0lERV9FRkZFQ1RTKQogCiAj ZW5kaWYgLyogVENHX1RBUkdFVF9SRUdfQklUUyAhPSAzMiAqLwogCg== ------=_Part_145189_6041519.1230301926309--