# HG changeset patch # User Thomas Wuerthinger # Date 1448366965 -3600 # Node ID de7e18a6e988b441cd9e613eab3a1f76273b2260 # Parent 0489858544169de67e7cbee246357ae53eb63f20# Parent deb6336662b6db815607f58f07ccf3e3c10b5696 Merge. diff -r 048985854416 -r de7e18a6e988 graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java --- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java Tue Nov 24 13:09:07 2015 +0100 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java Tue Nov 24 13:09:25 2015 +0100 @@ -31,6 +31,8 @@ import static com.oracle.graal.hotspot.HotSpotForeignCallLinkage.Transition.LEAF_NOFP; import static com.oracle.graal.hotspot.HotSpotHostBackend.DEOPTIMIZATION_HANDLER; import static com.oracle.graal.hotspot.HotSpotHostBackend.UNCOMMON_TRAP_HANDLER; +import static com.oracle.graal.hotspot.replacements.CRC32Substitutions.UPDATE_BYTES_CRC32; +import static jdk.vm.ci.code.CallingConvention.Type.NativeCall; import static jdk.vm.ci.meta.LocationIdentity.any; import static jdk.vm.ci.meta.Value.ILLEGAL; import static jdk.vm.ci.sparc.SPARC.i0; @@ -87,6 +89,11 @@ link(new SPARCUncommonTrapStub(providers, target, registerStubCall(UNCOMMON_TRAP_HANDLER, REEXECUTABLE, LEAF, NO_LOCATIONS), config)); } + if (config.useCRC32Intrinsics) { + // This stub does callee saving + registerForeignCall(UPDATE_BYTES_CRC32, config.updateBytesCRC32Stub, NativeCall, PRESERVES_REGISTERS, LEAF_NOFP, NOT_REEXECUTABLE, any()); + } + super.initialize(providers); }