comparison src/cpu/x86/vm/interpreter_x86_32.cpp @ 1506:2338d41fbd81

6943304: remove tagged stack interpreter Reviewed-by: coleenp, never, gbenson
author twisti
date Fri, 30 Apr 2010 08:37:24 -0700
parents e5b0439ef4ae
children c18cbe5936b8
comparison
equal deleted inserted replaced
1505:0c5b3cf3c1f5 1506:2338d41fbd81
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 :