src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotForeignCallsProvider.java
equal
deleted
inserted
replaced
31 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.JUMP_ADDRESS; |
31 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.JUMP_ADDRESS; |
32 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.RegisterEffect.PRESERVES_REGISTERS; |
32 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.RegisterEffect.PRESERVES_REGISTERS; |
33 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.Transition.LEAF; |
33 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.Transition.LEAF; |
34 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.Transition.LEAF_NOFP; |
34 import static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.Transition.LEAF_NOFP; |
35 import static org.graalvm.compiler.hotspot.replacements.CRC32Substitutions.UPDATE_BYTES_CRC32; |
35 import static org.graalvm.compiler.hotspot.replacements.CRC32Substitutions.UPDATE_BYTES_CRC32; |
|
36 import static org.graalvm.compiler.hotspot.replacements.CRC32CSubstitutions.UPDATE_BYTES_CRC32C; |
36 import static org.graalvm.word.LocationIdentity.any; |
37 import static org.graalvm.word.LocationIdentity.any; |
37 |
38 |
38 import org.graalvm.compiler.core.common.LIRKind; |
39 import org.graalvm.compiler.core.common.LIRKind; |
39 import org.graalvm.compiler.core.common.spi.ForeignCallDescriptor; |
40 import org.graalvm.compiler.core.common.spi.ForeignCallDescriptor; |
40 import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig; |
41 import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig; |
97 |
98 |
98 if (config.useCRC32Intrinsics) { |
99 if (config.useCRC32Intrinsics) { |
99 // This stub does callee saving |
100 // This stub does callee saving |
100 registerForeignCall(UPDATE_BYTES_CRC32, config.updateBytesCRC32Stub, NativeCall, PRESERVES_REGISTERS, LEAF_NOFP, NOT_REEXECUTABLE, any()); |
101 registerForeignCall(UPDATE_BYTES_CRC32, config.updateBytesCRC32Stub, NativeCall, PRESERVES_REGISTERS, LEAF_NOFP, NOT_REEXECUTABLE, any()); |
101 } |
102 } |
|
103 if (config.useCRC32CIntrinsics) { |
|
104 registerForeignCall(UPDATE_BYTES_CRC32C, config.updateBytesCRC32C, NativeCall, PRESERVES_REGISTERS, LEAF_NOFP, NOT_REEXECUTABLE, any()); |
|
105 } |
102 |
106 |
103 super.initialize(providers, options); |
107 super.initialize(providers, options); |
104 } |
108 } |
105 |
109 |
106 @Override |
110 @Override |