From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2388 invoked by alias); 27 Mar 2012 20:36:46 -0000 Received: (qmail 2231 invoked by uid 22791); 27 Mar 2012 20:36:43 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-yx0-f175.google.com (HELO mail-yx0-f175.google.com) (209.85.213.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 27 Mar 2012 20:36:29 +0000 Received: by yenm3 with SMTP id m3so326822yen.20 for ; Tue, 27 Mar 2012 13:36:28 -0700 (PDT) MIME-Version: 1.0 Received: by 10.236.192.230 with SMTP id i66mr27297030yhn.116.1332880588733; Tue, 27 Mar 2012 13:36:28 -0700 (PDT) Received: by 10.100.146.5 with HTTP; Tue, 27 Mar 2012 13:36:28 -0700 (PDT) Date: Tue, 27 Mar 2012 20:36:00 -0000 Message-ID: Subject: [patch] Do not call output_constant from the front end From: Steven Bosscher To: GCC Patches , java-patches@gcc.gnu.org, Richard Guenther Content-Type: multipart/mixed; boundary=20cf3056431d04fc1604bc3f72df Mailing-List: contact java-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-patches-owner@gcc.gnu.org X-SW-Source: 2012-q1/txt/msg00078.txt.bz2 --20cf3056431d04fc1604bc3f72df Content-Type: text/plain; charset=ISO-8859-1 Content-length: 947 Hello, The Java front end emits assembly from class.c:emit_register_classes() to fill the .jcr section. This is not something a front end ought to be doing. Things to write out to the assembler output file should go through the varpool/varasm mechanism. The attached patch makes emit_register_classes build a constructor for the .jcr section, and stops it calling output_constant. The patch passes build+testing on powerpc64-unknown-linux-gnu. With this patch a variable named "_Jv_CLS" is written out. The assembly before and after the patch is the same, except for the variable name. I want to write out a nameless variable but I don't know how. Help welcome. Ciao! Steven java/ PR java/52730 * class.c (emit_register_classes_in_jcr_section): New function. (emit_Jv_RegisterClass_calls): New function, split out from ... (emit_register_classes): ... here. Reorganize. Do not call output_constant. --20cf3056431d04fc1604bc3f72df Content-Type: text/x-patch; charset=US-ASCII; name="java_no_output_constant.diff" Content-Disposition: attachment; filename="java_no_output_constant.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h0begkzs0 Content-length: 6523 amF2YS8KCSogY2xhc3MuYyAoZW1pdF9yZWdpc3Rlcl9jbGFzc2VzX2luX2pj cl9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGVtaXRfSnZfUmVnaXN0ZXJD bGFzc19jYWxscyk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20gLi4u CgkoZW1pdF9yZWdpc3Rlcl9jbGFzc2VzKTogLi4uIGhlcmUuICBSZW9yZ2Fu aXplLiAgRG8gbm90IGNhbGwKCW91dHB1dF9jb25zdGFudC4KCkluZGV4OiBj bGFzcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNsYXNzLmMJKHJl dmlzaW9uIDE4NTgxMykKKysrIGNsYXNzLmMJKHdvcmtpbmcgY29weSkKQEAg LTI3ODYsMTAgKzI3ODYsNzUgQEAgZW1pdF9pbmRpcmVjdF9yZWdpc3Rlcl9j bGFzc2VzICh0cmVlICpsaXN0X3ApCiAgIGFwcGVuZF90b19zdGF0ZW1lbnRf bGlzdCAodCwgbGlzdF9wKTsKIH0KIAorLyogRW1pdCBhIGxpc3Qgb2YgcG9p bnRlcnMgdG8gYWxsIGNsYXNzZXMgd2UgaGF2ZSBlbWl0dGVkIHRvIEpDUl9T RUNUSU9OLiAgKi8KIAorc3RhdGljIHZvaWQKK2VtaXRfcmVnaXN0ZXJfY2xh c3Nlc19pbl9qY3Jfc2VjdGlvbiAodm9pZCkKK3sKKyAgdHJlZSBrbGFzcywg Y2RlY2wsIGNsYXNzX2FycmF5X3R5cGU7CisgIGludCBpOworICBpbnQgc2l6 ZSA9IFZFQ19sZW5ndGggKHRyZWUsIHJlZ2lzdGVyZWRfY2xhc3MpOworICBW RUMoY29uc3RydWN0b3JfZWx0LGdjKSAqaW5pdCA9IFZFQ19hbGxvYyAoY29u c3RydWN0b3JfZWx0LCBnYywgc2l6ZSk7CisKKyNpZm5kZWYgSkNSX1NFQ1RJ T05fTkFNRQorICAvKiBBIHRhcmdldCBoYXMgZGVmaW5lZCBUQVJHRVRfVVNF X0pDUl9TRUNUSU9OLAorICAgICBidXQgZG9lc24ndCBoYXZlIGEgSkNSX1NF Q1RJT05fTkFNRS4gICovCisgIGdjY191bnJlYWNoYWJsZSAoKTsKKyNlbmRp ZgorCisgIEZPUl9FQUNIX1ZFQ19FTFQgKHRyZWUsIHJlZ2lzdGVyZWRfY2xh c3MsIGksIGtsYXNzKQorICAgIENPTlNUUlVDVE9SX0FQUEVORF9FTFQgKGlu aXQsIE5VTExfVFJFRSwgYnVpbGRfZm9sZF9hZGRyX2V4cHIgKGtsYXNzKSk7 CisKKyAgY2xhc3NfYXJyYXlfdHlwZSA9IGJ1aWxkX3ByaW1fYXJyYXlfdHlw ZSAocHRyX3R5cGVfbm9kZSwgc2l6ZSk7CisgIGNkZWNsID0gYnVpbGRfZGVj bCAoVU5LTk9XTl9MT0NBVElPTiwKKwkJICAgICAgVkFSX0RFQ0wsIGdldF9p ZGVudGlmaWVyICgiX0p2X0NMUyIpLAorCQkgICAgICBjbGFzc19hcnJheV90 eXBlKTsKKyAgREVDTF9TRUNUSU9OX05BTUUgKGNkZWNsKSA9IGJ1aWxkX3N0 cmluZyAoc3RybGVuIChKQ1JfU0VDVElPTl9OQU1FKSwKKwkJCQkJICAgIEpD Ul9TRUNUSU9OX05BTUUpOworICBERUNMX0FMSUdOIChjZGVjbCkgPSBQT0lO VEVSX1NJWkU7CisgIERFQ0xfSU5JVElBTCAoY2RlY2wpID0gYnVpbGRfY29u c3RydWN0b3IgKGNsYXNzX2FycmF5X3R5cGUsIGluaXQpOworICBUUkVFX0NP TlNUQU5UIChERUNMX0lOSVRJQUwgKGNkZWNsKSkgPSAxOworICBUUkVFX1NU QVRJQyAoY2RlY2wpID0gMTsKKyAgREVDTF9BUlRJRklDSUFMIChjZGVjbCkg PSAxOworICBERUNMX0lHTk9SRURfUCAoY2RlY2wpID0gMTsKKyAgVFJFRV9S RUFET05MWSAoY2RlY2wpID0gMTsKKyAgVFJFRV9DT05TVEFOVCAoY2RlY2wp ID0gMTsKKyAgcHVzaGRlY2xfdG9wX2xldmVsIChjZGVjbCk7CisgIHJlbGF5 b3V0X2RlY2wgKGNkZWNsKTsKKyAgcmVzdF9vZl9kZWNsX2NvbXBpbGF0aW9u IChjZGVjbCwgMSwgMCk7CisgIG1hcmtfZGVjbF9yZWZlcmVuY2VkIChjZGVj bCk7Cit9CisKKworLyogRW1pdCBhIHNlcmllcyBvZiBjYWxscyB0byBfSnZf UmVnaXN0ZXJDbGFzcyBmb3IgZXZlcnkgY2xhc3Mgd2UgZW1pdHRlZC4KKyAg IEEgc2VyaWVzIG9mIGNhbGxzIGlzIGFkZGVkIHRvIExJU1RfUC4gICovCisK K3N0YXRpYyB2b2lkCitlbWl0X0p2X1JlZ2lzdGVyQ2xhc3NfY2FsbHMgKHRy ZWUgKmxpc3RfcCkKK3sKKyAgdHJlZSBrbGFzcywgdCwgcmVnaXN0ZXJfY2xh c3NfZm47CisgIGludCBpOworCisgIHQgPSBidWlsZF9mdW5jdGlvbl90eXBl X2xpc3QgKHZvaWRfdHlwZV9ub2RlLCBjbGFzc19wdHJfdHlwZSwgTlVMTCk7 CisgIHQgPSBidWlsZF9kZWNsIChpbnB1dF9sb2NhdGlvbiwKKwkJICBGVU5D VElPTl9ERUNMLCBnZXRfaWRlbnRpZmllciAoIl9Kdl9SZWdpc3RlckNsYXNz IiksIHQpOworICBUUkVFX1BVQkxJQyAodCkgPSAxOworICBERUNMX0VYVEVS TkFMICh0KSA9IDE7CisgIHJlZ2lzdGVyX2NsYXNzX2ZuID0gdDsKKworICBG T1JfRUFDSF9WRUNfRUxUICh0cmVlLCByZWdpc3RlcmVkX2NsYXNzLCBpLCBr bGFzcykKKyAgICB7CisgICAgICB0ID0gYnVpbGRfZm9sZF9hZGRyX2V4cHIg KGtsYXNzKTsKKyAgICAgIHQgPSBidWlsZF9jYWxsX2V4cHIgKHJlZ2lzdGVy X2NsYXNzX2ZuLCAxLCB0KTsKKyAgICAgIGFwcGVuZF90b19zdGF0ZW1lbnRf bGlzdCAodCwgbGlzdF9wKTsKKyAgICB9Cit9CisKIC8qIEVtaXQgc29tZXRo aW5nIHRvIHJlZ2lzdGVyIGNsYXNzZXMgYXQgc3RhcnQtdXAgdGltZS4KIAot ICAgVGhlIHByZWZlcnJlZCBtZWNoYW5pc20gaXMgdGhyb3VnaCB0aGUgLmpj ciBzZWN0aW9uLCB3aGljaCBjb250YWluCisgICBUaGUgZGVmYXVsdCBtZWNo YW5pc20gaXMgdG8gZ2VuZXJhdGUgaW5zdGFuY2VzIGF0IHJ1bi10aW1lLgor CisgICBBbiBhbHRlcm5hdGl2ZSBtZWNoYW5pc20gaXMgdGhyb3VnaCB0aGUg LmpjciBzZWN0aW9uLCB3aGljaCBjb250YWluCiAgICBhIGxpc3Qgb2YgcG9p bnRlcnMgdG8gY2xhc3NlcyB3aGljaCBnZXQgcmVnaXN0ZXJlZCBkdXJpbmcg Y29uc3RydWN0b3IKICAgIGludm9jYXRpb24gdGltZS4KIApAQCAtMjgwMyw1 NSArMjg2OCwxOCBAQCBlbWl0X3JlZ2lzdGVyX2NsYXNzZXMgKHRyZWUgKmxp c3RfcCkKICAgaWYgKHJlZ2lzdGVyZWRfY2xhc3MgPT0gTlVMTCkKICAgICBy ZXR1cm47CiAKKyAgLyogQnkgZGVmYXVsdCwgZ2VuZXJhdGUgaW5zdGFuY2Vz IG9mIENsYXNzIGF0IHJ1bnRpbWUuICAqLwogICBpZiAoZmxhZ19pbmRpcmVj dF9jbGFzc2VzKQotICAgIHsKLSAgICAgIGVtaXRfaW5kaXJlY3RfcmVnaXN0 ZXJfY2xhc3NlcyAobGlzdF9wKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0K KyAgICBlbWl0X2luZGlyZWN0X3JlZ2lzdGVyX2NsYXNzZXMgKGxpc3RfcCk7 CiAgIC8qIFRBUkdFVF9VU0VfSkNSX1NFQ1RJT04gZGVmYXVsdHMgdG8gMSBp ZiBTVVBQT1JUU19XRUFLIGFuZAogICAgICBUQVJHRVRfQVNNX05BTUVEX1NF Q1RJT04sIGVsc2UgMC4gIFNvbWUgdGFyZ2V0cyBtZWV0IHRob3NlIGNvbmRp dGlvbnMKICAgICAgYnV0IGxhY2sgc3VpdGFibGUgY3J0YmVnaW4vZW5kIG9i amVjdHMgb3IgbGlua2VyIHN1cHBvcnQuICBUaGVzZQogICAgICB0YXJnZXRz IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCBpbiB0bS5oIHRvIHVzZSB0aGUg ZmFsbGJhY2sgbWVjaGFuaXNtLiAgKi8KLSAgaWYgKFRBUkdFVF9VU0VfSkNS X1NFQ1RJT04pCi0gICAgewotICAgICAgdHJlZSBrbGFzcywgdDsKLSAgICAg IGludCBpOwotCi0jaWZkZWYgSkNSX1NFQ1RJT05fTkFNRQotICAgICAgc3dp dGNoX3RvX3NlY3Rpb24gKGdldF9zZWN0aW9uIChKQ1JfU0VDVElPTl9OQU1F LCBTRUNUSU9OX1dSSVRFLCBOVUxMKSk7Ci0jZWxzZQotICAgICAgLyogQSB0 YXJnZXQgaGFzIGRlZmluZWQgVEFSR0VUX1VTRV9KQ1JfU0VDVElPTiwKLQkg YnV0IGRvZXNuJ3QgaGF2ZSBhIEpDUl9TRUNUSU9OX05BTUUuICAqLwotICAg ICAgZ2NjX3VucmVhY2hhYmxlICgpOwotI2VuZGlmCi0gICAgICBhc3NlbWJs ZV9hbGlnbiAoUE9JTlRFUl9TSVpFKTsKLQotICAgICAgRk9SX0VBQ0hfVkVD X0VMVCAodHJlZSwgcmVnaXN0ZXJlZF9jbGFzcywgaSwga2xhc3MpCi0Jewot CSAgdCA9IGJ1aWxkX2ZvbGRfYWRkcl9leHByIChrbGFzcyk7Ci0JICBvdXRw dXRfY29uc3RhbnQgKHQsIFBPSU5URVJfU0laRSAvIEJJVFNfUEVSX1VOSVQs IFBPSU5URVJfU0laRSk7Ci0JfQotICAgIH0KKyAgZWxzZSBpZiAoVEFSR0VU X1VTRV9KQ1JfU0VDVElPTikKKyAgICBlbWl0X3JlZ2lzdGVyX2NsYXNzZXNf aW5famNyX3NlY3Rpb24gKCk7CisgIC8qIFVzZSB0aGUgZmFsbGJhY2sgbWVj aGFuaXNtLiAgKi8KICAgZWxzZQotICAgIHsKLSAgICAgIHRyZWUga2xhc3Ms IHQsIHJlZ2lzdGVyX2NsYXNzX2ZuOwotICAgICAgaW50IGk7Ci0KLSAgICAg IHQgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKHZvaWRfdHlwZV9ub2Rl LCBjbGFzc19wdHJfdHlwZSwgTlVMTCk7Ci0gICAgICB0ID0gYnVpbGRfZGVj bCAoaW5wdXRfbG9jYXRpb24sCi0JCSAgICAgIEZVTkNUSU9OX0RFQ0wsIGdl dF9pZGVudGlmaWVyICgiX0p2X1JlZ2lzdGVyQ2xhc3MiKSwgdCk7Ci0gICAg ICBUUkVFX1BVQkxJQyAodCkgPSAxOwotICAgICAgREVDTF9FWFRFUk5BTCAo dCkgPSAxOwotICAgICAgcmVnaXN0ZXJfY2xhc3NfZm4gPSB0OwotCi0gICAg ICBGT1JfRUFDSF9WRUNfRUxUICh0cmVlLCByZWdpc3RlcmVkX2NsYXNzLCBp LCBrbGFzcykKLQl7Ci0JICB0ID0gYnVpbGRfZm9sZF9hZGRyX2V4cHIgKGts YXNzKTsKLQkgIHQgPSBidWlsZF9jYWxsX2V4cHIgKHJlZ2lzdGVyX2NsYXNz X2ZuLCAxLCB0KTsKLQkgIGFwcGVuZF90b19zdGF0ZW1lbnRfbGlzdCAodCwg bGlzdF9wKTsKLQl9Ci0gICAgfQorICAgIGVtaXRfSnZfUmVnaXN0ZXJDbGFz c19jYWxscyAobGlzdF9wKTsKIH0KIAogLyogQnVpbGQgYSBjb25zdHJ1Y3Rv ciBmb3IgYW4gZW50cnkgaW4gdGhlIHN5bWJvbCB0YWJsZS4gICovCg== --20cf3056431d04fc1604bc3f72df--