Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/js/src/jit/arm/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 87 kB image not shown  

Quelle  MacroAssembler-arm-inl.h

  Sprache: C
 


(, destjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
scratch);

#ifndef java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 1
r_arm_inl_h

#include "jit/arm/MacroAssembler-arm.h"

    java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0

//{{{ check_macroassembler_style

void MacroAssemblerr(mm src dest)java.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 28
  move32(src.low, dest.low);
  move32(src.high, dest.high);
}   }elsejava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

void MacroAssembler::move64(Imm64 imm, Register64 dest) {
  ove32Imm32(. & java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
  voidMacroAssembler::
}

void MacroAssembler::                                         dest) {
  ma_vxfer(src, dest);

  // Ensure the hi-word is zeroed.
         Register Label roceed;
}

voidjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  // Ensure the hi-word is zeroed.
  as_uxth(src, src, 0);

  ma_vxfer(src, dest);
}

void MacroAssembler::moveFloat32ToGPR  MOZ_ASSERT(0/
  ma_vxfer(src, dest);
}

  i. java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
  ma_vxfers}
}

void MacroAssembler::move8ZeroExtend(Register src, Register dest) {
  as_uxtb(  as_uxtb(dest' .
}

void MacroAssembler::  ScratchRegisterScope shift(*this);
  as_sxtb(dest, src, 0);
}

void java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
  voidand , (x3);
}

void :moveDoubleToGPR64(FloatRegisteras_mov(.low .java.lang.StringIndexOutOfBoundsException: Range [33, 31) out of bounds for length 41
  ma_vxfer(src, dest.  as_rsb(shift, shift, Imm8))
}

void MacroAssembler  as_orr(dest.void MacroAssembl::lexibleRshiftPtrArithmetic shiftjava.lang.StringIndexOutOfBoundsException: Range [64, 65) out of bounds for length 64
  src  shift  )
}

void MacroAssembler::java.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 25
  ma_vxfer(src,
}

void MacroAssembler::as_orrdest.,destlow dest.,shift)
  if   java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
       move32(.low,
  }
}

void java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
r=estlow) java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
    move32(, dest.low)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
  ((. sr.high,shiftjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
  move32}
}

void MacroAssembler:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  as_sxtb(dest.low, src,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ma_asrjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

void MacroAssembler::move16To64SignExtend MacroAssembler:(Imm32 , d){
  as_sxth(dest.low, src, 0);(,dest est);
  ma_asr(Imm32(31), dest.low, dest.high)    as_mov(java.lang.StringIndexOutOfBoundsException: Range [15, 1) out of bounds for length 1


void MacroAssembler::move32To64SignExtend(Register adesthigh,asrdest           
  if (src != dest.low) {
    move32(src, java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
  }java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 31
  ma_asr(Imm32(31cratchRegisterScope *this;
}

void MacroAssembler::move8SignExtendToPtras_and(  (0x1F));
  rshift32Arithmetic    (owOReg)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
}

void MacroAssembler::move16SignExtendToPtr(Register src, Register dest) {
  move16SignExtend(,dest);
}

void MacroAssembler::move32SignExtendToPtr(Register java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ove32(src, dest);
}

void MacroAssembler::  MOZ_ASSERT(0 <= imm.value && imm<64;
  move32(src, dest);
}

// ===============================================================
// Load instructions

void MacroAssembler::java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 19
  load32(srcjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
}

void  idMacroAssembler:Register ,

// ===============================================================
// Logical instructions

void MacroAssembler::not32(Register reg

 MacroAssembler:notPtr(Register reg)   Label proceed;

void     as_mov(dest.low(est.,value);
  ma_and(src, dest, SetCC);
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1

void  } else if (imm.va =32){

void MacroAssembler::and32(Imm32 imm, Register src,   /   dest.low |= dest.high >>> shift - 32ma_mov(est.,destlow)
  java.lang.StringIndexOutOfBoundsException: Range [74, 7) out of bounds for length 74
 /
}

void MacroAssembler::and32(Imm32 imm, const Address& dest) {
rScope*java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 38
  SecondScratchRegisterScopejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  ma_ldr(dest, scratch, as_mov(dest.low, lsr(dest.low,);/
  // shift Note: one of the two dest.high shifts will always yield zero due to
  ma_str  
}

void MacroAssembler::and32java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
  ,java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
   * (shiftjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 43

  java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
(java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 31
}

as_subshift, ,Imm832;java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

void MacroAssemblera(destlow,  java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 43
  andPtr(imm,ma_neg(shift,)
}

void MacroAssembler::andPtr(Imm32 imm, as_orr(dest.low, dest.low, lsl(dest.high, shift));
  ScratchRegisterScope scratch(*this);
(, ,dest,)
}

void java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
  if 
    and32(imm.low(),   ma_asr(src, dest, dest)
  }
  // ========================}
    and32(imm.hi(), dest.high);
  }
}

void MacroAssembler::or64(Imm64 imm, Register64void java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
  if (mm.low().) {
    or32.low() dest.low);
  }
  if   (, dest,dest);
    or32(imm.hi(), dest.high)    ma_rol(count, input, dest);
  }
}

void MacroAssembler::xor64(Imm64 imm, Register64 dest  } lse{
  if (imm.low().value) ;                          dest java.lang.StringIndexOutOfBoundsException: Range [56, 57) out of bounds for length 56
    xor32(java.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 0
  }
  if (imm.i().){
    xor32(imm.hi(), dest  ScratchRegisterScope   ScratchRegisterScope scratchthis;
  }
}

 :Registersrc,Register java.lang.StringIndexOutOfBoundsException: Range [0, 53) out of bounds for length 38

void MacroAssembler::or32(Imm32 imm}

voidMacroAssembler::or32(Imm32 imm, java.lang.StringIndexOutOfBoundsException: Range [0, 45) out of bounds for length 0
  ScratchRegisterScope scratch(*java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 38
                                  dest
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1

void MacroAssembler: i..   input.high ! destlow);
  ScratchRegisterScope scratch MOZ_ASSERT(0 <= imm.value && imm.value < 64);
  int32_t amount = countvalue  java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 19

  ma_ldr(dest, scratch, scratch2);
    (amount  32)
  ma_str(scratch, dest, scratch2);
}

void rotateRight64(Imm32(   (.  {

void }  java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

void MacroAssembler::orPtr(Imm32 imm, Register src ount  0 java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
scratch(;
  ma_orr(imm, src, dest, scratch);
}

void MacroAssembler}else if(.value == 32 java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
  and32(src.lowmImm320) desthigh);
  and32(src.high} {
}

    (java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 55
  java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 26
  or32(src.high, dest.high);
}

void MacroAssembler::xor64(Register64       ma_mov(input.java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 3
  (.low  
  ma_eor(src.high, dest.high);
}

void MacroAssembler::xor32(Register src, Register dest) {
&amount<;
}

void MacroAssembler::      ma_mov(dest.high, scRegister,Register64 dest) {

void MacroAssembler::xor32(Imm32 imm, Register src, Register  /.,d ;
   ;
  ma_eor(imm, src, dest, scratch, SetCC);
}

void// negative shift.
  ScratchRegisterScope scratch(*java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
 econdScratchRegisterScopescratch2(this)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45

  a_ldr(est scratch, ;
  as_mov(  
  ma_str(scratch, dest, scratch2);
}

void MacroAssemblerjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   this);
  SecondScratchRegisterScope scratch2(*Register64dest ,shift;

  ma_ldr(src, scratch, scratch2);
  ,dest java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
}

as_andshift, unmaskedShift, Imm80x3f);  (temp =java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 50

void MacroAssembler::xorPtr(MOZ_ASSERT(shift != src.low && shift.high)
  xorPtr(!;
}

oid MacroAssembler::xorPtr(Imm32 imm, Register src, Register dest) {
  ScratchRegisterScope scratch(*thisScratchRegisterScope shift_value(*this);
  ma_eor(imm, src, dest, scratch);
}

// ===============================================================
// Swap instructions

void MacroAssembler::  / Rotate functions

voidvoid::rotateLeft(Imm32 count Register input, Register dest) {
  as_rev16(, ;
    as_cmpshift_value,    ma_rol(count, input, d)java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
}

void java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0

voidMacroAssembler:byteSwap64( )
  as_rev(reg.high, reg.high);
  as_rev(.low,reg.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

  ScratchRegisterScope scratch(*this);
  ma_mov( shift_value java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 45
  ma_mov  dest.  java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 38
  ma_mov(scratch, reg.low);  ma_rolcount   
}

// ===============================================================
// Arithmetic functions

void MacroAssemblerjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  ma_add(src, dest
}

void MacroAssembler  / A 32 - 64 shift is a 0 - 32 shift in the other direction.temp = InvalidReg  bind(&;
  this(java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 63

}

void MacroAssembler::add32(Imm32 imm, Register src, Register dest) {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  a_add  nt32_t amount  value  xfjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
}

void MacroAssemblerif (mount >32 
  ScratchRegisterScope scratch(*this    as_orr(dest.highdest. java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 58
  ScratchRegisterScope scratch(*this);

  ma_ldr(dest, scratch, scratch2);
  as_rsbshift_value,Imm82);
  ma_str(scratch, dest,as_mov(dest.java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 34
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 1

MacroAssembler:const ,java.lang.StringIndexOutOfBoundsException: Range [0, 55) out of bounds for length 33
  java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 38
  java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 14

  java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 33
  a_add(java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 1
}

void       ma_movvoidacroAssemblerrotateRightcount,

void ma_ror(count, input, dest);
  ScratchRegisterScope scratch(*this);
  ma_add(, dest,}  {
}

void as_orrhigh,java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  addPtr(Imm32(imm.value),as_orr(estjava.lang.StringIndexOutOfBoundsException: Range [1, 21) out of bounds for length 1
}

voidjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  ScratchRegisterScopev rotateLeft64RegisterRegister64srcjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
  SecondScratchRegisterScope,input )

  
  ma_add(imm,java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
MOZ_ASSERT((=)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
}

shift!&java.lang.StringIndexOutOfBoundsException: Range [40, 38) out of bounds for length 52
  ScratchRegisterScope scratch(*this);
  SecondScratchRegisterScope (temp= InvalidReg);

  ma_ldr(src, scratch, scratch2);
  scratch,dest )
}

void   ScratchRegisterScopeint32_t amount = count.value &0;
src.,dest. )
  ma_adc(src.  Label high, don;
}

void java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
  ScratchRegisterScopema_mov  tchRegisterScopethisjava.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
  ma_add(imm,  as_and(shift_value, shift,Imm8a_movinput.low,dest.);
  as_adc(dest.high, dest. minput.high,destigh)
}

void MacroAssembler     else if (mount =ma_b&,java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
  // high = high<shift |low> 32 -shift
  (mm.low(),dest|
  ma_adc(imm.hi(), dest.high, scratch, LeaveCC);
}

CodeOffset java.lang.StringIndexOutOfBoundsException: Range [42, 39) out of bounds for length 45
Sjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 38
  BufferOffset offset = ma_movPatchable
  ma_sub(getStackPointer(), scratch, dest)as_rsb(  as_rsb(shift_valueamount &  <32;
getOffset(;
}

voidMacroAssembler::(CodeOffset      as_mov(desthigh, srdest.high amount))java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
   scratch*     as_orrdesthigh, dest.high, lsl(dest.low, 32 - amount));
  BufferInstructionIterator iter(BufferOffset(offset.offset()), &m_buffer      as_movdest.low, lsr(dest.low, amount));
  iter.maybeSkipAutomaticInstructions();
_i,scratch  ARMFlags:HasMOVWT()? L_MOVWT:L_LDR,
               iter);
}

void MacroAssembler::addDouble
  ma_vadd(dest, src, dest);  / A 32 - 64 shift is a 0 - 32 shift in the other direction.
}

void MacroAssembler::addFloat32(FloatRegister src, FloatRegister java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 45
  
}

void MacroAssembler::sub32(                                     as_rsb(shift_value, shift_value, Imm8(32));
  ma_sub(src,dest SetCC)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
}java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

void  s_rsb(, shift_value,Imm8(MOZ_ASSERT(src == dest);
  ScratchRegisterScope scratch(*this);
  ma_sub(imm, dest, scratch,  (temp  s_mov(destow lsr(. )java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
}

void MacroAssembler::sub32(const Address& src,aMOZ_ASSERT(emp!InvalidReg);
  ScratchRegisterScope scratch(*this);
  java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0

  ma_ldr(src, scratch}
  ma_sub(scratch, dest, SetCC);
}

void MacroAssemblervoid :

ma_movhigh,temp;
  ScratchRegisterScope scratch(*this);
  SecondScratchRegisterScope scratch2(*this);

  ma_ldr(dest, scratch, java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 31
  }lse{
  ma_str(scratch, dest, scratch2);
}

void:subPtr,Registerdest) java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
  ScratchRegisterScope
  ma_sub(imm
}

void MacroAssembler::subPtr(const Address& addr, Register
  ScratchRegisterScopescratch(*his;
  ScratchRegisterScope scratch2(*this);

  ma_ldr(addr, scratch, scratch2);
  ma_sub(scratch, dest);
}

void MacroAssembler::sub64(Register64 src, Register64 dest) as_orrdest.igh
  ma_sub(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
.high dest., LeaveCC
}

voidas_mov(dest.low lsr(rc.,shift_value));
  ScratchRegisterScope scratch(*this);
  (,dest. ,SetCC;
  ma_sbc(imm.hi(), dest.high, scratchjava.lang.StringIndexOutOfBoundsException: Range [37, 33) out of bounds for length 33
}

void MacroAssembler::subDouble(FloatRegister
  ma_vsub(dest  MOZ_ASSERT(mdone;
}

void java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
  ma_vsub_f32(dest, src, dest);
}

void MacroAssembler::mul32(Register rhs   amount >32ft 0 -32 shift inthedirection.
  as_mul(srcDest, srcDest, rhs);
}

void MacroAssembler::mul32(Imm32 imm, Register srcDest) {
  ScratchRegisterScope java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 10
  );
  mul32(scratch, srcDest);
}

m  (java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 45
  ScratchRegisterScope scratch(*this)r(, java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 58
   java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

  asrsb java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 45
  as_mul(, srcDest,rhs);
}

void bind(&done);
  ScratchRegisterScope scratchMOZ_ASSERT(  mount}
  movePtr(rhs, scratch);

}

void MacroAssembler::mul64      as_orr(.highhigh, high,lsldest. Condition functions
  as_mov(dest.low, lsr(dest.low, amount));
   = LOW(HIGH(dest) * LOW(imm)) [multiply imm into upper bits]dest .,java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 60
  //        + LOW(LOW(dest) * HIGH(imm)) [multiply dest into upper bits]


  ScratchRegisterScope                               dest egistertemp {
  econdScratchRegisterScope   hift!temp;

  // HIGH(dest) = LOW(HIGH(dest) * LOW(imm));
  i. java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  as_mul(destMOZ_ASSERTtempImm32 imm()

  MOZ_ASSERT(shift != src.low && shift != src.high);  switchcond 
  as_umull(cratch2,scratch,destlow,scratch)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49

  case Assembler::Above:
  as_add(dest.high, dest.high, O2Reg(scratch2));

  // HIGH(dest) += LOW(LOW(dest) * HIGH(imm));
  if (((imm.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
ajava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 49
  } else {
    isSignedvalue ,Imm80))
  }
ddhigh java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 48

  // LOW(dest) = low;
  java.lang.StringIndexOutOfBoundsException: Range [16, 8) out of bounds for length 28
}

voidc java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 39
              java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 49
// case Assembler:LessThanOrEqual:
  // HIGH32 = LOW(HIGH(dest) * LOW(src)) [multiply src into upper bits]   (2),java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 45
  //        + LOW(LOW(dest) * HIGH(src)) [multiply dest into upper bits]  (3)
  //        + HIGH(LOW(dest) * LOW(src)) [carry]                          (4)

  MOZ_ASSERT(

  // Compute mul64
  java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 38
  a_mul(.high .low(, ;// (2)
  (estlow, ( java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  gh,
  ma_umull(dest  a_b(done;
  ma_add(temp, dest.high, java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
}

void MacroAssembler::mul64(const Register64& src, const Register64java.lang.StringIndexOutOfBoundsException: Range [66, 0) out of bounds for length 0
                           const Register temp  // A 32 - 64 shift is a 0 - 32 shift in the other direction.
   = LOW(LOW(dest) * LOW(src));                                  (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(dest != src);
  MOZ_ASSERT(dest.low != src.high && dest.high != src.as_rsbjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  / Compute mul64
    as_mov  as_mov(dest)java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  ma_mul(high,case:NotEqual
  ma_add(dest.high, temp, temp);
,low java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 65
  ma_addcaseAssemblerjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
}

java.lang.StringIndexOutOfBoundsException: Range [27, 4) out of bounds for length 58
  as_add(dest, src,}
}

void MacroAssembler::mulFloat32(FloatRegister src
  java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 39
}

voidcase :
  ma_vmul(dest, src, dest);


voidcaseAssembler:  ScratchRegisterScope scratch(*thi
){
  ScratchRegisterScope scratch(*this);
  java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 72

  movePtr(imm, scratch);
/ java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

void MacroAssembler::quotient32(Register s ()java.lang.StringIndexOutOfBoundsException: Range [17, 18) out of bounds for length 17
      boolisUnsigned))java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
  MOZ_ASSERT(ARMFlags::HasIDIV());
  if o:java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    ma_udiv(lhs, rhs}
  } else {
    case Assembler:Above:
  }
}

void MacroAssembler::remainder32(Register lhs, Register ::java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
                                 bool isUnsigned) java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 22
  MOZ_ASSERT(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 12

  ScratchRegisterScope scratch(*this);
  if isUnsigned lhs.=est l.low =dest | rhs. =dest |
    ma_umod(lhs, rhs, dest, scratch);
  } else {
    ma_smod(lhs, rhs, dest, scratchcaseAssembler:java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 10
  
}

void java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  ma_vdiv_f32(dest, void java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 72
}

voidRegister        =ihvalue)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
  ma_vdiv(dest, src, dest);
}

void :(java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 50
  e

  ma_strd(r0, r1, EDtrAddr(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  ma_mov(Imm32((int32_t)dest.addr), scratch);
  ma_ldrd(EDtrAddr(scratch, EDtrOffImm(0)), r0, r1) scratch2)

  as_add  ma_cmp( ,java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
  as_adc(r1, r1, Imm8(0), LeaveCCjava.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1

  ma_strd(r0, r1, EDtrAddr(scratch, java.lang.StringIndexOutOfBoundsException: Range [0, 46) out of bounds for length 45
  ma_ldrd(EDtrAddr(sp, EDtrOffImm(8)), r0, r1, PostIndex
}

void  MacroAssembler::Condition cond,Address lhs,   SecondScratchRegisterScopescratch2(this;

void MacroAssembler::neg64(  // Inlined calls to load16{ZeroSign}( and )acquire
  as_rsb(reg.low, reg.low, Imm8(0), SetCCjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  (regI (;
}

void     java.lang.StringIndexOutOfBoundsException: Range [27, 22) out of bounds for length 45

void

void case Assembler:NotEqualvoid:mp64SetCondition cond Address lhs,Imm64 rhs,

java.lang.StringIndexOutOfBoundsException: Range [39, 4) out of bounds for length 57
  as_cmp(src, Imm8(0));
  case Assembler:::
src {case :BelowOrEqual:
    as_mov(dest, isSigned = false
  }
}

void : , java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 12
_vabs_f32(, dest;
}

java.lang.StringIndexOutOfBoundsException: Range [19, 4) out of bounds for length 71
  ma_vabs(src, dest);
}

void MacroAssembler::sqrtFloat32(FloatRegister src, FloatRegister dest)   (      isSignisSigned = true;
  ma_vsqrt_f32(src, dest);
}

voidjava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 22
  ma_vsqrt(src, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

void MacroAssembler::      ("java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  (,rhs,}
}

void MacroAssembler::min32(Register lhs, Imm32 rhs, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
lhs ,dest 
}

void MacroAssembler::
  minMax32(lhs, rhs, dest, /* isMax = */
 ;
}

void MacroAssembler::max32(Register java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 1
    as_cmp(s,<java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 35
}

void MacroAssembler::minPtr(Register lhs, Register rhs, Register dest) {
  ;
}

void   cond,dest
  minMax32
}

voidMacroAssembler:maxPtr( lhs, Register hs  dest}
  minMax32(lhs, rhs, dest, void MacroAssembler::ctz32(Register src, Register dest, bool knownNotZero) {  minMax32(lhs, rhs, dest, /* isMax = */
}

void MacroAssembler::maxPtr(Register lhs, ImmWordrhs.ow =  {
minMax32(lhs,(java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 60
}

void cmp64SetNonAliased, ,java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 61
                                Label ,high
minMaxFloat32(srcDest,,java.lang.StringIndexOutOfBoundsException: Range [43, 41) out of bounds for length 50
}

void MacroAssembler::minDouble(FloatRegistervoid MacroAssembler:java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
boolhandleNaN){
  minMaxDouble(srcDest, other, handleNaN, false);
}

void MacroAssembler::maxFloat32(FloatRegister java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 23
                                ){
  minMaxFloat32(srcDest, other, handleNaN, true);


void MacroAssembler::maxDouble(FloatRegister other, FloatRegister srcDest,
                               bool handleNaN) {
  ,true
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

// ===============================================================
// Shift functions

MacroAssembler:(    
  lshiftPtr(imm, dest, dest);
i cjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42

voidjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 10
  MOZ_ASSERTcas_mov(tmp, asr(output, 1
  ma_lsl(imm, src, ma_and(Imm32(0x55555555 tmp )java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
}

void  o MacroAssembler:java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 74
  ma_lsl(src, dest, ma_mov((0x33333333) ;
}

void MacroAssembler::flexibleLshiftPtrmscratch tmp)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
fshift,srcDest)Regis dest java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
}

M:java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 59
  MOZ_ASSERT(0 <= imm.value && imm.  ma_and(Imm32(0xF0F0F0F), output, scrat
mvalue = 0 java.lang.StringIndexOutOfBoundsException: Range [23, 24) out of bounds for length 23
    return;
  }

  if (imm.value < 32) {
    as_mov(dest.high, lsl(dest.high, imm.value));
    as_orr(dest.high, dest.high    cmp64SetNonAliased(cond,lhs rhs dest;
    as_mov(dest., lsl(dest., imm.alue)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
  } else {
    as_mov(dest.high, lsljava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    ma_mov(Imm32(0), dest.low);
  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}

void ::lshift64(Register unmaskedShift, Register64 dest) java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
  // dest.high = dest.high << shift | dest.low << shift - 32 | dest.low >> 32 -
  // shift Note: one of the two dest.low shift will always yield zero due to
   (. ! srchigh) {

  popcnt32   java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 10
  as_and(shift, unmaskedShift, Imm8(0x3f));
  as_mov(dest.high, lsl(dest.high, shift));
  as_sub(shift,  }
  as_orr(dest.high, dest.high, lsl(dest.low, shift));
  ma_neg(shift, shift);
  as_orr(destjava.lang.StringIndexOutOfBoundsException: Range [13, 1) out of bounds for length 1
  as_andshift unmaskedShiftI0java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 43
,)
}

java.lang.StringIndexOutOfBoundsException: Range [19, 4) out of bounds for length 60
  ma_lsl(src, dest, dest);
}

void MacroAssembler::flexibleLshift32(Register src, Register dest)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  ScratchRegisterScope// Branch functions
  as_and(scratch, src, Imm8(0x1F));
  
}

 MacroAssembler::lshift32(Imm32 imm d) java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
 i,destjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

void
 toacquire
}

void MacroAssembler::rshiftPtr(Imm32 imm, Register dest) {
  rshiftPtr(imm, dest, dest);
}

void MacroAssembler::rshiftPtr(Imm32 imm,java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 16
  java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 47
  if (imm.value) {
    ma_lsrswitch (cond)java.lang.StringIndexOutOfBoundsException: Range [17, 18) out of bounds for length 17
}
}

voidcaseAssembler:NotEqual:
  a_lsr java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 26
}

void MacroAssembler:case :Below
  flexibleRshift32(shift, srcDestcaseAssembler::
}

void MacroAssembler::rshift32(Register imm=Imm32(uint8_t(rhs.);
  ma_lsr(src, dest, dest);
}

void MacroAssembler
  ScratchRegisterScope scratch(*this);
  as_and(scratch, src, Imm8(0x1F)   case ::java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
  MacroAssemblerL:
}

void MacroAssembler::rshift32(Imm32 immjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 38
  rshiftPtr(imm, dest, dest);
}

void MacroAssembler::rshift32(Imm32 imm, Register src, Register dest) {
        = (.value);
}

void MacroAssembler      ;
  rshiftPtrArithmetic(imm, java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 19
}

void MacroAssembler::rshiftPtrArithmetic(Imm32 imm, Register
                                         Registerdest){
  MOZ_ASSERT(0 <= imm.value &java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  ifa_cm(,scratch2)
    ma_asr(imm, src, dest)ma_b(label,a_bdone)java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
  }
}

void :rshiftPtrArithmetic(ctz32(src.high, dest.low, /* knownNotZero = */ false);
  ma_asr(src, dest, dest);
}

 MacroAssembler:java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 38
                                                 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  (Extend) java.lang.StringIndexOutOfBoundsException: Range [60, 59) out of bounds for length 72
}

(java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 69
  /Equivalentto GCC of std:(
  if (!imm.value) {
    return;
  }

  if (imm.value    case   if (input != out){
    as_mov(dest.low, lsr(dest.low)
    as_orr(dest.low, dest.low, lsl(java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 30
   s_movdesthigh, case::
  } else if (imm.value ==   aseAssembler:BelowOrEqual:
ma_and( falsejava.lang.StringIndexOutOfBoundsException: Range [23, 24) out of bounds for length 23
    as_mov(dest.high, asr(dest.high, 31));
  } else {
    .,., java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 32
  ma_and(0outputscratch;
  }
}

void MacroAssembler  as_add(output, output,lsl(, 8);
                                        as_add(utput,output, lsloutput       java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 22
  Label proceed}

  // dest.low = dest.low >>> shift | dest.high <<< 32 - shift
  // if (shift - 32 >= 0)
   >   java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
  // Note: Negative shifts yield a zero as result, except for the signed
  //       right shift. Therefore we need to test for it and only do it if
  //       it isn't negative.
  // The source

  , unmaskedShift    before have 
  as_mov(dest
  as_rsb     =srchigh){
      popcnt32(srclow,dest., )java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
  ma_neg(shift, shift, SetCC);
  ma_b(Imm32::hiftOflhsscale),index,scratch;

      index =scratch;

  bind);
   as_and(    (src. desthigh );
  as_mov(dest.high, asr(dest.high, shift));
}

void if (indexjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 30
  est java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
}

:/
  rshiftPtrArithmetic(imm, // Branch functions
}

void MacroAssembler  }else{
    Register =java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 29
  rshiftPtrArithmetic(imm, src, dest);
}

    ifxclusive access  scratch registers.
        ma_ldrb(DTRAddr booljava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
  java.lang.StringIndexOutOfBoundsException: Range [16, 8) out of bounds for length 35
  rshift32Arithmetic(scratch, dest);
}

java.lang.StringIndexOutOfBoundsException: Range [4, 2) out of bounds for length 5
  }
  MOZ_ASSERT(0 <=  imm.value && imm.value < 64);
  if (!imm.value) {
    case Assembler:NotEqualjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
  java.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3

ifvalue:java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    as_mov(dest.low, lsr(dest.voidsSigned  
 lsl(.,32-imm.value)java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
    java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 45
  } else if (imm.value   Inlined calls to load16{Zero,Sign}Extend() and branch32() to acquire::
    booljava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
    switchc java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  } else {
    caseAssemblerNotEqual
    ma_mov(Imm32(0),bove
  }
}

voidjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
  // dest.low = dest.low >> shift | dest.high >> shift - 32 | dest.high << 32 -:Bjava.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
/ Note:      imm = Imm32(ui(.value)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  // negative shift.

  ScratchRegisterScope  Assembler:java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
  as_and( ,java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 29
  iftma_b java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 20
  as_sub(shift, shift, java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
  (break
  java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
  as_orr(dest.low, dest.low, lsl(dest);
  } *;
  as_mov(dest.
}

// ===============================================================
// Rotate functions
void // Inlined callsto load8{eroSign  cratchimm,java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  if// exclusive access to scratch registers.
    ma_rol(count, input, dest);
    {
    ma_mov(input, dest);
  }
}

void   ma_cmp(lhs );
  ScratchRegisterScope scratch(*this);
  ma_rol(case Assembler::Equal:
vjava.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 29

 java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 64
                                   dest a_cmplhs,scratchjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  MOZ_ASSERT(temp == InvalidReg);
  MOZ_ASSERT(input.low != dest.high &&  MacroAssembler:java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 23

  int32_t amount = count.value & 0x3f;
  if (amount   scratch*
    case Assembler:reaterThan:
  }e{
    java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 0
    if (amount == 0) {
      (low );
      ma_mov(input.high, dest.high);
    } else    :LessThanOrEqual:
      ma_mov(input.low, = truejava.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22
      java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
      ma_mov(scratch, 
    }else {
      MOZ_ASSERT(0 < amount && amount < 32);
      dest.,scratch)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
      as_mov(destScratchRegisterScope scratch(this
      as_orr(dest.high, dest.SecondScratchRegisterScopescratch2(this)
      as_mov(dest
        ma_ldr(lhs java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 33
    }
  
}

void MacroAssembler::rotateLeft64(Register shift, Register64 src,
                                  Register64 dest, Register temp}
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  MOZ_ASSERT(src==dest;
  MOZ_ASSERT(  Register ,*label java.lang.StringIndexOutOfBoundsException: Range [59, 60) out of bounds for length 59
  OZ_ASSERTshift ! ndex= scratch;
  MOZ_ASSERT(temp != InvalidReg);

  java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
  Label high, done;

  ma_mov(src.high, temp  if(=scratch{
  as_and(shift_value, shift, Imm8(0
  as_cmp(shift_value, java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 23
  ma_b(&high, GreaterThanOrEqual);

  << shift | low >> 32 - shift
  // low = low << shift | high >> 32 - shift
  as_mov(dest.high, lsl(src.high, shift_value));
  (shift_value,shift_value, Imm8(32)void MacroAssembler:branch32( cond,java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 73
 lsrs    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

     java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 45
  as_mov(dest.low, lsl(    uint32_t scale = Imm32m(((lhs.),scratch)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
  as_rsb(shift_value, shift_value, Imm8(32));
  as_orr(dest.low, dest.low, lsr(temp, shift_value));

  ma_b(&done);

  // A 32 - 64 shift is a 0 - 32 shift in the other direction.
  dbranch32(cond,const ,Imm32java.lang.StringIndexOutOfBoundsException: Range [78, 77) out of bounds for length 78
  as_rsb(,shift_value 

  as_mov( sjava.lang.StringIndexOutOfBoundsException: Range [18, 16) out of bounds for length 23
  as_rsb(shift_value, shift_value, Imm8(32));
  java.lang.StringIndexOutOfBoundsException: Range [13, 8) out of bounds for length 58

  as_rsb(shift_value, shift_value, Imm8(32));
  as_mov(destRegister    
  as_rsbuint32_t cale= ShiftOflhs)alue
  as_orr(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  bind(&done);
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1

 MacroAssembler:rotateRight(java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 0
    ( (index LSL, scale) scratch2);
    ma_ror(count, input, dest);
 } else{
    ma_mov
      a_ldr(DTRAddr(base, DtrRegImmShift(lhs.index
}

void MacroAssembler::rotateRight(Register count, Register java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 17
                                 );
  ma_ror(count, input, dest);
}

 MacroAssembler:java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
                                    dest,Register ) java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
  MOZ_ASSERT( =java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 26
  MOZ_ASSERT(input.low !case :BelowOrEqual:

   scratch2(this)
  f(amount > 32){java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    rotateLeft64(Imm32(64 -     ScratchRegisterScope (this)
   {
    ScratchRegisterScope scratch(*case=lhsbase
    if (amountuint32_t  =Imm32:cA:LessThanjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
      ma_mov(input.high,       lhs  scratch2.
    } else      isSigned =true   if(lhs.offset =0 {
      ma_mov      imm = mm32((.value);
      ma_mov(input. .)
      ma_mov(scratch, dest.high);
    } else {
      MOZ_ASSERT(0 < amount && amount < 32);
      (base DtrRegImmShift  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      as_mov(dest.high, lsr(dest.high, amount));
      as_orr(dest.high, dest.high, lsl(dest.low, 32                   ,  java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
      as_mov(dest.low, lsr(dest.low, amount));
      as_orr(dest.low, dest.low, lsl(void MacroAssembler::branch32(Condition cond::ymbolicAddress java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 ( rhs);

oAssembler::rotateRight64(shift, srcjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
                                   Register64 dest, Registerjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  MOZ_ASSERT(shift != temp);
(src = );
  MOZ_ASSERT(temp != src.low &}
  MOZ_ASSERTshift!java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  MOZ_ASSERT( !=InvalidReg);

  ScratchRegisterScope shift_value(*this);
  Label high, done;

  ma_mov(src.high, temp);
  as_and(shift_value, shift, Imm8(}
  as_cmp(shift_value, Imm8(32));
  ma_b(&high, GreaterThanOrEqual);

  // high = high >> shift | low << 32 - shift
shift
  as_mov(dest.igh,lsr(src.high,shift_value));bel*fail){
  as_rsb(  branch64Impl(, , ,success,fail);
  as_orr(dest.high, dest.high, lsl(src.low, shift_value));

  as_rsb(shift_value, shift_value, Imm8(32));
  as_mov(dest.low, lsr(src.low, shift_value));
  as_rsb(shift_value, shift_value, Imm8(32));
  dest.ow,lsl(temp shift_value));

  ma_b(&done);

  // A 32 - 64 shift is a 0 - 32 shift in the other direction.
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
value,Imm8())

  as_mov(dest.high, lsl(src.branch64Impl(cond, lhs, rhs, success, fail);  ScratchRegisterScope (this;
  as_rsb(shift_value, shift_value, Imm8(32));}
  as_orr(dest.high, dest.high, lsr(  SecondScratchRegisterScope scratch2(*this);

  as_rsb(shift_value, shift_value, Imm8java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 0
as_movdest.low lsl(srclow,nstAddress&rhs   ,
  as_rsb(shift_value , Imm8(32);
  as_orr(dest.low, dest.  MOZ_ASSERT( = java.lang.StringIndexOutOfBoundsException: Range [30, 20) out of bounds for length 20

  bind M.base );
}

// ===============================================================
// Condition functions

void MacroAssembler
                             Registerjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  ScratchRegisterScope scratch(*this);
  *this);

  // Inlined calls to load8{Zero,Sign}Extend() and cmp32Set() to acquire
    branch32(ssembler:NotEqual,LowWord) ,label);

  bool  }
  Imm32 immjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  switch (cond) {
 :branch32(onditioncondjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    case Assembler::NotEqual:
     Assembler:Above
    case Assembler::AboveOrEqual:
lowjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    case Assembler::BelowOrEqual:
      isSigned = false;  
      Imm32int8_trhsv);
      break;

    aseAssembler:GreaterThan
    case Assembler::GreaterThanOrEqual:
    case Assembler::LessThan:
     :LessThanOrEqual
      isSigned = true;
      imm = Imm32(int8_t(rhs.value));
      break;

    java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 1
      MOZ_CRASH(unexpectedon ,  java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
  }

  ma_dataTransferN(IsLoad, 8, isSigned, lhs.base,java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0
                   )
  ma_cmp(Label  {
  emitSet(cond, dest) scratch*this  :lcale);
}

void ::  , label)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
                               }
  java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
Sma_add(base, Imm32l.,s,java.lang.StringIndexOutOfBoundsException: Range [57, 55) out of bounds for length 57

  // Inlined calls to load16{Zero,Sign}Extend() and cmp32Set() to acquire
  // exclusive access to scratch registers.

  bool isSigned;
  Imm32 imm(0);
  switch (cond) {
    case Assembler::Equal:
    case Assembler::NotEqual:
    caseAssembler:Above:
    case Assembler::AboveOrEqual:
    case Assembler::Below:
    case java.lang.StringIndexOutOfBoundsException: Range [31, 17) out of bounds for length 46
      isSigned =                              Register,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
      imm =Imm32(int16_t(rhs.value);
      break{

    case Assembler::GreaterThan:
    case Assembler::GreaterThanOrEqual:
    :java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    casejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
           =true
      imm  Imm32(      imm = Imm32(int16_t*label{
      break;

    default:
      MOZ_CRASH("    / Loadlhs into scratch2.
  }

  ma_dataTransferN  iflhs.offset !0 
                   scratch2java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
   MacroAssembler:branchPtr      ma_ldr(DTRAddr(scratch, DtrRegImmS(scratch trRegImmShiftlhs.index,LSL scale)) scratch2);
          java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 12
}

template <typename T1, typename T2>
voidMacroAssembler:cmp32Set(ondition ,T1lhs T2
  cmp32(lhs, rhsbranchPtr}
  emitSet(cond, dest);
}

 MacroAssembler:cmp64Set(java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
Register est {
                               Register rhs, Label* label) {
      rhs.low == dest) {
    cmp64SetAliased(cond, lhs, rhs, java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 38
  } branchPt(egisterScope scratch2*this)
    cmp64SetNonAliased(}
  }
}

oid MacroAssembler::mp64Set(onditioncond Register64 lhs, Imm64 rhs,
                               dest) {
  if (rhs.value  a_ldrDTRAddr(scratch, DtrOffImm(0))  SecondScratchRegisterScope scratch2(this;
      (cond == java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      cratch ,scratch2)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    cmp32Set(cond, dest, Imm32(0), dest);
  } else if (lhs.high == dest || lhs.low == dest) {
    cmp64SetAliasedvoid java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 60
  
(lhs, scratch2
  }
}

void MacroAssembler::cmp64Set(Condition cond, java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 1
                              void MacroAssembler::branch64(Conditioncond, Register64                               
  if (lhs.base == dest || rhs.high == dest || rhs.low == dest) {
    cmp64SetAliased
  } else
    java.lang.StringIndexOutOfBoundsException: Range [38, 22) out of bounds for length 45
  }
}

Mjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                              Register dest) {
  if (lhs.base                                      Register ,Label*label {b,fail);
    cmp64SetAliased(cond, lhs, rhs, dest);
  } else {
    cmp64SetNonAliased(cond, lhs, rhs, dest);
   
}

templateFloatRegisterrhsbjava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 46
void MacroAssembler::cmpPtrSet(Condition cond, T1 lhs, T2 rhs, Register dest) {
  cmpPtr(lhs, rhs);
  emitSet(cond, dest);
}

// ===============================================================
// Bit counting functions
Label* label) {
void MacroAssembler::clz32(Register src, Register dest, bool knownNotZero) {
  ma_clz(src, dest);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

void java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 11
  ScratchRegisterScope scratch(*this);

  java.lang.StringIndexOutOfBoundsException: Range [8, 5) out of bounds for length 39
  as_cmp(ma_b(
  ma_mov(scratch, dest.low, LeaveCC, NotEqual);
  ma_clz(src.java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 27
  as_add(dest.low, dest.low, Imm8(32), LeaveCC,  load32(LowWord
  ma_mov(Imm32(0), dest.high);


void MacroAssembler::ctz32(Register src, (lhs),scratch,java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
  ScratchRegisterScopescratch(*his;
  ma_ctz(src, dest, scratch);
}

void MacroAssembler::ctz64(Register64 src, Register64 }
  Label done, highjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  as_cmpslowImm8();
  , Equal;

java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 54
  ma_b(&done);

  bind(&high);
  ctz32(                                                   dest,Label voidjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 74
  as_add(dest.ow dest., Imm8(32));

  bindbranch32(;
  ma_mov(Imm32(0), dest.highjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 1
}

void MacroAssembler:Label*label){
  // Equivalent to GCC output of std::popcount() java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34

  ScratchRegisterScope(ail,Assembler::Equal);void:Condition lhs ,

  if (input ! output)
    ma_movvoidMacroAssembler:(DoubleCondition ,java.lang.StringIndexOutOfBoundsException: Range [0, 69) out of bounds for length 61
  }
  as_mov(tmp, asr(output, 1));
  ma_and(Imm32(0x55555555), tmp, scratch),Registerlhs,ImmGCPtr  (,rhs)
  java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
  s_mov, asr( 2)scratch*his);
  Imm32033333333), java.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 37
  ma_and(scratch, output);
  ma_and(java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 0
  ma_add(output, tmp,     ma_b(unordered,VFP_Unordered)*java.lang.StringIndexOutOfBoundsException: Range [46, 47) out of bounds for length 46
  as_add(output, ma_b(label, VFP_NotEqualOrUnordered
  bind(&unordered)java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
  as_add(output, outputjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  as_add(output, output, lsl(output, 16java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  as_mov(output, asr(outputvoid:branchPtr(
}

voidMacroAssembler:popcnt64( src java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  MOZ_ASSERT(dest.branch32(,lhs  )
  MOZ_ASSERT(dest.high != tmp);
   MacroAssembler:(java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 78
  // The source and destination can overlap. Therefore make sure we don't java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
  // clobber the source before we have the data.
  if (dest.low != src.high) {
    .void MacroAssembler::branchPtr cond   ,
    popcnt32(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  } else {
    MOZ_ASSERT(dest.high != src.high);
    popcnt32(src.low, dest.high, tmp);
    popcnt32(src.high, dest.low, tmp);
  }
  ma_add(dest.high, dest.low);
  ma_mov(Imm32(0)void// reallywas INT_MAX then it  bewrong.
}

// ===============================================================
// Branch functions

void MacroAssembler::branch8(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 25
                             Label*branchPtr( S *;
  ScratchRegisterScope scratch(*}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  // Inlined calls to load8{Zero,Sign}Extend() and branch32() to acquire
  a_cmp(dest, Imm32(0x7fffffff), scratch); (java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43

  bool ma_b(fail,java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 31
  Imm32 imm(0);
  switch (cond) {
    case :java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    case Assembler::NotEqual:
    :java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
    case Assembler::java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33
    case Assembler::
    case Assembler::BelowOrEqual:
      isSigned = java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
      imm = Imm32(uint8_t(rhs.value));
      break;

    case :java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    case Assembler:
    case Assembler::LessThan:
    MacroAssembler:java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 21
      isSigned =                    ImmWord rhs,Label*void MacroAssembler::branchAdd32(Condition cond, T src, ,
      imm = Imm32(int8_t(rhs.value));
      java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12

    default:
      java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 40
  

  (,,java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 77
                   scratch2);
  ma_cmp(scratch, imm, scratch2);
  ma_blabel,cond)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
}

void MacroAssembler::branch8  branchPtr(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                             Label* label) {
  ScratchRegisterScope scratch(*this);
  SecondScratchRegisterScope scratch2(*this);

  // Inlined calls to load8{Zero,Sign}Extend() and branch32() to acquire
  // exclusive access to scratch registers.

  ;
  switch j(overflow_condjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
voidMacroAssembler::(ma_b ;
    case               *){
    return;
     ::boveOrEqual:
    case Assembler::Below:
ssembler:java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33
      isSigned = false;
      break;

    case Assembler::GreaterThan:
    case::  ma_b(label, ConditionFromDoubleCondi))
    case Assembler::LessThan  neg32(java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 0
    r:                             java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 71
      isSigned = true;
      ;

    default:
      MOZ_CRASH("void MacroAssembler *java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  }

  cond java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
    ScratchRegisterScope scratch*;

    // ARMv7 does not have LSL on an index register with an extended load.src,sintOverlay);
       branchAdd( est java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
      ma_lsl(Imm32::ShiftOf(lhsjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 21
      index = scratch;


    if (lhs.offset != 0) {
      if (index != scratch) {
        ma_mov(
        index = scratch;
      }
      (Imm32lhs., scratch2
    }
    a_ldrsbEhsbase,(index),scratch;
  } // Force the unordered cases not to jump.
    Register base = lhs.base;
    uint32_t scale = Imm32::ShiftOf(lhs.scale).value;

    if (lhs.offset == 0) {
          java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    } else {
      base,Imm32lhs.offset,scratch*;
      ma_ldrb(DTRAddr(scratch, DtrRegImmShift(lhsma_sub(,    ma_b(label, Vjava.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
    }
  }

  ma_cmpsvoidbranchTest32(java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 77
  ma_b(label, cond);
}

void MacroAssembler:branch16(cond, java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 1
                              Labelv MacroAssembler:branchTruncateDoubleMaybeModUint32srcjava.lang.StringIndexOutOfBoundsException: Range [74, 75) out of bounds for length 74
  ScratchRegisterScope cond == NotSigned;
  SecondScratchRegisterScope scratch2(*this);

  // Inlined calls to load16{Zero,Sign}Extend() and branch32() to acquire
  // exclusive access to scratch registers.

  bool isSigned;
  Imm32 imm(0);
  switch (cond) {
      } else{
    case Assembler::NotEqual:
    case Assembler::Above:
    case Assembler::AboveOrEqual:
    case
    case Assembler::BelowOrEqual:
      isSigned = false;
      imm = Imm32(uint16_t(rhs.value));
      break;

    case Assembler::GreaterThan:
    :reaterThanOrEqual:
    case Assembler::LessThan:
    case            Label* ) {
      sSigned =true;
      imm= Imm32(int16_t(rhs.value));
      break;

    default:
      ("unexpected condition ;
  }

  ma_dataTransferN(IsLoad, 16, isSignedjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
                   );
  a_cmpscratch,, scratch2);
  a_b               label)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
}

void MacroAssembler::branch32(Condition cond,a_bjava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 31
                              Label* label)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                   Imm32  *  
  ma_b(label, cond);
}java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21

void :branch32( cond,R lhs Imm32 java.lang.StringIndexOutOfBoundsException: Range [66, 35) out of bounds for length 35
                              Label* label) {
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 38

  ma_cmp(lhs, rhs, scratch);
  ma_b(label cond)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
}

void MacroAssembler::  ma_b(label, Assembler::NonZero;
                              * label) }
  ScratchRegisterScope scratch(*this);
  SecondScratchRegisterScope scratch2(*this);

  ma_ldr(lhs, scratch, scratch2);
  ma_cmp(scratch, rhs);
m(,(, ,rhs java.lang.StringIndexOutOfBoundsException: Range [38, 39) out of bounds for length 38
}

voidjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 76
                              Label* label) {
  ScratchRegisterScope }
  SecondScratchRegisterScope scratch2(*this);

  java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1
  ma_cmp(scratch, rhs, scratch2);
  ma_b(label, cond;
}

oid branch32onditionconstAbsoluteAddress lhs,
                              Register rhs, Label* label) {
  ScratchRegisterScope  sub32(src );

  // Load into scratch.
  movePtr(ImmWord(uintptr_t
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 _cmpc,java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 23
  ma_b(label )java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
}

void MacroAssembler::  MOZ_ASSERT(cond == Assembler                                  Label fail {
                              Imm32 rhs, Label* label  bool   bool fallthrough scratch*this);
  ScratchRegisterScope scratch(*this);
   scratch2(*this)

.
  movePtr( = &fallthroughLabel
  ma_ldr(DTRAddr(scratch,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

  ma_cmp(scratch, rhs, scratch2);
  ma_b(label, cond);
}

void MacroAssembler::branch32(Condition cond, const BaseIndex& lhs, Imm32cond= Zero    if lhs =rhs){
                              Label* label) {
    branch32(cond == Zero ? Eq:java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 67
  {
    ScratchRegisterScopescratch(*);

       .;
     = Imm32::ShiftOf(lhs.

    // Load lhs into scratch2.
    if (lhs.offset != 0) {
      ma_add(base, Imm32(lhs.offset),voidMacroAssemblerbranchTest32(Assembler:Zero, lhs..igh,igh,success))java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
      ma_ldr(DTRAddr(scratch, DtrRegImmShift(      {
else{
      ma_ldr(DTRAddr(base, DtrRegImmShift(lhs.index, LSL, scale)), scratch2);
    }
  }
  branch32}
}

void :branch32Conditioncond const BaseIndex&lhs,
                               rhs, java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 17
  SecondScratchRegisterScope scratch2(* }else {
  {
    ScratchRegisterScope scratch(*this);

    Register base = lhs.base;
    uint32_t scale = Imm32::ShiftOf(lhs.scale).value;

    // Load lhs into scratch2.
    if(lhs.! 0){
      ma_add(base, Imm32(lhs.offset), scratch, scratch2)}
      ma_ldr(DTRAddr(scratch, DtrRegImmShift(lhs.index, LSL, scale)), scratch2);
    } else {
jumpf)
    }
  }
  branch32(cond, scratch2, rhs, label  branchSub32( srcjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

 MacroAssembler:Conditioncond,,:lhs,
                              Imm32 rhs, Label* label) {
  ScratchRegisterScope  boolfallthrough = false;
  SecondScratchRegisterScope scratch2(*this);

  movePtr(lhs java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 79
ma_ldr(scratch,DtrOffImm0),scratch

  ma_cmp(scratch, rhsjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
  l,                                  Label* label) {
}

 java.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 72
                              Label* success, Label* fail) {
  branch64Impl(cond, lhs, val, success, fail);
}

void MacroAssembler::branch64(Condition cond, Register64 lhs, Register64 rhs,
                              Label}elseif(ond = :) {
  branch64Impl(cond, lhs, rhs, success, fail);
}

void MacroAssembler::branch64(Condition cond      branchTest32(:Zero,lhs.,rhs.hi(), success);
                              Label* success, Label* fail) {
  branch64Impl(cond, lhs, val, success, fail);
}

void MacroAssembler::branch64(Condition cond, const Address& lhs,
Register64rhs,Label* success Label* fail) {
  branch64Impl(cond, lhs, rhs, success, fail);
}

 MacroAssembler::(Condition }{
                              const Address& rhs, Register }else{
                              Label* label) {
  MOZ_ASSERT(cond ==   }
             "other condition codes not supported");
  MOZ_ASSERT(lhs.base != scratch);
  MOZ_ASSERT(rhs.base != scratch);

  Label done;

  load32(LowWord(rhs), scratch);
  }else{
    branch32(Assembler::NotEqual                 ail;
  } {
    branch32(Assembler::NotEqual, LowWord(lhs), scratch, label);
  }


  branch32(cond,                     Label* label) {

  bind(&done);


void MacroAssembler::branchPtr(Condition cond, Register lhs, Register rhs,
                               Label* label) {
  branch32(cond, lhs, rhs, label);
}

void MacroAssembler::branchPtr(Condition cond, Register lhsjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                               Label* label) {
  branch32c lhs,rhs, label);
}

void MacroAssembler::branchPtr(Condition cond, Register lhs, ImmPtr rhs,
                               abel label) {
  branchPtr(cond, lhs, ImmWord((.),label);
}

mbler::anchPtronditioncond Register , ImmGCPtr rhs,
                               Label* label) {
  ScratchRegisterScope scratch(*this);
  movePtr(rhs, scratch);

}

void MacroAssembler::branchPtr(Condition cond, Register lhs, ImmWord rhs,
* label) {
  branch32(cond, lhs, Imm32(rhs.value), label);
}

void MacroAssembler::branchPtr(Condition cond                                   Label label
                               * label){
  branch32(cond, lhs, rhs, label);
}

void MacroAssembler  Condition c =testUndefined(ond, ;
                               Label* label) {
  branchPtrjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

void                                     *label) java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
                               Label* label) {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  loadPtr(lhs, scratch2);
  branchPtr(cond, scratch2, rhs, label);
}

cond,c   ,
                               Label* java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 1
      fail = &fallthroughLabelLabel*label java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
 )java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

bler:branchPtr(Condition cond,const&lhsjava.lang.StringIndexOutOfBoundsException: Range [74, 75) out of bounds for length 74
                                rhs, label{
  SecondScratchRegisterScope scratch2(*this);
  loadPtr(lhs, scratch2);
  branchPtr(, scratch2, ,label);
}

 branchTest32(Assembler:onZero .low rhs., )java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
                               rhs,Label*label) java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
  SecondScratchRegisterScope scratch2(*this);
  oadPtrlhsscratch2);
  branchPtr(cond, scratch2, rhs, label);
}

void MacroAssembler::branchPtr(Condition cond, wasm::SymbolicAddress lhs,
                               Register rhs, Label* label) {
  SecondScratchRegisterScope scratch2(*this);
  oadPtr(, )
  branchPtr(cond, scratch2, rhs, label);
}

void MacroAssembler::branchPtr(Condition cond, const BaseIndex& lhs
                                rhs,Label*label) java.lang.StringIndexOutOfBoundsException: Range [59, 60) out of bounds for length 59
  branch32(cond, lhs, Imm32(rhs.value),  else {
}

void MacroAssembler::branchPtr(Condition cond, const BaseIndex& lhs,
                               Register rhs, Label* label) void ::branchTest64Conditioncond,Register64 ,Imm64 rhs
  branch32(cond, lhs, rhs, label);
}

void MacroAssembler::branchPrivatePtr
                                      Register rhs, Label* java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 0
  branchPtr(cond, lhs, rhs, Label* label) java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
}

void MacroAssembler::branchFloat(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                 FloatRegister rhs, Label* label) {
  compareFloat(lhs, rhs);

  if (cond == DoubleNotEqual) {
    ond,l, .(),success);
    Label unordered;
    java.lang.StringIndexOutOfBoundsException: Range [5, 1) out of bounds for length 1
    (,VFP_NotEqualOrUnordered)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
    bind(&unordered);
    return
  }

   (cond = DoubleEqualOrUnordered){
    ma_b(label, VFP_Unordered);
    a_blabel,VFP_Equal);
    return;
  }

  ma_b(                                          java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 57
}

void MacroAssembler::branchTruncateFloat32MaybeModUint32(label,c;  }
                                                         
                                                         voidMacroAssembler:java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 75
 =(truthy reg;
}

java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0
                                                  Register dest, Label* fail) java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 56
   branchTestNumberImpl(cond,tag label)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
  cratchRegisterScope scratch(*this);

  java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
  ;
java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 43
  ma_cmp(dest, Imm32(0x80000000), scratch, Assembler::NotEqual);
  ma_bjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

 :java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 69
                                  FloatRegister rhs, LabelLabel* label java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
  compareDouble(lhs, rhs);

  if (cond == java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
    // Force the unordered cases not to jump.
    Label ;
    ma_b(                                    Label                                         Label* java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
    ma_b(label, VFP_NotEqualOrUnordered);
    bind(&unordered);
    return;
  }

  if( =DoubleEqualOrUnordered {
    ma_b(labeljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    ma_b(label, VFP_Equal);
    return;
  }

  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

void MacroAssembler::java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 52
                                                        Register dest,
                                                        Label* fail) {
  branchTruncateDoubleToInt32(src, dest, fail);
}

// There are two options for implementing branchTruncateDoubleToInt32:
//
// 1. Convert the floating point value to an integer, if it did not fit, then it
// was clamped to INT_MIN/INT_MAX, and we can test it. NOTE: if the value
// really was supposed to be INT_MAX / INT_MIN then it will be wrong.
//
// 2. Convert the floating point value to an integer, if it did not fit, then it
// set one or two bits in the fpcsr. Check those.
void MacroAssembler
                                                 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  cratchDoubleScope scratchDouble(*this);
  FloatRegister scratchSIntReg = scratchDouble.sintOverlay();
  ScratchRegisterScope scratch(*this);

  src,scratchSIntReg);
  ma_vxfer(java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 1
  ma_cmp tjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 21
  ma_cmp::NotEqual);
  ma_b(fail, Assembler::Equal);
}

void::ranchInt64NotInPtrRangeRegister64 ,L label){
  // The high-word needs to be either all zero or all one, depending on the MSB
  // of the low-word.
  as_cmp(src.high, asr(src.low, 31));
  ma_b(label, Assembler
}

void MacroAssembler::java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 1
  ScratchRegisterScope scratch(*this);

  // The low-word MSB and all bits in the high-word must be zero.
  as_orr(scratch, src.high, asr(src.low, 31), SetCC);
  ma_b(label, Assembler::NonZero);
}

template <typename T>
void MacroAssembler::branchAdd32(Condition
java.lang.StringIndexOutOfBoundsException: Range [38, 33) out of bounds for length 48
  add32(src, dest);
  as_b(labelcond, ;
}

template <typename T>
void MacroAssembler::branchSub32(Condition cond, T src, Register dest,
                                 Label* label) {
  sub32(src, dest);
  j(cond, label);
}

late <typename Tjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
void:branchMul32(cond,T,Register dest,
                                 Label* label) {
  MOZ_ASSERT(cond == Assembler::Overflow);
  void MacroAssemblerConditioncond java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 69
 java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 38
      (src dest,dest,scratch,cond
  j(overflow_cond, label);
}

template<template <typenameLabellabel java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
void MacroAssembler::                         ){
                                    Label* label) {
  MOZ_ASSERT(java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
  rshift32(src, dest);
  branch32(cond == Zero ? Equal                                      * java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
}

void void MacroAssembler::branchTestNumber(Condition cond, const ValueOperand& value,
  MOZ_ASSERT(cond == Overflow);
  neg32(reg);
  j(cond, label);
}

ranchAdd64 cond   Register64dest,
                                 Label* label) Label label){))java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
  ScratchRegisterScope scratch(*this);
  ma_add(imm.low(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [13, 8) out of bounds for length 46
  j(cond, label);
}

template <typename T>
void MacroAssembler::branchAddPtr
                                  *label) java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
  branchAdd32(cond, src, dest, label);
}

template <typename T>
void ::branchSubPtr(Condition cond, T src, Register dest,
                                  Label* label) {
  branchSub32(cond, src, dest, label);}
}

void MacroAssembler:branchMulPtr(Conditioncond Register src,   Label* label {
                                  Label* label) {
  java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
}

void MacroAssembler::branchNegPtr(void MacroAssembler:branchTestBooleanConditioncond,
  branchNeg32(cond, reg, label);
}

void MacroAssembler::decBranchPtrbranchTestBigIntImpl(cond, address, label);
                                  Label* label) {
  ScratchRegisterScope scratch(*this);
  ma_sub(rhs, lhs, scratch, SetCC);
  as_b(label, cond);
}

void MacroAssembler::branchTest32(Condition cond, Register lhs, Register rhs,
                                  Label* label) {
  MOZ_ASSERT(cond == Zero || cond == void MacroAssembler::branchTestBigInt(Condition
             cond= otSigned)
  // x86 likes test foo, foo rather than cmp foo, #0.
  // Convert the former into the latter.
  if (lhs == rhs && (cond == Zero || cond == NonZero  ConditionvoidMacroAssembler,const&tjava.lang.StringIndexOutOfBoundsException: Range [69, 70) out of bounds for length 69
    as_cmp(lhs, Imm8(0  ma_b(, c));
  } else {
    java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 1
  }
  ma_b(, }
}

voidMacroAssembler:: cond,Register ,Imm32 ,
                                  *label){
  MOZ_ASSERTbranchTestStringImpl(cond, tag, label);
             cond == NotSigned);
  ScratchRegisterScope scratch  
  ma_tst(lhs, rhs, scratch);
  ma_b(label, cond);
}

void MacroAssembler::branchTest32(Condition cond, const Address& lhs, Imm32 rhs,
                                  Label* label) {
  SecondScratchRegisterScope scratch2(*this);
  lhs,scratch2)
  branchTest32(cond, scratch2, rhs, label);
}

void MacroAssembler::branchTest32(Condition   branchTestNullImpl(cond, tag, label);
                                  Imm32 rhs, Label* label) 
  SecondScratchRegisterScope scratch2(*this);
  load32(, scratch2);
  branchTest32cond,scratch2, rhs, label);
  branchTestStringImpl((, ,label);

void MacroAssembler::branchTestPtr(Condition condjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                                   Label* label) {
  ( java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 38
}

void MacroAssembler::branchTestPtr(ma_bvoid MacroAssembler::branchTestNull(Condition cond, const ValueOperand& value,
                                   Label* label) 
  branchTest32(cond, lhs, rhsconst java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 0
}

void MacroAssembler: Condition c= testStringTruthy(truthy, value);
                                   Label* label) {
  branchTest32  ma_b(ma_b(label, c);
}

void MacroAssembler::branchTestPtr(Condition voidMacroAssembler:branchTestSymbol(Condition   
                                      ){
  branchTest32(cond, lhs, rhs,                                       label java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
}

void MacroAssembler::branchTest64(Condition condvoid MacroAssembler:branchTestObject(Condition cond, const voidMacroAssembler::ranchTestSymbol( cond,const Address&address,
Register64rhs, Register temp, Label ,
                                  Label* fail) {
  bool fallthrough = false;
  Label fallthroughLabel;

  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 29
    fallthrough = true;
  }

  if (cond == Assembler::Zero || cond == Assembler::NonZero) {
    if (lhs == rhs) {
      ScratchRegisterScope scratch(*this);
      ma_orr(lhs.low, lhs.high, scratch);
      branchTest32(cond, scratch, scratch, success);
    } else if (cond == Assembler::Zero
      branchTest32(Assembler::NonZero, lhs.low, rhs.low, fail);
      void MacroAssembler::branchTestSymbol(Condition cond,MacroAssembler:branchTestObjectImpl( ,constT t,
    }                                      *label 
      branchTest32(Assembler::NonZero, lhs.low, rhs.low, success);
      branchTest32(Assembler::NonZero, lhs.high, rhs.high, success);
    }
  } else if (cond == Assembler::Signed || cond
    void MacroAssembler:ranchTestGCThingCondition cond  Address}
  } else {
    MOZ_CRASH("Unsupported condition");
  }

  if (fallthrough) {
    bind(fail)
  } else {
jump()
  }
 c =java.lang.StringIndexOutOfBoundsException: Range [30, 23) out of bounds for length 46

void MacroAssembler::branchTest64(Condition
                                   Label* ){
  bool fallthrough = false;
  Label fallthroughLabel;

  if (!fail) {
    fail  branchTestGCThingImpl(cond, value, label);
    =true;
  }

  if (cond == void :branchTestBigInt( cond,A&address,
    if (rhs.hi(.valuevoidMacroAssemblerbonditioncond constT t
      branchTest32(cond, lhs.low, rhs.low(), success);
    }elseif(rhs.low(.value == 0)java.lang.StringIndexOutOfBoundsException: Range [37, 38) out of bounds for length 37
      branchTest32  ma_b(,c);
    } else if (cond == Assembler::Zero)}
      branchTest32Assembler::NonZero,java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 0
      ranchTest32:Zero .igh rhsL*label)
    } else   branchTestBigIntImpl(,*label{
      ssembler:NonZero owrhs( successjava.lang.StringIndexOutOfBoundsException: Range [68, 69) out of bounds for length 68
      branchTest32(Assembler::NonZero, lhs.high, rhs.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    }
  } else{
    MOZ_CRASH("Unsupported condition");
  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

i( {
    Labellabel
  } else {
    jump();
  }
}

void template <ypenameT>MacroAssembler:java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
                                         Label* label) {
  branchTestUndefinedImpl(cond, tag, label);
}

void MacroAssembler::branchTestUndefined(Condition cond, constCondition  = testPrimitivecond, t);
                                         m(label )
  branchTestUndefinedImpl(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 1
}

voidMacroAssembler::branchTestBigIntTruthyjava.lang.StringIndexOutOfBoundsException: Range [56, 57) out of bounds for length 56
                                         const BaseIndex& const ValueOperand&valuejava.lang.StringIndexOutOfBoundsException: Range [70, 71) out of bounds for length 70
                                         Label* label):(Conditioncond const
  branchTestUndefinedImpl(cond, Labellabel){
}

java.lang.StringIndexOutOfBoundsException: Range [19, 4) out of bounds for length 56
                                         const ValueOperand
                                         Label* label) {
  branchTestUndefinedImpl(,,labeljava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
                                    *label java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52

template <java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 1
void MacroAssembler::branchTestUndefinedImpl(Condition cond, const MacroAssembler::java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Label* label) java.lang.StringIndexOutOfBoundsException: Range [60, 61) out of bounds for length 60
  Condition c = testUndefined(cond, t);
  ma_blabel c;
}

void:branchTestInt32(Condition cond, Register tag,
                                     Label* label) {
  branchTestInt32Impl(cond, tag, label);
}

void java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 0
                                     Label* label) {
  branchTestInt32Impl(cond, address, label);
}

void MacroAssembler::branchTestInt32(onditioncond const BaseIndex&address,
l)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
ess;
}

r:(onditioncond,const &value,
                                     Label* label) {
  branchTestInt32Impl(cond, value, label);
}

java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
 MacroAssembler:branchTestInt32Impl(( cond, const T&t,
  Condition c = testNull(cond                                     java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 68
  Condition c =testInt32(, t);
  ma_b(label, c);
}

void MacroAssembler::void MacroAssembler::branchTestObject(Condition if cond =Assembler                                 label{
                                           const ValueOperand& value,
                                           Label* label) {
      branchTestMagicjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  ma_b(label
}

void MacroAssembler  (notMagic);
                                      Label* label) {
  branchTestDoubleImpl
}

JSWhyMagic why label){
                                      
  branchTestDoubleImpl(cond, address, label);
}

i(= :Equal) java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
                                      * labeljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  branchTestDoubleImpl(cond,,label;
}

void                                      *label  branchTestMagic(NotEqual ,label);
                                      Label* label) {
  branchTestDoubleImpl(cond, value, label);
}

template <typename T>
void MacroAssembler::branchTestDoubleImpl(Condition cond
                                          Label* label) {
  ondition c =testDoublecond,t;
  ma_b(label, c);
}

oidMacroAssembler::branchTestDoubleTruthy( , FloatRegistercond=Assembler:|  =:NotEqual);
                                            Label* label) {
  Condition c = java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
  label,;
}

void MacroAssembler::branchTestNumber(Condition cond,                                       Label* label) {Label*labeljava.lang.StringIndexOutOfBoundsException: Range [54, 55) out of bounds for length 54
                                      Label* label) {
  java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
}

void MacroAssembler::branchTestNumber(Condition cond, const ValueOperandbranch32(ond, (),rhspayloadReg(,label)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
                                      abel* label) {
   branchTestNumberImpl(cond, value, label);
}

template <typename T>
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
template<typename T>
  cond = testNumber(cond, t);
  ma_b(label, cond);
}

void MacroAssembler::branchTestBoolean(Condition                                        Label* label) {
                                       Label* label) {
   emitSet(cond,)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
}

oid :branchTestBoolean( condT ,
                                       label){
  branchTestBooleanImpl(cond, address, label);
}

void MacroAssemblervoid MacroAssembler::testStringSet(Condition cons,
                                       Label* labelRegister  Condition   testGCThingcond
  branchTestBooleanImpl(cond, address, label);
}

void MacroAssembler::branchTestBoolean(Condition cond,
                                       const ValueOperandvoidMacroAssembler::branchTestPrimitive(Condition cond, Register tag,
                                       Label* label) {
  branchTestBooleanImpl((cond, L* label){
}

template <typename T>
void }
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  Condition c = testBoolean(cond, t);
  a_babel )
}

void MacroAssembler::(
                                             
                                             template < T>
  Conditionc=java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  ma_b(label, c);
}

void MacroAssembler::branchTestString(Condition cond, Register tag,
                                      Label*)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
  branchTestStringImplemitSet(, )java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
}

void void MacroAssembler:branchToComputedAddress(Condition c (ondt;
                                      Label* label) {
  branchTestStringImpl(cond, address, label);
}

void MacroAssembler::branchTestString(Condition  Register base = addr.base;
                                      Label* label) {
  branchTestStringImpl(cond, address, label);
}

void                                     .index, LSL, scale) pc;
                                      Label* label) {
  branchTestStringImpl(cond, value, label);
}

template <typename T>
void MacroAssembler// add one extra instruction to accomodate for this shifted offset.
                                          Label* label
  java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 1
  ma_b(label, c);
}

void MacroAssembler                       Register ,Register dest) {
                                            const ValueOperand& value,
                                            java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 0
  onditionjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  ma_b(label, c MacroAssemblerlabel 
}

void java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
         java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 1
  branchTestSymbolImpl(cond, tag, label);
}

void MacroAssembler::branchTestSymbol(Condition cond, const Address& address,
                                      (,value,abeljava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
  branchTestSymbolImpl(cond, address, label);
}

voidMacroAssembler:branchTestSymbol
                                      Label*MacroAssemblerLabel*labeljava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 56
  branchTestSymbolImpl(cond, address, label);
}

void MacroAssembler::branchTestSymbol(Condition cond, const ValueOperandS*);
                                      abel label) {
  branchTestSymbolImpl(cond, value, label);
}

template <typename java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                          Label* label) {
  Condition c = testSymbol(cond,c(, ,rhs ,d)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
  ma_b(label, c);
}

voidMacroAssembler:branchTestBigInt(Condition , Register tag,
                                      abel label){
  branchTestBigIntImpl(cond, tag, label);
}

void (Condition cond constAddress& address,
                                      Label* label) {
  branchTestBigIntImpl(cond, address, label);
}

void MacroAssembler::branchTestBigInt(Condition cond, const BaseIndex& address,
                                      Label* label) {
  branch32(cond, ToPayload(valaddr), 
}

void MacroAssembler
                                      Label* label) {
  branchTestBigIntImpl(cond, value, label);
}

template<pename >
void MacroAssembler::branchTestBigIntImpl(Condition cond, const T& t,
                                          Label* label) {
  Condition c = testBigInt(cond, t);
  ma_b(label                                      why Label* label) {
}

 MacroAssembler:java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 56
                                            const ValueOperand& value,
                                            Label* label) {
  Condition c = testBigIntTruthy(truthy, value);
  ma_b(label, c);
}

void MacroAssembler::branchTestNull(Condition cond, Register tag,
                                    Label* label/java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
  java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 39
}

void java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
                                    Label* void   }
  branchTestNullImpl(condconst
}

voidcmp32(, rhs);
                                    S scratch(* (java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 18
  branchTestNullImpl(cond, address, label);
}

void MacroAssembler::branchTestNull(Condition cond, const java.lang.StringIndexOutOfBoundsException: Range [0, 70) out of bounds for length 66
                                    abel*label)constValueOperand&rhsjava.lang.StringIndexOutOfBoundsException: Range [69, 67) out of bounds for length 77
  branchTestNullImpl(cond,
}LabelnotSameValue;

template <typenameT>
r::branchTestNullImpl(Condition cond, const T&     (Assembler::NotEqual, ToType(lhs), rhs.typeReg() ¬SameValue;
                                        Label* label) {
  Condition c=testNull(ond t);
  ma_b(abel, c);
}

voidMacroAssembler::branchTestObject(Condition cond, Register tag,
                                      * ){
  branchTestObjectImpl(cond, tag, label);
}

void MacroAssembler::branchTestObject(Condition cond, const Address& address,
                                      abel*label){
  branchTestObjectImpl(cond, address, label);
}

 java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 79
                                      Label* label) {
  ranchTestObjectImpl(cond address,label;
}

::Condition   ValueOperand&value,
                                      Label* label) {
  branchTestObjectImpl(cond, value, label);
}

template <typename Ttemplate<                  Imm32 mask Register src, Register dest){
::branchTestObjectImpl(Condition cond, const T& t,
                                          Label* label) {
  Condition c = testObject(cond, t);
  ma_b(label, c);
}

ing(onditioncond onst &address,
                                       Label* label) {
  branchTestGCThingImpl(condjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
}

void MacroAssembler::branchTestGCThing(Condition cond, const BaseIndex& address,
                                       Label* label) {
  branchTestGCThingImpl(ond, address,label)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
}

void MacroAssembler
                                       const ValueOperandtemplate  (0, dest,cond;
                                       Label* label) {
  branchTestGCThingImplcond, value, label);
}

template <typename TemitSet(cond,dest)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
void MacroAssembler::branchTestGCThingImpl(Condition cond, const T& t,
                                           Label* label) {
  Condition c = testGCThing(cond, t);
  ma_b(label, c);
}

void MacroAssembler::branchTestPrimitive(Condition cond, Register tag,
                                         Label* label) {
  branchTestPrimitiveImpl(cond, tag, label);
}

void ::branchTestPrimitive( ,
                                         const ValueOperand& value,
                                         Label* label) {
  branchTestPrimitiveImpl(cond, value, label);
}

template <typename T>
void MacroAssembler::branchTestPrimitiveImpl(Condition cond, const T& t,
                                             Label* label) {
  Condition c = testPrimitive(cond, t);
  ma_b(label, c);
}

voidcmp32(, rhs)java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
                                     Label* label) {
  branchTestMagicImpl(cond, tag, label);
}

void MacroAssembler:                                           RegistermaybeScratch,
                                     Label* label) {
  branchTestMagicImpl(cond, address, label);
}

void MacroAssembler::branchTestMagic(Condition cond, const BaseIndex& address,
                                     Label* label) {
  branchTestMagicImpl(cond, address, label);
}

void MacroAssembler::branchTestMagic(voidMacroAssembler::pectreBoundsCheckPtr( index
                                     label)java.lang.StringIndexOutOfBoundsException: Range [52, 53) out of bounds for length 52
  branchTestMagicImpl(cond, value, label);
}

template <java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
void java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                         // ========================================================================
  cond = testMagic(cond, t);
  ma_b                                  dest java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
}

void MacroAssembler::branchTestMagic(Condition cond, const Address  SecondScratchRegisterScope scratch2(this;
                                     JSWhyMagic why,  ma_ldr(rhs, scratch, scratch2);
  MOZ_ASSERT(cond == Assembler::Equal || cond == Assembler::NotEqual);

Label ;
  f (
    (Assembler:NotEqualvaladdr,notMagic);
  }Register src Register dest){
    branchTestMagic(Assembler::NotEqual, valaddr, label);
  }

  branch32(cond,   return FaultingCodeOffsetoffset.())
  bind(¬Magic :java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 78
}

void cmp32Move32condlhs, java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
                                     why *label){
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 70

  Label notMagic;
  ::{
    branchTestMagic(Assembler::NotEqual, valaddr, ¬Magic);
  } else {
    branchTestMagic(Assembler::NotEqual,   ScratchRegisterScopescratch(*); MacroAssembler:(c,, lhs,
  }

  branch32(cond, ToPayload(valaddr), Imm32(why), label);
  bind(¬Magic);
}

template <typename T>
void MacroAssembler::branchTestValue(Condition cond, const T& lhs,
                                     const ValueOperand& rhs, Label* label) {
java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 69

  Label   // This is neverused, but  present   const Address&destjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
  if (cond == Assembler::Equal) {
    branch32(Assembler::NotEqual, ToType(lhs), rhs.typeReg(), ¬SameValue);
  } else {
    branch32(Assembler:NotEqual, ToType(lhs), rhs.typeReg(), label);
  }

  branch32}
  bind(¬SameValue);
}

template <typename T>
void MacroAssembler java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 80
                                   ){
  cond = testNumber(cond, src);
  emitSet(cond, dest);
}

template <typename T>
void MacroAssembler::testBooleanSet(Condition cond, const T& src,
                                    Register dest) {
  cond = testBoolean(cond, src);
  emitSetcond dest;
}

<ypenameT  MOZ_ASSERT(cond = ::ero |cond==Assembler:NonZero;
void MacroAssembler::testStringSet(Condition cond, const T& src,
             Register dest)    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 22
  cond = testString(, )java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
  emitSet(cond, dest);
}

template <typename T>
void MacroAssembler::testSymbolSet(Condition cond, const T& src,
                                   Register dest) {
  cond = testSymbol(cond, src);
  emitSet(cond, dest);
}

MOZ_ASSERT(cond / <0, then we want to clamp to 0, otherwise, we wish to clamp to 255
void MacroAssembler:  as_mov(scratch asr(,8,SetCC (dest,java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
                                   Register dest  ma_mov(Imm32),reg,Signed
  
  emitSet(cond, dest);
}

voidma_mov(src,dest,LeaveCC, cond);
  MOZ_ASSERT(
      addr.offset == 0,
      "NYI: offsets from pc should be shifted by the number of instructions.");

  Register base = addr.base;
  scale= :ShiftOf(s)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52

  ma_ldr(DTRAddr(base, DtrRegImmShift(addr.index, LSL, scale)), pc);

  if (base == pc) {
// When loading from pc, the pc is shifted to the next instruction, we
       // add one extra instruction to accomodate for this shifted offset.
    breakpoint();
  }
}

void MacroAssembler::cmp32Move32(Condition                                          Label failure {
                                 Register src, Register dest) {
  (lhs, )
  ma_mov(src, dest, LeaveCC, cond);
}

void MacroAssembler::cmp32Move32(Condition cond, Register lhs, Register  if (JitOptions.pectreIndexMasking{
                                 Register src, Register dest) {
  cmp32(lhs, rhs);
  a_mov
}

void MacroAssembler::cmp32MovePtr(Condition                                           RegistermaybeScratch,
                                  Register src, Register dest) {
  cmp32( rhs)
voidMacroAssembler:fallibleUnboxPtr MOZ_ASSERT(length. !=maybeScratch);
}

void MacroAssembler::cmp32Move32(Condition cond, Register lhs,
                                  Address ,Register src,
                                 Register dest) {
  ScratchRegisterScope scratch(*this);
  SecondScratchRegisterScope scratch2(*    ma_mov(Imm32(0), index, Assembler::BelowOrEqual);
  ma_ldr(rhs, scratch, scratch2);
  cmp32Move32(cond, lhs, scratch, src, dest);
}

void::cmpPtrMovePtr(Condition cond, Register lhs, Imm32  rhs,
                                   Register src, Register dest) {
  cmp32MovePtr(cond, lhs, rhs, src, dest);
}

void MacroAssembler::cmpPtrMovePtr(Condition cond, Register lhs, Register rhs,
                                   Register src, Register dest) {
  cmp32Move32(cond, lhs, rhs, src, dest);
}

void MacroAssembler:cmpPtrMovePtr(Condition cond, Register lhs,
                                   const Address& rhs, Register src,
                                   Register destbind(;
  cmp32Move32(cond, lhs, rhs, src, dest);
}

void MacroAssembler:cmp32Load32( cond,Register
                                  & ,const  ,
                                 Registerdest) {
  // This is never used, but must be present to facilitate linking on arm.
  MOZ_CRASH("No known use cases");
}

void MacroAssembler::cmp32Load32(Condition cond, Register lhs, Register rhs,
                                 const Address& src, Register dest) {
  // This is never used, but must be present to facilitate linking on arm.
  MOZ_CRASH("No known use cases");
}

void MacroAssembler::cmp32Load32(java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 39
                                  Address& src, Register dest) {
  FaultingCodeOffset MacroAssembler::storeDouble(FloatRegister src,
   *);
  (src cratch , );
}

oid acroAssembler:cmp32LoadPtr(Condition cond,const Address&lhs Imm32 rhs,
                                  const Address& src, Register dest) {
  cmp32(lhs, rhs);
  ScratchRegisterScope scratch(*this);
  ma_ldrsrc, dest,scratch, Offset, cond)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
}

(,java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 71
                                   Imm32 mask, java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
                                   Register dest) {
  MOZ_ASSERT(cond == Assembler  ScratchRegisterScope scratch(this;
  (,mask);
   scratch(*);
  ma_ldr(src, dest, scratch, Offset, condsreturn java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 12
}

void MacroAssembler::test32MovePtr(Condition cond, Register operand, Imm32 mask,
                                   Register src, Register dest) {
   MOZ_ASSERT(= : |condjava.lang.StringIndexOutOfBoundsException: Range [45, 46) out of bounds for length 45
  test32(operand  uint32_t scale = Imm32::ShiftOf(addr.scale).value;
  ma_mov(src, dest, LeaveCC, cond)Label ;
}

void MacroAssembler::test32MovePtr(                                scratch2,scale,addr.offset);
                                   Imm32 mask, java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 48
  MOZ_ASSERT(cond == Assembler::Zero || cond == Assembler}
  test32(addr, mask);
  ma_mov(src, dest, LeaveCC, cond);
}

void MacroAssembler :java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
                                    Register dest) {
  ma_mov(src, dest,ma_vxfer(branch32ssembler: lhsHigh,rhsHigh,;
}

voidMacroAssembler:spectreZeroRegisterCondition cond,case:
          {
  ma_mov(Imm32(0), dest, cond);
}

voidMacroAssembler::spectreBoundsCheck32(Register index, Register length,
                                          Register maybeScratchcase Assembler:AboveOrEqual:{
                                          *failure) java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
  MOZ_ASSERT(length != maybeScratch);
  MOZ_ASSERT(index != maybeScratch);

  branch32(Assembler::BelowOrEqual, length, index, failure);

  if (JitOptions.spectreIndexMasking) {
    ma_mov(Imm32(0), index, Assembler::BelowOrEqual);
  
}

voidMacroAssembler::(
                                          ,
                                          Label* failure) {
  MOZ_ASSERT( ! lengthbase;
  MOZ_ASSERT(length.java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 20
  MOZ_ASSERT(index != maybeScratch);

  branch32(:BelowOrEqual,length,index,failure)

  if (JitOptions.spectreIndexMasking) {
    ma_mov(Imm32(0), index, Assembler::BelowOrEqual);
  }
}

void MacroAssembler::spectreBoundsCheckPtr/
                                           
                                           Label*  ScratchRegisterScope scratch(*;
  spectreBoundsCheck32(  as_mov(cratch, reg 8) etCC;
 ma_mov(0xff) ,NotEqual)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37

void MacroAssembler::spectreBoundsCheckPtr(Register index,
                                           const Address& length,
                                           Register maybeScratch,
                                           Label* failure) {
  (index length ,failure);
}

// ========================================================================
// Memory access primitives.
FaultingCodeOffset MacroAssembler::      java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
                                               const Address& addr) {
  ScratchRegisterScope scratch(*this);
  java.lang.StringIndexOutOfBoundsException: Range [27, 28) out of bounds for length 27
  returnFaultingCodeOffset(ffset.etOffset());
}
FaultingCodeOffset MacroAssembler::storeDouble(FloatRegister src,
                                               const BaseIndex& addr) {
  ScratchRegisterScope scratch(*this);
  SecondScratchRegisterScope  
  uint32_t scale = Imm32::ShiftOf(addr.scale).value;
  BufferOffset offset = ma_vstr(src, addr.base, addr.index, scratch, scratch2,
                                scale, addr.offset);
  return FaultingCodeOffset(offset.getOffset());


FaultingCodeOffset MacroAssembler::storeFloat32(FloatRegister src,
                                                const Address& addr) {
  ScratchRegisterScope scratch(*this);
  BufferOffset offset = ma_vstr(src.asSingle(), addr, scratch);
  return FaultingCodeOffset(offset.getOffset());
}
FaultingCodeOffset MacroAssembler::storeFloat32(FloatRegister src,
                                                const BaseIndex& addr) {
  ScratchRegisterScope scratch(*this);
  SecondScratchRegisterScope scratch2(*this);
  uint32_t scale = Imm32::ShiftOf(addr.scale).value;
  BufferOffset offset = ma_vstr(src.asSingle(), addr.base, addr.index, scratch,
                                scratch2, scale, addr.offset);
  return FaultingCodeOffset(offset.getOffset());
}

aultingCodeOffsetMacroAssembler:storeFloat16(FloatRegister ,
                                                const java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 1
                                                //}}} check_macroassembler_style
  ma_vxfer(src, scratch);

  / store16 uses |strh|, which supports unaligned access.
  return (scratch )java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
}
FaultingCodeOffset MacroAssembler::storeFloat16(FloatRegister src,
                                                const BaseIndex& dest,
                                                Register scratch) {
  ma_vxfer(src, scratch);

  // store16 uses |strh|, which supports unaligned access.
  return store16(scratch, dest);
}

void MacroAssembler::memoryBarrier(MemoryBarrier barrier) {
  // On ARMv6 the optional argument (BarrierST, etc) is ignored.
  if (barrier.isSyncStoreStore()) {
    ma_dsb(BarrierST);
  } else if (barrier.hasSync()) {
    ma_dsb();
  } else if (barrier.isStoreStore()) {
    ma_dmb(BarrierST);
  } else if (!barrier.isNone()) {
    ma_dmb();
  }
}

// ===============================================================
// Clamping functions.

void MacroAssembler::clampIntToUint8(Register reg) {
  // Look at (reg >> 8) if it is 0, then reg shouldn't be clamped if it is
  // <0, then we want to clamp to 0, otherwise, we wish to clamp to 255
  ScratchRegisterScope scratch(*this);
  as_mov(scratch, asr(reg, 8), SetCC);
ma_movImm320xff,reg, ;
  ma_mov(Imm32(0), reg, Signed);
}

template <typename T>
void MacroAssemblerARMCompat::fallibleUnboxPtrImpl(const T& src, Register dest,
                                                   JSValueType type,
                                                   Label* fail) {
  switch (type)  Label* success Label*fail){
    case JSVAL_TYPE_OBJECT:
      asMasm().branchTestObject(Assembler::NotEqual, src, fail);
      break;
    case JSVAL_TYPE_STRING:
      asMasm().branchTestString(Assembler::NotEqual, src, fail);
      break;
YPE_SYMBOL:
      asMasm().branchTestSymbol(Assembler::NotEqual, src, fail);
      break;
    case JSVAL_TYPE_BIGINT:
      asMasm().branchTestBigInt(Assembler::NotEqual, src, fail);
      break;
    :
      MOZ_CRASH("Unexpected type");
  }
  unboxNonDouble(src, dest, type);
}

void MacroAssembler;
                                      JSValueType type, Label* fail) {
  fallibleUnboxPtrImpl(src, dest, type, fail  if(!fail {
}

void MacroAssembler::fallibleUnboxPtr(const Address& src, Register dest,
                                      JSValueType type, Label* fail) {
  fallibleUnboxPtrImpl(src, dest, type, fail);
}

MacroAssemblerjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 74
                                      JSValueType type, Label* fail) {
  masmbranch32Assembler:,lhsHigh  success;
}

//}}} check_macroassembler_style
// ===============================================================

void MacroAssemblerARMCompat::incrementInt32Value(const Address& addr) {
  java.lang.StringIndexOutOfBoundsException: Range [36, 8) out of bounds for length 44
}

template <typename case :Above:
void ::cmp64SetAliased(cond  lhs T2 rhs,
                                              Register dest) {
     java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 24

  Label success, done;

  masm.branch64(cond, lhs, rhs, &success);
  masm.move32      cmp32lhsHigh,r)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
  masm.jump(&done);
  bind(success);
  masm.move32(Imm32(1), dest);
  masm.bind(&done);
}

template <typename T1, typename T2>
void MacroAssemblerARMCompat::cmp64SetNonAliased(Condition cond, T1 lhs, T2 rhs,
                                                 Register dest) {
  auto& masm = asMasm();

  Label done;

  masm.move32(Imm32(1), dest);
  masm.branch64(cond, lhs, rhs, &done);
  masm.move32(Imm32(0), dest);
  masm.bind(&done);
}

template <typename T1, typename T2>
void MacroAssemblerARMCompat::branch64Impl(Condition cond, T1 lhs, T2 rhs,
                                           Label* success, Label* fail) {
  auto& masm = asMasm();

  auto words = [](auto operand) {
    using Operand = decltype(operand);
    if constexpr (std::is_same_v<Operand, Imm64>) {
      return std::pair{operand.hi(), operand.low()};
    } else if constexpr (std::is_same_v<Operand, Register64>) {
      return std::pair{operand.high, operand.low};
    } else {
      return std::pair{HighWord(operand), LowWord(operand)};
    }
  };

  auto [lhsHigh, lhsLow] = words(lhs);
  auto [rhsHigh, rhsLow] = words(rhs);

  bool fallthrough = false;
  Label fallthroughLabel;

  if (!fail) {
    fail = &fallthroughLabel;
    fallthrough = true;
  }

  switch (cond) {
    case Assembler::Equal:
      masm.branch32(Assembler::NotEqual, lhsLow, rhsLow, fail);
      masm.branch32(Assembler::Equal, lhsHigh, rhsHigh, success);
      break;
    case Assembler::NotEqual:
      masm.branch32(Assembler::NotEqual, lhsLow, rhsLow, success);
      masm.branch32(Assembler::NotEqual, lhsHigh, rhsHigh, success);
      break;
    case Assembler::LessThan:
    case Assembler::LessThanOrEqual:
    case Assembler::GreaterThan:
    case Assembler::GreaterThanOrEqual:
    case Assembler::Below:
    case Assembler::BelowOrEqual:
    case Assembler::Above:
    case Assembler::AboveOrEqual: {
      Assembler::Condition cond1 = Assembler::ConditionWithoutEqual(cond);
      Assembler::Condition cond2 =
          Assembler::ConditionWithoutEqual(Assembler::InvertCondition(cond));
      Assembler::Condition cond3 = Assembler::UnsignedCondition(cond);

      cmp32(lhsHigh, rhsHigh);
      ma_b(success, cond1);
      ma_b(fail, cond2);
      cmp32(lhsLow, rhsLow);
      ma_b(success, cond3);
      break;
    }
    default:
      MOZ_CRASH("Condition code not supported");
      break;
  }

  if (fallthrough) {
    bind(fail);
  } else {
    jump(fail);
  }
}

}  // namespace jit
}  // namespace js

#endif /* jit_arm_MacroAssembler_arm_inl_h */

Messung V0.5 in Prozent
C=96 H=100 G=97

¤ Dauer der Verarbeitung: 0.34 Sekunden  (vorverarbeitet am  2026-08-26) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.