< prev index next >

src/cpu/aarch32/vm/assembler_aarch32.cpp

Print this page
rev 8069 : 8164652: aarch32: C1 port

*** 1373,1383 **** } case lit: { if (rtype == relocInfo::none) __ mov(r, target()); else ! __ movptr(r, (u_int32_t)target()); break; } default: ShouldNotReachHere(); } --- 1373,1383 ---- } case lit: { if (rtype == relocInfo::none) __ mov(r, target()); else ! __ movptr(r, (uint32_t)target()); break; } default: ShouldNotReachHere(); }
*** 1691,1701 **** mov_immediate32(dst, imm32, cond, s); } } //This should really be in the macroassembler ! void Assembler::mov_immediate32(Register dst, u_int32_t imm32, Condition cond, bool s) { // Need to move a full 32 bit immediate, for example if we're loading an address that // might change later and therefore need to be updated. if (VM_Version::features() & (FT_ARMV7 | FT_ARMV6T2)) { //Use a movw and a movt --- 1691,1701 ---- mov_immediate32(dst, imm32, cond, s); } } //This should really be in the macroassembler ! void Assembler::mov_immediate32(Register dst, uint32_t imm32, Condition cond, bool s) { // Need to move a full 32 bit immediate, for example if we're loading an address that // might change later and therefore need to be updated. if (VM_Version::features() & (FT_ARMV7 | FT_ARMV6T2)) { //Use a movw and a movt
*** 1733,1743 **** if(imm_instr(decode, Rd, Rn, imm, cond, s)) return; if(imm_instr(cpart, Rd, Rn, -imm, cond, s)) return; //Try plan B - a mov first - need to have destination that is not an arg assert(Rd != Rn, "Can't use imm and can't do a mov. I'm in a jam."); ! mov_immediate(Rd, (u_int32_t)uabs(imm), cond, s); //Now do the non immediate version - copied from the immediate encodings { starti; reg_instr( imm < 0 ? cpart : decode, lsl(), cond, s); rf(Rn, 16), rf(Rd, 12), rf(Rd, 0); --- 1733,1743 ---- if(imm_instr(decode, Rd, Rn, imm, cond, s)) return; if(imm_instr(cpart, Rd, Rn, -imm, cond, s)) return; //Try plan B - a mov first - need to have destination that is not an arg assert(Rd != Rn, "Can't use imm and can't do a mov. I'm in a jam."); ! mov_immediate(Rd, (uint32_t)uabs(imm), cond, s); //Now do the non immediate version - copied from the immediate encodings { starti; reg_instr( imm < 0 ? cpart : decode, lsl(), cond, s); rf(Rn, 16), rf(Rd, 12), rf(Rd, 0);
< prev index next >