You are here

public function ParagonIE_Sodium_Core32_Int32::addInt32 in Automatic Updates 8

Same name and namespace in other branches
  1. 7 vendor/paragonie/sodium_compat/src/Core32/Int32.php \ParagonIE_Sodium_Core32_Int32::addInt32()

Adds two int32 objects

Parameters

ParagonIE_Sodium_Core32_Int32 $addend:

Return value

ParagonIE_Sodium_Core32_Int32

File

vendor/paragonie/sodium_compat/src/Core32/Int32.php, line 51

Class

ParagonIE_Sodium_Core32_Int32
Class ParagonIE_Sodium_Core32_Int32

Code

public function addInt32(ParagonIE_Sodium_Core32_Int32 $addend) {
  $i0 = $this->limbs[0];
  $i1 = $this->limbs[1];
  $j0 = $addend->limbs[0];
  $j1 = $addend->limbs[1];
  $r1 = $i1 + ($j1 & 0xffff);
  $carry = $r1 >> 16;
  $r0 = $i0 + ($j0 & 0xffff) + $carry;
  $carry = $r0 >> 16;
  $r0 &= 0xffff;
  $r1 &= 0xffff;
  $return = new ParagonIE_Sodium_Core32_Int32(array(
    $r0,
    $r1,
  ));
  $return->overflow = $carry;
  $return->unsignedInt = $this->unsignedInt;
  return $return;
}