<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I remember having looked at this before.<div class=""><br class=""></div><div class="">src/share/vm/c1/c1_LIR.hpp:</div><div class=""><br class=""></div><div class="">-#ifdef PPC<br class="">+#if defined(PPC)<br class=""><br class=""><div class="">-#endif // PPC<br class="">+#endif<br class=""><br class=""><div>Please undo these changes.</div><div><br class=""></div><div>src/share/vm/c1/c1_LIRAssembler.cpp:</div><div><br class=""></div><div><div class="">     case lir_null_check:</div><div class="">       if (GenerateCompilerNullChecks) {</div>+#ifdef PPC64<br class="">+        if (!TrapBasedNullChecks) {<br class="">+          assert(op->in_opr()->is_single_cpu(), "expected");<br class="">+          explicit_null_check(op->in_opr()->as_register(), op->info());<br class="">+          break;<br class="">+        }<br class="">+#endif<br class=""><br class="">Do we really need the ifdef?  Shouldn’t the code work on other architectures too?  I see that TrapBasedNullChecks is false on all architectures except PPC:</div><div><br class=""></div><div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">src/closed/cpu/arm/vm/globals_arm.hpp:19:define_pd_global(bool,  TrapBasedNullChecks,      false); // Not needed</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">src/cpu/aarch64/vm/globals_aarch64.hpp:40:define_pd_global(bool, TrapBasedNullChecks,  false);</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">src/cpu/ppc/vm/globals_ppc.hpp:41:define_pd_global(bool, TrapBasedNullChecks,   true);</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">src/cpu/sparc/vm/globals_sparc.hpp:45:define_pd_global(bool, TrapBasedNullChecks,         false); // Not needed on sparc.</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">src/cpu/x86/vm/globals_x86.hpp:39:define_pd_global(bool, TrapBasedNullChecks,      false); // Not needed on x86.</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">src/cpu/zero/vm/globals_zero.hpp:40:define_pd_global(bool,  TrapBasedNullChecks,  false);</div><div class=""><br class=""></div></div><div>Shouldn’t all be true?</div><div><br class=""><blockquote type="cite" class=""><div class="">On Nov 12, 2015, at 12:07 AM, Doerr, Martin <<a href="mailto:martin.doerr@sap.com" class="">martin.doerr@sap.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="WordSection1" style="page: WordSection1; font-family: Verdana; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="color: rgb(31, 73, 125);" class="">Hi,<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="color: rgb(31, 73, 125);" class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" style="color: rgb(31, 73, 125);" class="">we already have a local openjdk with C1 on PPC64. However, we can’t contribute it without these shared code changes.<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" style="color: rgb(31, 73, 125);" class="">This one should not change anything for PPC32 but change the defines as needed for PPC64.<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" style="color: rgb(31, 73, 125);" class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" style="color: rgb(31, 73, 125);" class="">Can someone review and sponsor, please?<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" style="color: rgb(31, 73, 125);" class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="color: rgb(31, 73, 125);" class="">Best regards,<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span style="color: rgb(31, 73, 125);" class="">  Martin<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div class=""><div style="border-style: solid none none; border-top-color: rgb(225, 225, 225); border-top-width: 1pt; padding: 3pt 0cm 0cm;" class=""><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><b class=""><span lang="EN-US" class="">From:</span></b><span lang="EN-US" class=""><span class="Apple-converted-space"> </span>Doerr, Martin<span class="Apple-converted-space"> </span><br class=""><b class="">Sent:</b><span class="Apple-converted-space"> </span>Dienstag, 3. November 2015 16:13<br class=""><b class="">To:</b><span class="Apple-converted-space"> </span><a href="mailto:hotspot-compiler-dev@openjdk.java.net" class="">hotspot-compiler-dev@openjdk.java.net</a><br class=""><b class="">Subject:</b><span class="Apple-converted-space"> </span>RFR(M): 8138952: C1: Distinguish between PPC32 and PPC64<o:p class=""></o:p></span></div></div></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class="">Hi,<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class="">The shared C1 code currently uses many preprocessor directives which have been designed to work for the PPC32 port. In order to support our C1 port on PPC64 as well, some #ifdef etc. need modification.<span style="" class=""><o:p class=""></o:p></span></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" style="" class="">Webrev is here:<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" style="" class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" style="" class=""><a href="http://cr.openjdk.java.net/~mdoerr/8138952_c1_PPC64_defs/webrev.01/" style="color: rgb(149, 79, 114); text-decoration: underline;" class="">http://cr.openjdk.java.net/~mdoerr/8138952_c1_PPC64_defs/webrev.01/</a><o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class="">PPC is defined if either PPC32 and PPC64 is defined so we use it for code which is used by both ports.<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class="">I made the following changes to webrev.00:<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class="">I changed c1_LIR.hpp to use PPC for the method defined twice.<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class="">I removed the modification of the defines in c1_Compilation.hpp (it’s not needed).<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class="">Please review this change.  I need a sponsor, please.<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class=""><o:p class=""> </o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class="">Best regards,<o:p class=""></o:p></span></div><div style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><span lang="EN-US" class="">  Martin</span></div></div></div></blockquote></div><br class=""></div></div></body></html>