hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp
changeset 5419 f2e8cc8c12ea
parent 2534 08dac9ce0cd7
child 5547 f4b087cbb361
equal deleted inserted replaced
5418:c4955cb6ed33 5419:f2e8cc8c12ea
     1 /*
     1 /*
     2  * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1997-2010 Sun Microsystems, Inc.  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.
   129 
   129 
   130   // Note: For JDK 1.3 StrictMath exists and Math.sin/cos/sqrt are
   130   // Note: For JDK 1.3 StrictMath exists and Math.sin/cos/sqrt are
   131   //       java methods.  Interpreter::method_kind(...) will select
   131   //       java methods.  Interpreter::method_kind(...) will select
   132   //       this entry point for the corresponding methods in JDK 1.3.
   132   //       this entry point for the corresponding methods in JDK 1.3.
   133   // get argument
   133   // get argument
   134   if (TaggedStackInterpreter) {
   134   __ fld_d(Address(rsp, 1*wordSize));
   135     __ pushl(Address(rsp, 3*wordSize));  // push hi (and note rsp -= wordSize)
       
   136     __ pushl(Address(rsp, 2*wordSize));  // push lo
       
   137     __ fld_d(Address(rsp, 0));           // get double in ST0
       
   138     __ addptr(rsp, 2*wordSize);
       
   139   } else {
       
   140     __ fld_d(Address(rsp, 1*wordSize));
       
   141   }
       
   142   switch (kind) {
   135   switch (kind) {
   143     case Interpreter::java_lang_math_sin :
   136     case Interpreter::java_lang_math_sin :
   144         __ trigfunc('s');
   137         __ trigfunc('s');
   145         break;
   138         break;
   146     case Interpreter::java_lang_math_cos :
   139     case Interpreter::java_lang_math_cos :