NumbersKt__FloorDivModKt.smali
.class Lkotlin/NumbersKt__FloorDivModKt;
.super Lkotlin/NumbersKt__BigIntegersKt;
.source "FloorDivMod.kt"
# annotations
.annotation runtime Lkotlin/Metadata;
d1 = {
"\u0000 \n\u0000\n\u0002\u0010\u0008\n\u0002\u0010\u0005\n\u0000\n\u0002\u0010\t\n\u0002\u0010\n\n\u0000\n\u0002\u0010\u0006\n\u0002\u0010\u0007\n\u0000\u001a\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00022\u0006\u0010\u0003\u001a\u00020\u0002H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00022\u0006\u0010\u0003\u001a\u00020\u0001H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0004*\u00020\u00022\u0006\u0010\u0003\u001a\u00020\u0004H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00022\u0006\u0010\u0003\u001a\u00020\u0005H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00012\u0006\u0010\u0003\u001a\u00020\u0002H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00012\u0006\u0010\u0003\u001a\u00020\u0001H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0004*\u00020\u00012\u0006\u0010\u0003\u001a\u00020\u0004H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00012\u0006\u0010\u0003\u001a\u00020\u0005H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0004*\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0002H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0004*\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0001H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0004*\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0004H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0004*\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0005H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00052\u0006\u0010\u0003\u001a\u00020\u0002H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00052\u0006\u0010\u0003\u001a\u00020\u0001H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0004*\u00020\u00052\u0006\u0010\u0003\u001a\u00020\u0004H\u0087\u0008\u001a\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00052\u0006\u0010\u0003\u001a\u00020\u0005H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0002*\u00020\u00022\u0006\u0010\u0003\u001a\u00020\u0002H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0001*\u00020\u00022\u0006\u0010\u0003\u001a\u00020\u0001H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0004*\u00020\u00022\u0006\u0010\u0003\u001a\u00020\u0004H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0005*\u00020\u00022\u0006\u0010\u0003\u001a\u00020\u0005H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0007*\u00020\u00072\u0006\u0010\u0003\u001a\u00020\u0007H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0007*\u00020\u00072\u0006\u0010\u0003\u001a\u00020\u0008H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0007*\u00020\u00082\u0006\u0010\u0003\u001a\u00020\u0007H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0008*\u00020\u00082\u0006\u0010\u0003\u001a\u00020\u0008H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0002*\u00020\u00012\u0006\u0010\u0003\u001a\u00020\u0002H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0001*\u00020\u00012\u0006\u0010\u0003\u001a\u00020\u0001H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0004*\u00020\u00012\u0006\u0010\u0003\u001a\u00020\u0004H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0005*\u00020\u00012\u0006\u0010\u0003\u001a\u00020\u0005H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0002*\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0002H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0001*\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0001H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0004*\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0004H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0005*\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0005H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0002*\u00020\u00052\u0006\u0010\u0003\u001a\u00020\u0002H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0001*\u00020\u00052\u0006\u0010\u0003\u001a\u00020\u0001H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0004*\u00020\u00052\u0006\u0010\u0003\u001a\u00020\u0004H\u0087\u0008\u001a\u0015\u0010\u0006\u001a\u00020\u0005*\u00020\u00052\u0006\u0010\u0003\u001a\u00020\u0005H\u0087\u0008\u00a8\u0006\t"
}
d2 = {
"floorDiv",
"",
"",
"other",
"",
"",
"mod",
"",
"",
"kotlin-stdlib"
}
k = 0x5
mv = {
0x1,
0x6,
0x0
}
xi = 0x31
xs = "kotlin/NumbersKt"
.end annotation
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Lkotlin/NumbersKt__BigIntegersKt;-><init>()V
return-void
.end method
.method private static final floorDiv(BB)I
.registers 4
.line 18
div-int v0, p0, p1
xor-int v1, p0, p1
if-gez v1, :cond_b
mul-int/2addr p1, v0
if-eq p1, p0, :cond_b
add-int/lit8 v0, v0, -0x1
:cond_b
return v0
.end method
.method private static final floorDiv(BI)I
.registers 4
.line 50
div-int v0, p0, p1
xor-int v1, p0, p1
if-gez v1, :cond_b
mul-int/2addr p1, v0
if-eq p1, p0, :cond_b
add-int/lit8 v0, v0, -0x1
:cond_b
return v0
.end method
.method private static final floorDiv(BS)I
.registers 4
.line 34
div-int v0, p0, p1
xor-int v1, p0, p1
if-gez v1, :cond_b
mul-int/2addr p1, v0
if-eq p1, p0, :cond_b
add-int/lit8 v0, v0, -0x1
:cond_b
return v0
.end method
.method private static final floorDiv(IB)I
.registers 4
.line 146
div-int v0, p0, p1
xor-int v1, p0, p1
if-gez v1, :cond_b
mul-int/2addr p1, v0
if-eq p1, p0, :cond_b
add-int/lit8 v0, v0, -0x1
:cond_b
return v0
.end method
.method private static final floorDiv(II)I
.registers 4
.line 178
div-int v0, p0, p1
xor-int v1, p0, p1
if-gez v1, :cond_b
mul-int/2addr p1, v0
if-eq p1, p0, :cond_b
add-int/lit8 v0, v0, -0x1
:cond_b
return v0
.end method
.method private static final floorDiv(IS)I
.registers 4
.line 162
div-int v0, p0, p1
xor-int v1, p0, p1
if-gez v1, :cond_b
mul-int/2addr p1, v0
if-eq p1, p0, :cond_b
add-int/lit8 v0, v0, -0x1
:cond_b
return v0
.end method
.method private static final floorDiv(SB)I
.registers 4
.line 82
div-int v0, p0, p1
xor-int v1, p0, p1
if-gez v1, :cond_b
mul-int/2addr p1, v0
if-eq p1, p0, :cond_b
add-int/lit8 v0, v0, -0x1
:cond_b
return v0
.end method
.method private static final floorDiv(SI)I
.registers 4
.line 114
div-int v0, p0, p1
xor-int v1, p0, p1
if-gez v1, :cond_b
mul-int/2addr p1, v0
if-eq p1, p0, :cond_b
add-int/lit8 v0, v0, -0x1
:cond_b
return v0
.end method
.method private static final floorDiv(SS)I
.registers 4
.line 98
div-int v0, p0, p1
xor-int v1, p0, p1
if-gez v1, :cond_b
mul-int/2addr p1, v0
if-eq p1, p0, :cond_b
add-int/lit8 v0, v0, -0x1
:cond_b
return v0
.end method
.method private static final floorDiv(BJ)J
.registers 11
int-to-long v0, p0
.line 66
div-long v2, v0, p1
xor-long v4, v0, p1
const-wide/16 v6, 0x0
cmp-long p0, v4, v6
if-gez p0, :cond_13
mul-long/2addr p1, v2
cmp-long p0, p1, v0
if-eqz p0, :cond_13
const-wide/16 p0, -0x1
add-long/2addr v2, p0
:cond_13
return-wide v2
.end method
.method private static final floorDiv(IJ)J
.registers 11
int-to-long v0, p0
.line 199
div-long v2, v0, p1
xor-long v4, v0, p1
const-wide/16 v6, 0x0
cmp-long p0, v4, v6
if-gez p0, :cond_13
mul-long/2addr p1, v2
cmp-long p0, p1, v0
if-eqz p0, :cond_13
const-wide/16 p0, -0x1
add-long/2addr v2, p0
:cond_13
return-wide v2
.end method
.method private static final floorDiv(JB)J
.registers 11
int-to-long v0, p2
.line 215
div-long v2, p0, v0
xor-long v4, p0, v0
const-wide/16 v6, 0x0
cmp-long p2, v4, v6
if-gez p2, :cond_13
mul-long/2addr v0, v2
cmp-long p0, v0, p0
if-eqz p0, :cond_13
const-wide/16 p0, -0x1
add-long/2addr v2, p0
:cond_13
return-wide v2
.end method
.method private static final floorDiv(JI)J
.registers 11
int-to-long v0, p2
.line 247
div-long v2, p0, v0
xor-long v4, p0, v0
const-wide/16 v6, 0x0
cmp-long p2, v4, v6
if-gez p2, :cond_13
mul-long/2addr v0, v2
cmp-long p0, v0, p0
if-eqz p0, :cond_13
const-wide/16 p0, -0x1
add-long/2addr v2, p0
:cond_13
return-wide v2
.end method
.method private static final floorDiv(JJ)J
.registers 10
.line 263
div-long v0, p0, p2
xor-long v2, p0, p2
const-wide/16 v4, 0x0
cmp-long v2, v2, v4
if-gez v2, :cond_12
mul-long/2addr p2, v0
cmp-long p0, p2, p0
if-eqz p0, :cond_12
const-wide/16 p0, -0x1
add-long/2addr v0, p0
:cond_12
return-wide v0
.end method
.method private static final floorDiv(JS)J
.registers 11
int-to-long v0, p2
.line 231
div-long v2, p0, v0
xor-long v4, p0, v0
const-wide/16 v6, 0x0
cmp-long p2, v4, v6
if-gez p2, :cond_13
mul-long/2addr v0, v2
cmp-long p0, v0, p0
if-eqz p0, :cond_13
const-wide/16 p0, -0x1
add-long/2addr v2, p0
:cond_13
return-wide v2
.end method
.method private static final floorDiv(SJ)J
.registers 11
int-to-long v0, p0
.line 130
div-long v2, v0, p1
xor-long v4, v0, p1
const-wide/16 v6, 0x0
cmp-long p0, v4, v6
if-gez p0, :cond_13
mul-long/2addr p1, v2
cmp-long p0, p1, v0
if-eqz p0, :cond_13
const-wide/16 p0, -0x1
add-long/2addr v2, p0
:cond_13
return-wide v2
.end method
.method private static final mod(BB)B
.registers 4
.line 28
rem-int/2addr p0, p1
xor-int v0, p0, p1
neg-int v1, p0
or-int/2addr v1, p0
and-int/2addr v0, v1
shr-int/lit8 v0, v0, 0x1f
and-int/2addr p1, v0
add-int/2addr p0, p1
int-to-byte p0, p0
return p0
.end method
.method private static final mod(IB)B
.registers 4
.line 156
rem-int/2addr p0, p1
xor-int v0, p0, p1
neg-int v1, p0
or-int/2addr v1, p0
and-int/2addr v0, v1
shr-int/lit8 v0, v0, 0x1f
and-int/2addr p1, v0
add-int/2addr p0, p1
int-to-byte p0, p0
return p0
.end method
.method private static final mod(JB)B
.registers 9
int-to-long v0, p2
.line 225
rem-long/2addr p0, v0
xor-long v2, p0, v0
neg-long v4, p0
or-long/2addr v4, p0
and-long/2addr v2, v4
const/16 p2, 0x3f
shr-long/2addr v2, p2
and-long/2addr v0, v2
add-long/2addr p0, v0
long-to-int p0, p0
int-to-byte p0, p0
return p0
.end method
.method private static final mod(SB)B
.registers 4
.line 92
rem-int/2addr p0, p1
xor-int v0, p0, p1
neg-int v1, p0
or-int/2addr v1, p0
and-int/2addr v0, v1
shr-int/lit8 v0, v0, 0x1f
and-int/2addr p1, v0
add-int/2addr p0, p1
int-to-byte p0, p0
return p0
.end method
.method private static final mod(DD)D
.registers 11
rem-double/2addr p0, p2
const-wide/16 v0, 0x0
cmpg-double v0, p0, v0
const/4 v1, 0x1
const/4 v2, 0x0
if-nez v0, :cond_b
move v0, v1
goto :goto_c
:cond_b
move v0, v2
:goto_c
if-nez v0, :cond_1f
.line 329
invoke-static {p0, p1}, Ljava/lang/Math;->signum(D)D
move-result-wide v3
invoke-static {p2, p3}, Ljava/lang/Math;->signum(D)D
move-result-wide v5
cmpg-double v0, v3, v5
if-nez v0, :cond_1b
goto :goto_1c
:cond_1b
move v1, v2
:goto_1c
if-nez v1, :cond_1f
add-double/2addr p0, p2
:cond_1f
return-wide p0
.end method
.method private static final mod(DF)D
.registers 11
float-to-double v0, p2
rem-double/2addr p0, v0
const-wide/16 v2, 0x0
cmpg-double p2, p0, v2
const/4 v2, 0x1
const/4 v3, 0x0
if-nez p2, :cond_c
move p2, v2
goto :goto_d
:cond_c
move p2, v3
:goto_d
if-nez p2, :cond_20
.line 316
invoke-static {p0, p1}, Ljava/lang/Math;->signum(D)D
move-result-wide v4
invoke-static {v0, v1}, Ljava/lang/Math;->signum(D)D
move-result-wide v6
cmpg-double p2, v4, v6
if-nez p2, :cond_1c
goto :goto_1d
:cond_1c
move v2, v3
:goto_1d
if-nez v2, :cond_20
add-double/2addr p0, v0
:cond_20
return-wide p0
.end method
.method private static final mod(FD)D
.registers 11
float-to-double v0, p0
rem-double/2addr v0, p1
const-wide/16 v2, 0x0
cmpg-double p0, v0, v2
const/4 v2, 0x1
const/4 v3, 0x0
if-nez p0, :cond_c
move p0, v2
goto :goto_d
:cond_c
move p0, v3
:goto_d
if-nez p0, :cond_20
.line 304
invoke-static {v0, v1}, Ljava/lang/Math;->signum(D)D
move-result-wide v4
invoke-static {p1, p2}, Ljava/lang/Math;->signum(D)D
move-result-wide v6
cmpg-double p0, v4, v6
if-nez p0, :cond_1c
goto :goto_1d
:cond_1c
move v2, v3
:goto_1d
if-nez v2, :cond_20
add-double/2addr v0, p1
:cond_20
return-wide v0
.end method
.method private static final mod(FF)F
.registers 6
rem-float/2addr p0, p1
const/4 v0, 0x0
cmpg-float v0, p0, v0
const/4 v1, 0x1
const/4 v2, 0x0
if-nez v0, :cond_a
move v0, v1
goto :goto_b
:cond_a
move v0, v2
:goto_b
if-nez v0, :cond_1e
.line 291
invoke-static {p0}, Ljava/lang/Math;->signum(F)F
move-result v0
invoke-static {p1}, Ljava/lang/Math;->signum(F)F
move-result v3
cmpg-float v0, v0, v3
if-nez v0, :cond_1a
goto :goto_1b
:cond_1a
move v1, v2
:goto_1b
if-nez v1, :cond_1e
add-float/2addr p0, p1
:cond_1e
return p0
.end method
.method private static final mod(BI)I
.registers 4
.line 60
rem-int/2addr p0, p1
xor-int v0, p0, p1
neg-int v1, p0
or-int/2addr v1, p0
and-int/2addr v0, v1
shr-int/lit8 v0, v0, 0x1f
and-int/2addr p1, v0
add-int/2addr p0, p1
return p0
.end method
.method private static final mod(II)I
.registers 4
.line 191
rem-int/2addr p0, p1
xor-int v0, p0, p1
neg-int v1, p0
or-int/2addr v1, p0
and-int/2addr v0, v1
shr-int/lit8 v0, v0, 0x1f
and-int/2addr p1, v0
add-int/2addr p0, p1
return p0
.end method
.method private static final mod(JI)I
.registers 9
int-to-long v0, p2
.line 257
rem-long/2addr p0, v0
xor-long v2, p0, v0
neg-long v4, p0
or-long/2addr v4, p0
and-long/2addr v2, v4
const/16 p2, 0x3f
shr-long/2addr v2, p2
and-long/2addr v0, v2
add-long/2addr p0, v0
long-to-int p0, p0
return p0
.end method
.method private static final mod(SI)I
.registers 4
.line 124
rem-int/2addr p0, p1
xor-int v0, p0, p1
neg-int v1, p0
or-int/2addr v1, p0
and-int/2addr v0, v1
shr-int/lit8 v0, v0, 0x1f
and-int/2addr p1, v0
add-int/2addr p0, p1
return p0
.end method
.method private static final mod(BJ)J
.registers 9
int-to-long v0, p0
.line 76
rem-long/2addr v0, p1
xor-long v2, v0, p1
neg-long v4, v0
or-long/2addr v4, v0
and-long/2addr v2, v4
const/16 p0, 0x3f
shr-long/2addr v2, p0
and-long p0, p1, v2
add-long/2addr v0, p0
return-wide v0
.end method
.method private static final mod(IJ)J
.registers 9
int-to-long v0, p0
.line 209
rem-long/2addr v0, p1
xor-long v2, v0, p1
neg-long v4, v0
or-long/2addr v4, v0
and-long/2addr v2, v4
const/16 p0, 0x3f
shr-long/2addr v2, p0
and-long p0, p1, v2
add-long/2addr v0, p0
return-wide v0
.end method
.method private static final mod(JJ)J
.registers 8
.line 276
rem-long/2addr p0, p2
xor-long v0, p0, p2
neg-long v2, p0
or-long/2addr v2, p0
and-long/2addr v0, v2
const/16 v2, 0x3f
shr-long/2addr v0, v2
and-long/2addr p2, v0
add-long/2addr p0, p2
return-wide p0
.end method
.method private static final mod(SJ)J
.registers 9
int-to-long v0, p0
.line 140
rem-long/2addr v0, p1
xor-long v2, v0, p1
neg-long v4, v0
or-long/2addr v4, v0
and-long/2addr v2, v4
const/16 p0, 0x3f
shr-long/2addr v2, p0
and-long p0, p1, v2
add-long/2addr v0, p0
return-wide v0
.end method
.method private static final mod(BS)S
.registers 4
.line 44
rem-int/2addr p0, p1
xor-int v0, p0, p1
neg-int v1, p0
or-int/2addr v1, p0
and-int/2addr v0, v1
shr-int/lit8 v0, v0, 0x1f
and-int/2addr p1, v0
add-int/2addr p0, p1
int-to-short p0, p0
return p0
.end method
.method private static final mod(IS)S
.registers 4
.line 172
rem-int/2addr p0, p1
xor-int v0, p0, p1
neg-int v1, p0
or-int/2addr v1, p0
and-int/2addr v0, v1
shr-int/lit8 v0, v0, 0x1f
and-int/2addr p1, v0
add-int/2addr p0, p1
int-to-short p0, p0
return p0
.end method
.method private static final mod(JS)S
.registers 9
int-to-long v0, p2
.line 241
rem-long/2addr p0, v0
xor-long v2, p0, v0
neg-long v4, p0
or-long/2addr v4, p0
and-long/2addr v2, v4
const/16 p2, 0x3f
shr-long/2addr v2, p2
and-long/2addr v0, v2
add-long/2addr p0, v0
long-to-int p0, p0
int-to-short p0, p0
return p0
.end method
.method private static final mod(SS)S
.registers 4
.line 108
rem-int/2addr p0, p1
xor-int v0, p0, p1
neg-int v1, p0
or-int/2addr v1, p0
and-int/2addr v0, v1
shr-int/lit8 v0, v0, 0x1f
and-int/2addr p1, v0
add-int/2addr p0, p1
int-to-short p0, p0
return p0
.end method