1.1 --- a/src/cpu/mips/vm/templateInterpreter_mips_64.cpp Thu May 24 18:59:17 2018 +0800 1.2 +++ b/src/cpu/mips/vm/templateInterpreter_mips_64.cpp Tue Apr 10 10:21:49 2018 +0800 1.3 @@ -684,7 +684,7 @@ 1.4 __ dadd(T1, T1, T2); 1.5 __ lw(T3, T1, 0); 1.6 1.7 - Label notByte, notShort, notChar, notObj; 1.8 + Label notByte, notBool, notShort, notChar, notObj; 1.9 // const Address field_address (eax, esi, Address::times_1); 1.10 1.11 // Need to differentiate between igetfield, agetfield, bgetfield etc. 1.12 @@ -701,8 +701,17 @@ 1.13 __ b(xreturn_path); 1.14 __ delayed()->nop(); 1.15 1.16 + //ztos 1.17 + __ bind(notByte); 1.18 + __ daddi(T1, T3, (-1) * ztos); 1.19 + __ bne(T1, R0, notBool); 1.20 + __ delayed()->nop(); 1.21 + __ lb(V0, T0, 0); 1.22 + __ b(xreturn_path); 1.23 + __ delayed()->nop(); 1.24 + 1.25 //stos 1.26 - __ bind(notByte); 1.27 + __ bind(notBool); 1.28 __ daddi(T1, T3, (-1) * stos); 1.29 __ bne(T1, R0, notShort); 1.30 __ delayed()->nop();