src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/ForeignCallLinkage.java
changeset 59095 03fbcd06b4c0
parent 52910 583fd71c47d6
equal deleted inserted replaced
59094:5d4c3724e4c7 59095:03fbcd06b4c0
     1 /*
     1 /*
     2  * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2009, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    71      * Determines if debug info needs to be associated with this call. Debug info is required if the
    71      * Determines if debug info needs to be associated with this call. Debug info is required if the
    72      * function can raise an exception, try to lock, trigger GC or do anything else that requires
    72      * function can raise an exception, try to lock, trigger GC or do anything else that requires
    73      * the VM to be able to inspect the thread's execution state.
    73      * the VM to be able to inspect the thread's execution state.
    74      */
    74      */
    75     boolean needsDebugInfo();
    75     boolean needsDebugInfo();
       
    76 
       
    77     /**
       
    78      * Returns true if further cleanup on the float registers is needed after performing the foreign
       
    79      * call. This is critical on AMD64 as there is a performance penalty switching between legacy
       
    80      * SSE and AVX instruction while the upper halves of the xmm registers are not zero.
       
    81      */
       
    82     default boolean needsClearUpperVectorRegisters() {
       
    83         return false;
       
    84     }
    76 }
    85 }