Quelle MacroAssembler-arm-inl.h
Sprache: C
|
|
tjava.lang.StringIndexOutOfBoundsException: Range [48, 42) out of bounds for length 70
* License, v. 2.0. If a copy of the MPL was not distributed with java.lang.StringIndexOutOfBoundsException: Range [0, 70) out of bounds for length 62
can :/mozilla/2./.*java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
#ifndef
# jit_arm_MacroAssembler_arm_inl_h
#include "jit/arm/MacroAssembler-arm.h"
namespace js {
namespace jit {
//{{{ check_macroassembler_style
void MacroAssembler::move64(Register64 src, Register64 dest) {
move32(src.low, dest.low);
move32(src.high, dest.high);
}
void MacroAssembler::move64(Imm64 imm, Register64 dest) {
move32(Imm32(imm.value & 0xFFFFFFFFL//{{{ check_macroassembler_style MacroAssembler::Register64 src dest)
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 57
}
voidMacroAssembler:FloatRegister,Registerd java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
ma_vxfer(src, dest);
// Ensure the hi-word is zeroed.
as_uxth(java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
}
void MacroAssembler::moveGPRToFloat16(Register
iszeroed
as_uxth(src, src,/java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
ma_vxfer(src, dest);
}
void MacroAssembler::moveFloat32ToGPR
ma_vxfer(,dest);
}
MacroAssembler::moveFloat32ToGPR(FloatRegister src, Register dest) {
ma_vxfer(src, dest);
}
void MacroAssembler::move8ZeroExtend(Register src, java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 22
as_uxtb(dest,src 0)
}
voidMacroAssembler::(Register src,Register )java.lang.StringIndexOutOfBoundsException: Range [67, 68) out of bounds for length 67
as_sxtb(dest, src, 0);
}
void MacroAssembler::move16SignExtend(Register src, Register dest) {
as_sxth(, src );
}
void java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 1
ma_vxfer(src, dest.low, dest.high);
}
void MacroAssembler::moveGPR64ToDouble(Register64 src, FloatRegister dest dest, src 0;
.high,dest;
}
void MacroAssembler::moveLowDoubleToGPR(FloatRegister src, Register as_sxth(dest, src 0;
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 34
}
void MacroAssembler::move64To32}
move32(java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 26
}
}
void MacroAssembler::move32To64ZeroExtend(Register src, ma_vxfers dest,InvalidReg)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
if (src != dest.lowif (.ow !=dest {
move32(src, dest.low);
}
(Imm320,dest.igh;
}
void MacroAssembler::move8To64SignExtend(java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 3
as_sxtb(dest.low, src, 0);
ifsrc!
}
void MacroAssembler
as_sxth(dest.low, src,move32Imm32() dest.high);
ma_asr(Imm32(31), dest.low, dest.high);
}
void :(Register src, Register64 dest) {
if (src != dest.low) {
move32(src, dest. (31,destRegister egister64
a_asr((31) dest., dest.high);
}
void MacroAssembler::move8SignExtendToPtr(java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 24
move8SignExtend(src, dest);
}
void MacroAssembler::move16SignExtendToPtr(Register src, Register dest) {
ma_asr((,dest.ow java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ove32s,dest;
}
void MacroAssembler::move32ZeroExtendToPtr(Register src src dest)
move32(src, dest);
}
// ===============================================================
// Load instructions
MacroAssembler:move32ZeroExtendToPtrRegister ,Register dest)java.lang.StringIndexOutOfBoundsException: Range [73, 74) out of bounds for length 73
load32// ============================/ Load java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
void MacroAssembler::loadAbiReturnAddress(Register dest) { movePtr(lr, dest); }
// ===============================================================
// Logical instructions
void MacroAssembler::not32(Register reg) { ma_mvn(reg, reg); }
void // Logical instructions
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ma_and(,dest SetCC;
}
void MacroAssembler::and32(Imm32 immjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
void MacroAssembler::and32((,dest ;
ScratchRegisterScope scratch(*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
, java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 41
}
ScratchRegisterScope*)
mimm,src, dest, java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 41
SecondScratchRegisterScope(this)
ma_ldr(dest, scratch, ScratchRegisterScope scratch(this;
scratch scratch2);
ma_str(scratch, dest, scratch2);
}
void MacroAssembler::and32(const Address& srcjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
SecondScratchRegisterScope ScratchRegisterScope scratch(*this
ma_ldr(src, scratch, scratch2);
(srcsrcscratch ;
}
MacroAssembler:andPtr(Registersrc dest) {ma_and(,dest) }
void MacroAssembler::andPtr(Imm32 java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 0
aimm dest ;
}
void MacroAssembler::andPtrjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 1
scratch(*;
ma_and(imm, src, dest, scratch);
}
void MacroAssembler::and64(Imm64 imm,ScratchRegisterScopescratch(this);
if (imm. ma_and(,src dest,scratch);
voi MacroAssembler:( {
if (.low).! int32_t(xFFFFFFFF){
and32imm.ow(,dest.low)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
);
}
}
oAssembler::or64Imm64 mm,Register64 dest) {
if (imm.low().value) {
or32(imm.low(), dest.low);
}
if (imm.hi().value) {
or32(imm.hi(), dest.high);
}
}
void MacroAssembler::xor64(Imm64 imm, Register64 dest) {
if (imm.low().value) {
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 3
}
if (imm.hi().value) {
xor32(imm.hi(), dest.high);
}
}
void MacroAssembler:}
void or32(hi( high;
void MacroAssembler::or32(Imm32 imm,}
}
ma_orr(imm, srcjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
voidMacroAssembler:or32imm,const& java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
Sjava.lang.StringIndexOutOfBoundsException: Range [30, 22) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 45
ma_ldr(dest, scratch, scratch2);
ma_orr(imm, scratch, scratch2);
ma_strMacroAssembler:or32( ,Registersrc dest)
}
void MacroAssemblerma_orr(imm,src,dest, scratch);
void MacroAssembler::orPtr(Imm32 imm, Register dest) { orPtr(imm, dest, dest); }
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
scratch(*his;
ma_orr(imm, src, dest, scratch);
}
void MacroAssembler::and64(Register64 src, mscratch,dest, scratch2)
and32(src.low, dest.low);
and32(src.high,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
void MacroAssembler::or64(Register64 src, Register64 dest) {
(.,dest.ow);
or32ScratchRegisterScope scratch(this)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
and32srchigh, high)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
ma_eor(src.low, dest.low);
ma_eor(src.high, or32(src.low, dest.lo);
}
void MacroAssembler::xor32(Register src,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
src dest, SetCC);
}
idMacroAssembler::(imm dest xor32( destdest) }
void MacroAssembler::ma_eor(.,dest.igh)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
ScratchRegisterScope scratch(*this);
ma_eor(imm, src, dest, scratchma_eors,dest,SetCC);
}
void ::xor32(Imm32imm const Address&dest {
ScratchRegisterScope scratch(*this);
SecondScratchRegisterScope scratch2(*this);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ma_eor(mm, ,scratch2);
ma_str(scratch, dest, ScratchRegisterScope *)
m(imm,s, ,scratch, )java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [30, 22) out of bounds for length 38
scratch2(this)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
ma_ldr(src, scratch,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ma_eor(scratch, destjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 38
}
void MacroAssembler::java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
void MacroAssemblerjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
xorPtr(imm, dest, dest);
}
void MacroAssembler::orPtrImm32 imm src,dest){
ScratchRegisterScope scratch(*this);
ma_eor(imm, src, dest, scratch);
}
// ===============================================================
// Swap instructions
:Register){as_revshreg ) java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
void MacroAssembler::ScratchRegisterScope*)
as_rev16,,java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 34
as_uxth(reg
v MacroAssembler::byteSwap16SignExtend(Register reg) { as_revsh(reg, reg); }
void MacroAssembler::byteSwap32(Register reg
void MacroAssembler::byteSwap64(Register64 reg) {
as_rev16reg, reg;
as_rev as_uxth(reg,reg 0)
ScratchRegisterScope scratch(*java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
a_movreg.high,scratch);
ma_mov(reg.low, reg.high);
ma_mov(scratch, reg.low);
}
// ===============================================================
// Arithmetic functions
void MacroAssembler::add32(Register src, Register dest) {
,dest,SetCC)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
}
void MacroAssembler:ma_mov(.low,reg.;
ma_mov(java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 27
ma_add(imm, dest, scratch, SetCC);
}
void MacroAssembler::add32(Imm32 imm, Register src, Register // ===============================================================
ScratchRegisterScopescratch*)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
m( ,dest SetCC;
}
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 60
MacroAssemblerImm32 Register,Registerdest) {
ma_add(,imm, ,, );
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
a_str(cratch, scratch2);
}
void MacroAssembler:add32(Address srcjava.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 63
Sjava.lang.StringIndexOutOfBoundsException: Range [30, 22) out of bounds for length 38
SecondScratchRegisterScopema_ldr(,scratch scratch2);
ma_strs, java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 34
ma_add(scratch, dest, ScratchRegisterScope scratc;
}
MacroAssembler:(java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 79
void MacroAssembler::addPtr(Imm32 imm, Register dest) {
ScratchRegisterScope scratch(*this);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
void MacroAssembler::addPtrImmWord imm dest){
addPtr(Imm32(imm.value), dest);
}
void MacroAssembler::addPtr(Imm32 imm, const Address& dest) {
ScratchRegisterScope scratch(*this);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
scratch2
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 33
ma_str(scratch, dest, scratch2);
}
MacroAssembler:addPtrconstAddress&src dest){
ScratchRegisterScope scratch(*this);
SecondScratchRegisterScope java.lang.StringIndexOutOfBoundsException: Range [1, 37) out of bounds for length 1
ma_ldr(src, scratch, scratch2);
ma_add(scratch, dest, SetCC);
}
egister64src, {
ma_ldrdest scratch, scratch2)
ma_add( scratch,scratch2)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}
java.lang.StringIndexOutOfBoundsException: Range [19, 4) out of bounds for length 56
java.lang.StringIndexOutOfBoundsException: Range [30, 22) out of bounds for length 38
m( ;
as_adc(dest.high, dest.high, Imm8(0), LeaveCC)
}
void:add64Imm64java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 56
ScratchRegisterScope scratch(this);
ma_add( ScratchRegisterScope scratch(*his);
ma_adc ma_add(imm ,scratch;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ScratchRegisterScope(;
ScratchRegisterScope scratch(*this);
BufferOffset offset = imm.low) .low,scratch etCC);
,java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 43
return(getOffset()java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
}
void MacroAssembler::patchSub32FromStackPtr0) scratch, )java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
ScratchRegisterScope scratch(
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ter.maybeSkipAutomaticInstructions()java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
imm , lways,ARMFlags::( L_LDR,
iter);
}
void MacroAssembler:FloatRegistersrc FloatRegister {
ma_vadd(dest, src, dest);
}
void MacroAssembler::addFloat32(FloatRegister java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 21
voidMacroAssembler:addDouble(FloatRegister src java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 71
}
void MacroAssembler::sub32(Register src, Register dest)ma_vadd_f32( est)
ma_sub(src, dest, SetCC);
}
void
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ma_sub(imm, dest, cratchRegisterScopescratch(;
}
void :ub32const )java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
scratch(this;
, scratch2)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
ma_subjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
void MacroAssembler::subPtr(Register src, Register dest) { ma_sub(src, dest); }
voidjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 64
ScratchRegisterScopescratch*;
SecondScratchRegisterScope scratch2 SecondScratchRegisterScope scratch2(*this);
dest, ;
ma_sub(src, scratch);
ma_str(scratch, dest, scratch2 scratch,dest,scratch2);
}
mimm est java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 29
cratchthis;
ma_sub(imm, dest, scratch);
}
void MacroAssembler:Sscratch2(this;
ScratchRegisterScope scratch(*this);
SecondScratchRegisterScopema_ldr(addr, scratch,scratch2);
ma_ldr(addr, scratch, scratch2);
ma_sub(scratch, dest);
}
voidvoid :( egister64){
(.highhigh, high ;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
}
void MacroAssembler::sub64(Imm64 imm, Register64 dest) {
ScratchRegisterScope scratch(*this);
imm(,destlow scratch,SetCC);
(mmhi(,dest.,scratch ;
}
MacroAssembler:(loatRegistersrc
ma_vsub
}
MacroAssembler:java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 72
ma_vsub_f32(:Register,java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 60
}
:(java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 60
as_mul(ScratchRegisterScope *;
}
void MacroAssembler::mul32(Imm32 imm, Register srcDest) {
scratch(this;
move32(imm, scratch);
mul32(scratch, ScratchRegisterScope scratch*;
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ScratchRegisterScope,srcDestrhs
ma_umull
}
void MacroAssembler movePtrrhs ;
mulPtr(,srcDest)
}
voidvoid MacroAssemblerImm64 )java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
ScratchRegisterScope *his);
movePtr(rhs, scratch);
/java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
}
void MacroAssemblerjava.lang.StringIndexOutOfBoundsException: Range [37, 28) out of bounds for length 45
((java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 40
as_mul(dest.high, dest.high, scratch);
// + LOW(LOW(dest) * HIGH(imm)) [multiply dest into upper bits]
// + HIGH(LOW(dest) * LOW(imm)) [carry]
scratch(this;
SecondScratchRegisterScope scratch2(*this);
// HIGH(dest) = LOW(HIGH(dest) * LOW(imm));(., dest., O2Reg();
ma_mov( // HIGH(dest= LOWLOW() HIGH();
as_mul(dest.high, dest.high (value >>32 0xFFFFFFFFL)==5 {
// high:low = LOW(dest) * LOW(imm);
as_umullelse
// HIGH(dest) += high;
high dest.,O2Regscratch2))java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
// HIGH(dest) += LOW(LOW(dest) * HIGH(imm));
if (((void MacroA:mul64Imm64 Register64& dest,
as_add(scratch2, dest, ,);
}const
MOZ_CRASH("Not supported imm");
}
as_add(dest.high, dest.high, O2Reg(scratch2));
// LOW(dest) = low;
// HIGH32
}
void MacroAssembler::mul64(Imm64
const Register tempjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
=LOWL( ();(1)
// HIGH32 = LOW(HIGH(dest) * LOW(src)) [multiply src into upper bits] (2)
// + LOW(LOW(dest) * HIGH(src)) [multiply dest into upper bits] (3)
// + HIGH(LOW(dest) * LOW(src)) [carry] (4)
MOZ_ASSERT(temp != dest.high && temp != dest.low);dest.java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
*)
constRegister temp){
ma_mul(dest.low // LOW32 = LOW(LOW(dest) * LOW(src)); (1)
ma_add(dest.high, temp, temp);
ma_umull(dest.low, .low(,dest. dest.low, scratch;
ma_add(temp, dest.high, dest.high);
}
MacroAssemblerc , ,
const Register temp) {
// LOW32 = LOW(LOW(dest) * LOW(src)); (1)
java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
// + LOW(LOW(dest) * HIGH(src)) [multiply dest into upper bits] (3)
// + HIGH(LOW(dest) * LOW(src)) [carry] (4)
MOZ_ASSERT(dest != src);
MOZ_ASSERT( java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 37
// Compute mul64
a_mul(., low java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 48
ma_add dest;
ma_umull(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ma_add(temp, dest.high, dest.high);
}
void MacroAssembler::mulBy3(Register src, java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 27
as_addjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 60
}
void MacroAssembler::mulFloat32(FloatRegister src, FloatRegister dest) {
ma_vmul_f32(dest, java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 42
}
void MacroAssembler:: MacroAssembler::quotient32:(lhs ,Register
a_vmul(dest, src, dest);
}
:mulDoublePtr(ImmPtr imm, temp,
FloatRegister dest) {
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 38
ScratchDoubleScope scratchDouble}
movePtr(imm, scratch);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mulDoublescratchDouble,dest)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}
void MacroAssembler::quotient32(Register lhs, Register rhs, Register dest,
MOZ_ASSERT(:);
lhs, , cratch)
if (){
ma_udiv(lhs, rhs, dest);
} else {
a_sdiv(, rhs dest);
}
}
void MacroAssembler::remainder32(void MacroAssembler::divFloat32(FloatRegister src, FloatRegister dest) {
bool isUnsigned) {
MOZ_ASSERT(ARMFlags::HasIDIV());
ScratchRegisterScope scratch(*this);
if (isUnsigned) {
ma_umod(lhs,rhs,dest, scratch);
} else {
ma_smod(lhs, rhs, dest, scratch);
}
}
void MacroAssembler::java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
ma_vdiv_f32(dest, src, dest);
}
void MacroAssembler::ma_vdiv( rc ;
ma_vdiv(java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 1
}
void MacroAssembler::inc64(AbsoluteAddress dest) {
ScratchRegisterScope scratch( *;
ma_strd(r0, r1, EDtrAddr(sp, ma_strd(r0, r1, EDtrAddr(sp, EDtrOffImm),PreIndex;
((int32_t).) scratch);
ma_ldrd(EDtrAddr(scratch, EDtrOffImm(0)), r0, r1);
as_add(r0, r0, Imm8(1), SetCC);
as_adc(r1, r1, Imm8(0), as_add(r0, r0, Imm8(1), SetCC
ma_strd(r0, r1, EDtrAddr(scratch, EDtrOffImm(0)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ma_ldrd(EDtrAddr(sp, EDtrOffImm(8)) ((sp DtrOffImm(8) ,r1 )
}
void MacroAssembler
void(Register64reg{
as_rsb
.java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 38
}
oid MacroAssembler::negPtr(Register reg) { neg32(reg); }
void MacroAssembler:
voidMacroAssembler::negateFloat(FloatRegister reg) {ma_vneg_f32(reg,reg);}
void MacroAssembler::abs32(Register src, Register dest) {
(0))java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
as_rsb(dest, src, Imm8(0), LeaveCC, LessThan);
if
dest,src) , java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 58
}
}
void MacroAssembler::absFloat32(FloatRegister src, FloatRegister dest) {
ma_vabs_f32(src, dest);
}
void MacroAssembler:(loatRegister src, FloatRegister dest) {
ma_vabs(src, dest);
}
void MacroAssembler::java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 20
ma_vsqrt_f32(src, dest);
}
void MacroAssembler::sqrtDouble(FloatRegister src,dest){
ma_vsqrt(src, dest);
}
void MacroAssembler::void MacroAssembler::absFloat32 rc ) java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
minMax32(,r,dest, /* isMax = */ false);
}
void void MacroAssembler::absDouble(FloatRegister src, FloatRegister dest) {
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
void}
minMax32(lhs
}
void MacroAssembler::max32(Register lhs, Imm32 rhs, Register dest) {
minMax32(lhs, rhs, dest, /* isMax = */ true);
}
a_vsqrt(rc dest)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
minMax32(,r dest /* isMax = */ false);isMax=* );
}
voidMacroAssembler:minPtr(Register lhs, mmWord rhs dest{
minMax32(lhs, Imm32(rhs.value
}
void MacroAssemblerl ,/* isMax = */ false);
minMax32(lhs, rhs, dest, /* isMax = */ true);
}
true)
minMax32(lhs, Imm32(rhs.value), dest, /* isMax = */ true);
}
void MacroAssembler::minFloat32(FloatRegister other, FloatRegister srcDest,
bool handleNaN)void MacroAssembler::max32(Register lhs, Imm32 rhs, Register dest)java.lang.StringIndexOutOfBoundsException: Range [68, 69) out of bounds for length 68
m(srcDest, other,handleNaN false;
}
void (,rhs, ,/java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
bool handleNaN) {
srcDest,handleNaN,)
}
java.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 75
boolvoidMacroAssembler:Register ,Register hs,Registerdest java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
minMaxFloat32(srcDest, other, handleNaN, true);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
(java.lang.StringIndexOutOfBoundsException: Range [50, 44) out of bounds for length 74
bool handleNaN) { , );
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
// ===============================================================
// Shift functions
void:FloatRegister ,FloatRegister srcDest,
lshiftPtr(imm, dest, dest);
}
void MacroAssembler::lshiftPtr(Imm32 imm, Register src, Register dest) {
(0 <= imm.alue&& imm.value 32)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
ma_lsl(imm, src, dest);
}
void MacroAssembler:lshiftPtr(src, dest){
ma_lsl(src, dest, dest);
}
void MacroAssembler::flexibleLshiftPtr(Register shift, Register srcDest) {
flexibleLshift32(shift, srcDest
}
void MacroAssembler// Shift functions
( < .& .value< )
if lshiftPtr(,dest, dest;
return
}
(imm.java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 23
as_mov(dest ma_lsl( ,dest);
as_orr(dest.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
as_mov(dest.low, lsl(dest.low, imm.value));
} else {
as_mov(dest.high, lsl(dest.low, imm.value
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
}
void java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/
// shift Note: one of the two dest.low shift will always yield zero due to
// negative shift.
as_andijava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 23
a(.,desthigh );
as_sub a(low(.low immvalue)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
adest.high,dest.high,lsl(dest.,shift))
shift
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
as_and// dest.high = dest.high << shift | dest.low << shift - 32 | dest.low >> 32 -
as_mov(est.low lsl(dest.ow, );
}
voidMacroAssembler::lshift32(Register src, Registerdest){
ma_lsl(;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
void MacroAssembler::flexibleLshift32(Register src, Register dest) {
scratch(*this);
scratch (0x1Fx1F);
as_and(shift, unmaskedShift, Imm8(0x3f));
}
void MacroAssembler::lshift32(Imm32 imm, Register dest) {
lshiftPtr(imm, dest, dest);
}
voidMacroAssembler::lshift32(Imm32 imm,Registersrc, Register dest java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
lshiftPtr
}
void MacroAssembler:rshiftPtr(Imm32 imm, dest){
rshiftPtr(imm, dest, dest);
}
void MacroAssembler::rshiftPtr(Imm32 imm, Register src, Register dest) {
MOZ_ASSERT(0 <=
imm.value) {
ma_lsr(imm, src, dest);
}
}
void lshiftPtr(,dest,dest)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
void MacroAssembler::flexibleRshiftPtr(Register shift, Register srcDest) {
flexibleRshift32(shift, srcDest);
}
void MacroAssembler:Register src,Register dest){
ma_lsr(
}
void
ScratchRegisterScope void MacroAssembler:rshiftPtr(imm,Register dest) {
as_and(scratch, src, Imm8(0x1F));
scratch, dest);
}
void void MacroAssemblerjava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 72
rshiftPtr(,dest java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 29
}
void}
rshiftPtr
}
:rshiftPtrArithmeticImm32 imm,dest){
rshiftPtrArithmetic(imm, dest, dest);
}
void MacroAssembler:(Imm32 imm,Register src,
Register dest) {
MOZ_ASSERT(0 <= imm.value && imm.value < 32);
if (imm.value) {
ma_asr(imm, src, dest);
}
}
void MacroAssembler::rshiftPtrArithmetic(Register src, Register dest) {
ma_asr(src, dest, dest);
}
void MacroAssembler::flexibleRshiftPtrArithmetic(Register shift,
Register srcDest) {
flexibleRshift32Arithmetic(shift, srcDest);
}
void MacroAssembler::rshift64Arithmetic(Imm32 imm, Register64 dest) {
MOZ_ASSERT(0 < imm.value & .value );
if (! * Licensevoid, ;
return;
}
MacroAssemblerjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
as_orr(dest
as_mov(dest.high, asr(dest.void
} else (,,dest);
as_mov(dest.low, O2Reg(dest.high));
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}mjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 51
}
}
void ::
java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 58
p;
// dest.low = dest.low >>> shift | dest.high <<< 32 - shift
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/ dest.low |= dest.high >>> shift - 32
void MacroAssembleri (mmvalue{
// right shift. Therefore we need to test for it and only do it ifma_vxfer(java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 3
isntnegative.
java.lang.StringIndexOutOfBoundsException: Range [36, 2) out of bounds for length 36
_(shift,unmaskedShiftImm8(0f))java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
dest,lsrlow ))java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
(32)
destv:lexibleRshiftPtrArithmetic(egistershiftjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
ma_negshift,SetCC;
ma_b(&proceed, Signed);
as_orr(dest.low dest.low,asr(high shift);
bind( src.low,
as_and(shift, unmaskedShiftvoid sc !d. java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
esthigh (esthigh );
}
void
ma_asr(src, dest, dest);
}
voidMacroAssembler:rshift32Arithmeticimm,Register est) {
rshiftPtrArithmeticimm dest,dest)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
bler:rshift32Arithmetic( java.lang.StringIndexOutOfBoundsException: Range [46, 1) out of bounds for length 1
dest{
rshiftPtrArithmetic(imm, java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 24
}
void MacroAssembler::java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 31
cratchRegisterScopescratch(this)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
scratch,src,Imm80)
( s_mov. (.)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
move16SignExtendsrc ;
msrc dest;
.value <)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
// Load instructions
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 3
return;
rshift64ArithmeticRegisterjava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
voidMacroAssembler:Register {java.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 16
, lsrdestlow imm.value)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
}
as_mov(dest.high, lsr(dest.high, imm
lue 32 java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
dhigh dest.low;
ma_mov(Imm32(0), dest.high);
} else/java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
ma_lsr ma_and(imm / it isn't negative.
( ScratchRegiste scratch(this);
}
}
(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/
// shift Note: one of the two dest.high shifts will always yield zero due to
/ negative shift.
ScratchRegisterScope shift(* ScratchRegisterScope scratch(*thma_neg(shift, shiftSetCC)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
shift,unmaskedShift (0x3f)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
as_mov(desta scratch dest ;
s_sub(,shift,())java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
s_orr(low (shift, unmaskedShift Imm8(03);
(shift shift; java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [49, 8) out of bounds for length 52
ma_and(imm,, scratch)
java.lang.StringIndexOutOfBoundsException: Range [2, 0) out of bounds for length 0
// ===============================================================
// Rotate functions
java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 0
(imm(,destjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 31
ejava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
{
}
}
: if.(.value
ScratchRegisterScope ScratchRegisterScope scratch)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
count , scratch;
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
void MacroAssemblerScratchRegisterScope (this);
Register64 dest
MOZ_ASSERT(temp == InvalidReg);
=high&java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 63
.value &0java.lang.StringIndexOutOfBoundsException: Range [34, 19) out of bounds for length 19
>) java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
(ifimm< {
}else {
(this
=){
ma_mov(ScratchRegisterScope)java.lang.StringIndexOutOfBoundsException: Range [38, 39) out of bounds for length 38
ma_mov(input.high, dest.high);
a_mov(0, dest.high)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
ma_movI(.value- ) desthigh,dest. (src. low)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
(.}
ma_mov(scratch, dest.ma_eorsrc,java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 1
} else {
MOZ_ASSERT(0 amount && 32;
void MacroAssembler::rshift64 unmaskedShiftjava.lang.StringIndexOutOfBoundsException: Range [72, 64) out of bounds for length 72
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 48
as_orr(dest.high, // shift Note: one of the ScratchRegisterScopescratchthis);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
as_orr(dest.low, dest.low, lsr(scratchScratchRegisterScope (S scratch2this)
md,scratch,scratch2)
}
oidScratchRegisterScope *);
dest,Registerma_neg(shift shift;
(! )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MOZ_ASSERT . ! srchigh;
!= src.high;
MOZ_ASSERT(temp ! InvalidReg)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 42
Labeljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/
void MacroAssembler( ,java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 77
( ma_rol(count, input, d
ma_b(&high}else{
// high = high << shift | low >> 32 - shift
reglow java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 1
as_rsb(shift_value,shift_value, Imm8(32));
as_orr(dest.high,destScratchRegisterScope scratch(*this);
ma_rol(input dest scratch)
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
as_rsb(shift_value, shift_value, Imm8(32));
as_orrdest.// ==============java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
&);
/
&high;
as_rsb(shift_value,ScratchRegisterScope scratch(*this MOZ_ASSERTinput. ! dest. & nputhigh MOZ_ASSERT(input.low != dest.high && input.high
as_movm amountc.03f;
as_rsb(shift_value, shift_value, java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 1
,lsl(. java.lang.StringIndexOutOfBoundsException: Range [57, 55) out of bounds for length 58
as_rsb3)
(dest..low, low;
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 1
void :add32(const Address&src java.lang.StringIndexOutOfBoundsException: Range [0, 55) out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 14
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
acroAssembler:(Imm32 count,Registerinput, Register dest){
if (count.value) {
java.lang.StringIndexOutOfBoundsException: Range [16, 10) out of bounds for length 31
elsejava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
void MacroAssembler java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
:rotateLeft64Register hift Register64 src
ma_ror(count, input,dest;
void MacroAssembler::rotateRight64(src ==)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
MOZ_ASSERT( .& != src.high);
( InvalidReg;
ma_add( ,SetCC)
java.lang.StringIndexOutOfBoundsException: Range [30, 9) out of bounds for length 38
ma_add(low destlow,SetCC;
rotateLeft64(Imm32(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
} else {
scratch*)
if (amount == 0) {
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 34
(high .);
}elseifa=& ;
ma_mov(inputjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ma_mov(input.high, ma_addimm.(), // low = low << shift
, ())
sjava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 38
&amount )
noffsetgetOffset)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
as_movdest.,( amount)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
(.java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 63
(java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 46
ma( Always,ARMFlags:) java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
}
}
}
void MacroAssembler
ajava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
MOZ_ASSERT(shift != tempjava.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 26
MOZ_ASSERTtempa(.java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 46
MOZ_ASSERT(shift !=as_rsb( java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 1
MOZ_ASSERT(emp!java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1
Label
.high );
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
as_cmp( {
ma_bvoid Macro:subPtrImm32 java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 55
// high = high >> shift | low << 32 - shift
java.lang.StringIndexOutOfBoundsException: Range [57, 44) out of bounds for length 44
Secondjava.lang.StringIndexOutOfBoundsException: Range [37, 28) out of bounds for length 45
as_rsb(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
as_orr(.igh
as_rsb(.,dest.;
, lsrlowshift_value;
as_rsb(ma_sub(imm.low) destlow,scratch, )java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
as_orr(low ,lsl(emp java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ma_b&done;
ftis 0-shiftinthe irection
bind(&high);
as_rsb(shift_valuejava.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
as_mov(dest.high, lsl(src.high, shift_value)java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 23
s_rsbshift_value 32))
dest.dest.high.,shift_value)
as_rsb(shift_value, shift_value, Imm8(32));
as_mov(dest.low, lsl(src.low, shift_value));
_(shift_value,shift_value, Imm8(32));
java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 14
}
// ===============================================================
// Condition functions
void // HIGH32java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
Register dest) {
ScratchRegisterScope
SecondScratchRegisterScope MacroAssembler::rotateRight64(Register, java.lang.StringIndexOutOfBoundsException: Range [65, 65) out of bounds for length 48
Sscratch2((hift tempjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
bool isSigned;
imm0;
(cond){
case Assembler: scratch2 scratch dest. scratch;
case Assembler::NotEqual:
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
case Assembler::AboveOrEqual:
case Assembler::Below:
ases_add(,destlow dest., 2);
isSignedjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 41
dest..,();
break;
case Assembler::GreaterThanjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
aseAssembler::GreaterThanOrEqual:
case constRegister temp) {
java.lang.StringIndexOutOfBoundsException: Range [18, 8) out of bounds for length 36
as_rsb(shift_value,shift_value, Imm8(32));
imm = Imm32(int8_t(rhs.value));
break;
MOZ_CRASH(unexpectedcondition")
}
ma_dataTransferN(ScratchRegisterScope scratch(*this);
scratch2)ma_mul(dest.imm) dest.high,scratch);
ma_cmp(scratch imm scratch2;
emitSet(cond, ma_add(dest.hijava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
void MacroAssembler::cmp16Set(Condition cond, java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
as_mov/
// + LOW(LOW(dest) * HIGH(src)) [multiply dest into upper bits] (3)
// Inlined calls to load16{Zero,Sign}Extend() and cmp32Set() to acquire
// exclusive access to scratch registers.
bool isSigned;
Imm32 imm(/java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
d {
case Assembler::Equal:
Assembler:NotEqual
a(mdest.low src.,dest.high, dest.low); // (4) + (1)
Assembler:
case Assembler:Below:
case Assembler::void MacroAssembler::mulBy3(Register src, Register dest) {
isSignedjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
imm = Imm32(uint16_t(// ===============================================================
break;
case Assembler::GreaterThan:
AssemblerGreaterThanOrEqual:
case
:LessThanOrEqual s;
SecondScratchRegisterScopeFloatRegister java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
imm = Imm32 // Inlined calls t {eroSign}()and mp32Set()
break;
default:
MOZ_CRASH("unexpected condition");
ma_dataTransferN(IsLoad, 16, isSigned,case::Equal boolisUnsigned) {
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 34
ma_cmpAssembler::tEqual::
emitSet(cond, dest);
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
template typenamejava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
Assembler:::
cmp32(lhs, rhs);
emitSet(cond, dest);
}
break;
if(. = |lhsjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 64
rhs.low == dest) {
cmp64SetAliased(cond, lhs, java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 10
cmp64SetNonAliased(ond,lhs,}
}
}
MacroAssembler::cmp64Set(Condition cond, Register64 lhs, Imm64isSigned = true;
imm Imm32(nt8_t(s.)
if java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 0
(cond == ScratchRegisterScope )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
cmp32Set(ma_ldrdjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 52
ma_cmpscratch,,scratch2)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
} else {
cmp64SetNonAliased(cond, lhs, rhs, dest);
}
}
void:cmp64Set( ,java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 45
Register java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 0
if (lhs.base == dest || rhs.high == dest || rhs.low == dest) // exclusive access to scratch registers.
cmp64SetAliased(condas_rsc(regImm32 (00;
} else {
cmp64SetNonAliased(cond, lhs, rhs, dest);
}
}
void:(,lhs Imm64 rhs,
src, java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
if (lhs.base){case:
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 3
MacroAssembler:absFloat32(FloatRegister src,FloatRegisterdest
cmp64SetNonAliased(cond, lhs, rhs, java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 32
}
}
template
case ::LessThanOrEqual:
cmpPtrl java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 22
emitSet(cond, dest);
}
// ===============================================================
// Bit counting functions
void MacroAssembler::clz32(Register src, Register dest, minMax32(hs rhs, java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
ma_clz(src, dest) ma_dataTransferN(IsLoad, inMax32(lhsrhsdest /* isMax = */ false);
}
voidMacroAssembler: minMax32(java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Range [22, 22) out of bounds for length 0
ma_clz(src.high, scratch);
cratch template ypenameT1 typename >
ma_mov(
void:cConditionminMax32(lhs, rhs, dest, /* isMax = */ false
as_add emitSet(cond, dest(, )
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
er dest, boolknownNotZero)void MacroAssembler::ctz32(Register src, Register dest, bool knownNotZero)
java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 0
ma_ctz((cond (.) dest /* isMax = */ true);
}
ter64 src,dest java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
done,high;
as_cmp(src inMaxFloat32srcDest,otherhandleNaN, false);
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
srclow ){
ma_b(&done)java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 1
bind(&high);
ctz32(rchigh low, /* knownNotZero = */ false);
as_add(dest.low, dest.low, Imm8
bind(&done);
ma_mov(Imm32(0), dest.high);
cDest other, handleNaN true)
void MacroAssembler::popcnt32(Register input, Register
// Equivalent to GCC output of std::popcount()
ScratchRegisterScope scratch(*void MacroAssembler:lshiftPtrImm32 imm,Registerdest) {
f mp64SetAliased(cond lhs, rhs java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 10
}
);
),tmp,scratch;
ma_sub(java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
as_mov( :mp64SetCondition, Address lhs,Register64rhs,
Imm32(),scratch)
ma_and(scratch,
a_and(,;
ma_add(output, lexibleLshift32( terdest)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
as_add(output, output, lsr(idacroAssembler:( , Register64dest){
ch);
as_add.=0){
as_add(output, cmp64SetAliased(cond java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 11
as_mov(output, asr(output, 24));
}
void MacroAssembler:destlow lsldest.lowimm.alue);
MOZ_ASSERT(java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 53
MOZ_ASSERT(dest.high != tmp);
MacroAssembler:unmaskedShift{
// The source and destination can overlap. Therefore make sure we don't
// clobber the source before we have the data.
ifdestlow!. {
}lse
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 45
} else {
,java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 53
as_and ())java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
}void:void MacroAssembler::cmpPtrSetshift)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
void MacroAssembler::lshift32(Register src, Register dest) {
ma_mov(Imm32(0), dest.high);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
// ===============================================================
// Branch functions
void MacroAssembler::branch8(Condition java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 26
Label* labelvoid::lshift32imm,Register est {
ScratchRegisterScope scratch lshiftPtr(mm, dest, dest)java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
SecondScratchRegisterScope scratch2(*this);
load8Zero,}xtend)abranch32) acquire
// exclusive access to scratch registers.
booljava.lang.StringIndexOutOfBoundsException: Range [16, 17) out of bounds for length 16
imm0)java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
cond) {
ma_mov java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
ase :NotEqual:
ejava.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
case java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
Assembler:::
ase :BelowOrEqual
isSigned = false
mm32uint8_trhsvalue))java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
break;
case Assembler
:java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29 | |