< prev index next >
src/hotspot/cpu/aarch64/templateTable_aarch64.cpp
Print this page
@@ -329,41 +329,41 @@
__ add(r3, r1, tags_offset);
__ lea(r3, Address(r0, r3));
__ ldarb(r3, r3);
// unresolved class - get the resolved class
- __ cmp(r3, JVM_CONSTANT_UnresolvedClass);
+ __ cmp(r3, (u1)JVM_CONSTANT_UnresolvedClass);
__ br(Assembler::EQ, call_ldc);
// unresolved class in error state - call into runtime to throw the error
// from the first resolution attempt
- __ cmp(r3, JVM_CONSTANT_UnresolvedClassInError);
+ __ cmp(r3, (u1)JVM_CONSTANT_UnresolvedClassInError);
__ br(Assembler::EQ, call_ldc);
// resolved class - need to call vm to get java mirror of the class
- __ cmp(r3, JVM_CONSTANT_Class);
+ __ cmp(r3, (u1)JVM_CONSTANT_Class);
__ br(Assembler::NE, notClass);
__ bind(call_ldc);
__ mov(c_rarg1, wide);
call_VM(r0, CAST_FROM_FN_PTR(address, InterpreterRuntime::ldc), c_rarg1);
__ push_ptr(r0);
__ verify_oop(r0);
__ b(Done);
__ bind(notClass);
- __ cmp(r3, JVM_CONSTANT_Float);
+ __ cmp(r3, (u1)JVM_CONSTANT_Float);
__ br(Assembler::NE, notFloat);
// ftos
__ adds(r1, r2, r1, Assembler::LSL, 3);
__ ldrs(v0, Address(r1, base_offset));
__ push_f();
__ b(Done);
__ bind(notFloat);
- __ cmp(r3, JVM_CONSTANT_Integer);
+ __ cmp(r3, (u1)JVM_CONSTANT_Integer);
__ br(Assembler::NE, notInt);
// itos
__ adds(r1, r2, r1, Assembler::LSL, 3);
__ ldrw(r0, Address(r1, base_offset));
@@ -2331,11 +2331,11 @@
case Bytecodes::_nofast_putfield: code = Bytecodes::_putfield; break;
}
assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range");
__ get_cache_and_index_and_bytecode_at_bcp(Rcache, index, temp, byte_no, 1, index_size);
- __ cmp(temp, (int) code); // have we resolved this bytecode?
+ __ subs(zr, temp, (int) code); // have we resolved this bytecode?
__ br(Assembler::EQ, resolved);
// resolve first time through
address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache);
__ mov(temp, (int) code);
@@ -2513,11 +2513,11 @@
patch_bytecode(Bytecodes::_fast_bgetfield, bc, r1);
}
__ b(Done);
__ bind(notByte);
- __ cmp(flags, ztos);
+ __ cmp(flags, (u1)ztos);
__ br(Assembler::NE, notBool);
// ztos (same code as btos)
__ access_load_at(T_BOOLEAN, IN_HEAP, r0, field, noreg, noreg);
__ push(ztos);
@@ -2527,22 +2527,22 @@
patch_bytecode(Bytecodes::_fast_bgetfield, bc, r1);
}
__ b(Done);
__ bind(notBool);
- __ cmp(flags, atos);
+ __ cmp(flags, (u1)atos);
__ br(Assembler::NE, notObj);
// atos
do_oop_load(_masm, field, r0, IN_HEAP);
__ push(atos);
if (rc == may_rewrite) {
patch_bytecode(Bytecodes::_fast_agetfield, bc, r1);
}
__ b(Done);
__ bind(notObj);
- __ cmp(flags, itos);
+ __ cmp(flags, (u1)itos);
__ br(Assembler::NE, notInt);
// itos
__ access_load_at(T_INT, IN_HEAP, r0, field, noreg, noreg);
__ push(itos);
// Rewrite bytecode to be faster
@@ -2550,11 +2550,11 @@
patch_bytecode(Bytecodes::_fast_igetfield, bc, r1);
}
__ b(Done);
__ bind(notInt);
- __ cmp(flags, ctos);
+ __ cmp(flags, (u1)ctos);
__ br(Assembler::NE, notChar);
// ctos
__ access_load_at(T_CHAR, IN_HEAP, r0, field, noreg, noreg);
__ push(ctos);
// Rewrite bytecode to be faster
@@ -2562,11 +2562,11 @@
patch_bytecode(Bytecodes::_fast_cgetfield, bc, r1);
}
__ b(Done);
__ bind(notChar);
- __ cmp(flags, stos);
+ __ cmp(flags, (u1)stos);
__ br(Assembler::NE, notShort);
// stos
__ access_load_at(T_SHORT, IN_HEAP, r0, field, noreg, noreg);
__ push(stos);
// Rewrite bytecode to be faster
@@ -2574,11 +2574,11 @@
patch_bytecode(Bytecodes::_fast_sgetfield, bc, r1);
}
__ b(Done);
__ bind(notShort);
- __ cmp(flags, ltos);
+ __ cmp(flags, (u1)ltos);
__ br(Assembler::NE, notLong);
// ltos
__ access_load_at(T_LONG, IN_HEAP, r0, field, noreg, noreg);
__ push(ltos);
// Rewrite bytecode to be faster
@@ -2586,11 +2586,11 @@
patch_bytecode(Bytecodes::_fast_lgetfield, bc, r1);
}
__ b(Done);
__ bind(notLong);
- __ cmp(flags, ftos);
+ __ cmp(flags, (u1)ftos);
__ br(Assembler::NE, notFloat);
// ftos
__ access_load_at(T_FLOAT, IN_HEAP, noreg /* ftos */, field, noreg, noreg);
__ push(ftos);
// Rewrite bytecode to be faster
@@ -2599,11 +2599,11 @@
}
__ b(Done);
__ bind(notFloat);
#ifdef ASSERT
- __ cmp(flags, dtos);
+ __ cmp(flags, (u1)dtos);
__ br(Assembler::NE, notDouble);
#endif
// dtos
__ access_load_at(T_DOUBLE, IN_HEAP, noreg /* ftos */, field, noreg, noreg);
__ push(dtos);
@@ -2749,11 +2749,11 @@
}
__ b(Done);
}
__ bind(notByte);
- __ cmp(flags, ztos);
+ __ cmp(flags, (u1)ztos);
__ br(Assembler::NE, notBool);
// ztos
{
__ pop(ztos);
@@ -2764,11 +2764,11 @@
}
__ b(Done);
}
__ bind(notBool);
- __ cmp(flags, atos);
+ __ cmp(flags, (u1)atos);
__ br(Assembler::NE, notObj);
// atos
{
__ pop(atos);
@@ -2780,11 +2780,11 @@
}
__ b(Done);
}
__ bind(notObj);
- __ cmp(flags, itos);
+ __ cmp(flags, (u1)itos);
__ br(Assembler::NE, notInt);
// itos
{
__ pop(itos);
@@ -2795,11 +2795,11 @@
}
__ b(Done);
}
__ bind(notInt);
- __ cmp(flags, ctos);
+ __ cmp(flags, (u1)ctos);
__ br(Assembler::NE, notChar);
// ctos
{
__ pop(ctos);
@@ -2810,11 +2810,11 @@
}
__ b(Done);
}
__ bind(notChar);
- __ cmp(flags, stos);
+ __ cmp(flags, (u1)stos);
__ br(Assembler::NE, notShort);
// stos
{
__ pop(stos);
@@ -2825,11 +2825,11 @@
}
__ b(Done);
}
__ bind(notShort);
- __ cmp(flags, ltos);
+ __ cmp(flags, (u1)ltos);
__ br(Assembler::NE, notLong);
// ltos
{
__ pop(ltos);
@@ -2840,11 +2840,11 @@
}
__ b(Done);
}
__ bind(notLong);
- __ cmp(flags, ftos);
+ __ cmp(flags, (u1)ftos);
__ br(Assembler::NE, notFloat);
// ftos
{
__ pop(ftos);
@@ -2856,11 +2856,11 @@
__ b(Done);
}
__ bind(notFloat);
#ifdef ASSERT
- __ cmp(flags, dtos);
+ __ cmp(flags, (u1)dtos);
__ br(Assembler::NE, notDouble);
#endif
// dtos
{
@@ -3532,20 +3532,20 @@
// how Constant Pool is updated (see ConstantPool::klass_at_put)
const int tags_offset = Array<u1>::base_offset_in_bytes();
__ lea(rscratch1, Address(r0, r3, Address::lsl(0)));
__ lea(rscratch1, Address(rscratch1, tags_offset));
__ ldarb(rscratch1, rscratch1);
- __ cmp(rscratch1, JVM_CONSTANT_Class);
+ __ cmp(rscratch1, (u1)JVM_CONSTANT_Class);
__ br(Assembler::NE, slow_case);
// get InstanceKlass
__ load_resolved_klass_at_offset(r4, r3, r4, rscratch1);
// make sure klass is initialized & doesn't have finalizer
// make sure klass is fully initialized
__ ldrb(rscratch1, Address(r4, InstanceKlass::init_state_offset()));
- __ cmp(rscratch1, InstanceKlass::fully_initialized);
+ __ cmp(rscratch1, (u1)InstanceKlass::fully_initialized);
__ br(Assembler::NE, slow_case);
// get instance_size in InstanceKlass (scaled to a count of bytes)
__ ldrw(r3,
Address(r4,
@@ -3681,11 +3681,11 @@
__ get_unsigned_2_byte_index_at_bcp(r19, 1); // r19=index
// See if bytecode has already been quicked
__ add(rscratch1, r3, Array<u1>::base_offset_in_bytes());
__ lea(r1, Address(rscratch1, r19));
__ ldarb(r1, r1);
- __ cmp(r1, JVM_CONSTANT_Class);
+ __ cmp(r1, (u1)JVM_CONSTANT_Class);
__ br(Assembler::EQ, quicked);
__ push(atos); // save receiver for result, and for GC
call_VM(r0, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
// vm_result_2 has metadata result
@@ -3735,11 +3735,11 @@
__ get_unsigned_2_byte_index_at_bcp(r19, 1); // r19=index
// See if bytecode has already been quicked
__ add(rscratch1, r3, Array<u1>::base_offset_in_bytes());
__ lea(r1, Address(rscratch1, r19));
__ ldarb(r1, r1);
- __ cmp(r1, JVM_CONSTANT_Class);
+ __ cmp(r1, (u1)JVM_CONSTANT_Class);
__ br(Assembler::EQ, quicked);
__ push(atos); // save receiver for result, and for GC
call_VM(r0, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
// vm_result_2 has metadata result
< prev index next >