src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotForeignCallsProvider.java
changeset 48398 79afa4c434f6
parent 47216 71c04702a3d5
child 49873 26ebfe8ce852
equal deleted inserted replaced
48397:ead47ddf5844 48398:79afa4c434f6
    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