src/hotspot/cpu/x86/templateInterpreterGenerator_x86_32.cpp
changeset 49027 8dc742d9bbab
parent 47216 71c04702a3d5
child 51056 3ddf41505d54
equal deleted inserted replaced
49026:844bf1deff1a 49027:8dc742d9bbab
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2018, 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.
    59     // rdx: scratch
    59     // rdx: scratch
    60     // rdi: scratch
    60     // rdi: scratch
    61 
    61 
    62     Label slow_path;
    62     Label slow_path;
    63     // If we need a safepoint check, generate full interpreter entry.
    63     // If we need a safepoint check, generate full interpreter entry.
    64     ExternalAddress state(SafepointSynchronize::address_of_state());
    64     __ safepoint_poll(slow_path, noreg, rdi);
    65     __ cmp32(ExternalAddress(SafepointSynchronize::address_of_state()),
       
    66              SafepointSynchronize::_not_synchronized);
       
    67     __ jcc(Assembler::notEqual, slow_path);
       
    68 
    65 
    69     // We don't generate local frame and don't align stack because
    66     // We don't generate local frame and don't align stack because
    70     // we call stub code and there is no safepoint on this path.
    67     // we call stub code and there is no safepoint on this path.
    71 
    68 
    72     // Load parameters
    69     // Load parameters
   111     // rdx: scratch
   108     // rdx: scratch
   112     // rdi: scratch
   109     // rdi: scratch
   113 
   110 
   114     Label slow_path;
   111     Label slow_path;
   115     // If we need a safepoint check, generate full interpreter entry.
   112     // If we need a safepoint check, generate full interpreter entry.
   116     ExternalAddress state(SafepointSynchronize::address_of_state());
   113     __ safepoint_poll(slow_path, noreg, rdi);
   117     __ cmp32(ExternalAddress(SafepointSynchronize::address_of_state()),
       
   118              SafepointSynchronize::_not_synchronized);
       
   119     __ jcc(Assembler::notEqual, slow_path);
       
   120 
   114 
   121     // We don't generate local frame and don't align stack because
   115     // We don't generate local frame and don't align stack because
   122     // we call stub code and there is no safepoint on this path.
   116     // we call stub code and there is no safepoint on this path.
   123 
   117 
   124     // Load parameters
   118     // Load parameters