--- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp Wed Jun 22 14:45:37 2011 -0700
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp Thu Jun 23 17:14:06 2011 -0700
@@ -373,15 +373,17 @@
__ jcc(Assembler::equal, L);
__ cmpl(rdx, JVM_CONSTANT_String);
__ jcc(Assembler::equal, L);
+ __ cmpl(rdx, JVM_CONSTANT_Object);
+ __ jcc(Assembler::equal, L);
__ stop("unexpected tag type in ldc");
__ bind(L);
}
#endif
Label isOop;
// atos and itos
- // String is only oop type we will see here
- __ cmpl(rdx, JVM_CONSTANT_String);
- __ jccb(Assembler::equal, isOop);
+ // Integer is only non-oop type we will see here
+ __ cmpl(rdx, JVM_CONSTANT_Integer);
+ __ jccb(Assembler::notEqual, isOop);
__ movl(rax, Address(rcx, rbx, Address::times_ptr, base_offset));
__ push(itos);
__ jmp(Done);