< prev index next >

src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp

Print this page
8248238: Adding Windows support to OpenJDK on AArch64

Summary: LP64 vs LLP64 changes to add Windows support

Contributed-by: Monica Beckwith <monica.beckwith@microsoft.com>, Ludovic Henry <luhenry@microsoft.com>
Reviewed-by:

*** 1350,1360 **** // get object class // not a safepoint as obj null check happens earlier __ load_klass(klass_RInfo, obj); if (k->is_loaded()) { // See if we get an immediate positive hit ! __ ldr(rscratch1, Address(klass_RInfo, long(k->super_check_offset()))); __ cmp(k_RInfo, rscratch1); if ((juint)in_bytes(Klass::secondary_super_cache_offset()) != k->super_check_offset()) { __ br(Assembler::NE, *failure_target); // successful cast, fall through to profile or jump } else { --- 1350,1360 ---- // get object class // not a safepoint as obj null check happens earlier __ load_klass(klass_RInfo, obj); if (k->is_loaded()) { // See if we get an immediate positive hit ! __ ldr(rscratch1, Address(klass_RInfo, int64_t(k->super_check_offset()))); __ cmp(k_RInfo, rscratch1); if ((juint)in_bytes(Klass::secondary_super_cache_offset()) != k->super_check_offset()) { __ br(Assembler::NE, *failure_target); // successful cast, fall through to profile or jump } else {
*** 2014,2024 **** ShouldNotReachHere(); } } else if (code == lir_cmp_l2i) { Label done; __ cmp(left->as_register_lo(), right->as_register_lo()); ! __ mov(dst->as_register(), (u_int64_t)-1L); __ br(Assembler::LT, done); __ csinc(dst->as_register(), zr, zr, Assembler::EQ); __ bind(done); } else { ShouldNotReachHere(); --- 2014,2024 ---- ShouldNotReachHere(); } } else if (code == lir_cmp_l2i) { Label done; __ cmp(left->as_register_lo(), right->as_register_lo()); ! __ mov(dst->as_register(), (uint64_t)-1L); __ br(Assembler::LT, done); __ csinc(dst->as_register(), zr, zr, Assembler::EQ); __ bind(done); } else { ShouldNotReachHere();
*** 2673,2683 **** Register crc = op->crc()->as_register(); Register val = op->val()->as_register(); Register res = op->result_opr()->as_register(); assert_different_registers(val, crc, res); ! unsigned long offset; __ adrp(res, ExternalAddress(StubRoutines::crc_table_addr()), offset); if (offset) __ add(res, res, offset); __ mvnw(crc, crc); // ~crc __ update_byte_crc32(crc, val, res); --- 2673,2683 ---- Register crc = op->crc()->as_register(); Register val = op->val()->as_register(); Register res = op->result_opr()->as_register(); assert_different_registers(val, crc, res); ! uint64_t offset; __ adrp(res, ExternalAddress(StubRoutines::crc_table_addr()), offset); if (offset) __ add(res, res, offset); __ mvnw(crc, crc); // ~crc __ update_byte_crc32(crc, val, res);
< prev index next >