Cranelift: use regalloc2 constraints on caller side of ABI code. (#4892)
* Cranelift: use regalloc2 constraints on caller side of ABI code. This PR updates the shared ABI code and backends to use register-operand constraints rather than explicit pinned-vreg moves for register arguments and return values. The s390x backend was not updated, because it has its own implementation of ABI code. Ideally we could converge back to the code shared by x64 and aarch64 (which didn't exist when s390x ported calls to ISLE, so the current situation is underestandable, to be clear!). I'll leave this for future work. This PR exposed several places where regalloc2 needed to be a bit more flexible with constraints; it requires regalloc2#74 to be merged and pulled in. * Update to regalloc2 0.3.3. In addition to version bump, this required removing two asserts as `SpillSlot`s no longer carry their class (so we can't assert that they have the correct class). * Review comments. * Filetest updates. * Add cargo-vet audit for regalloc2 0.3.2 -> 0.3.3 upgrade. * Update to regalloc2 0.4.0.
This commit is contained in:
@@ -69,9 +69,10 @@ block0(v0: i64, v1: i64, v2: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; add x0, x0, x2
|
||||
; add x0, x0, x1
|
||||
; ldr w0, [x0, #48]
|
||||
; mov x6, x0
|
||||
; add x6, x6, x2
|
||||
; add x6, x6, x1
|
||||
; ldr w0, [x6, #48]
|
||||
; ret
|
||||
|
||||
function %f10(i64, i64, i64) -> i32 {
|
||||
@@ -232,11 +233,11 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov x6, x0
|
||||
; ldp x7, x1, [x6]
|
||||
; mov x11, x7
|
||||
; stp x11, x1, [x0]
|
||||
; mov x0, x7
|
||||
; mov x8, x0
|
||||
; mov x6, x8
|
||||
; ldp x0, x1, [x6]
|
||||
; mov x7, x8
|
||||
; stp x0, x1, [x7]
|
||||
; ret
|
||||
|
||||
function %i128_imm_offset(i64) -> i128 {
|
||||
@@ -247,11 +248,11 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov x6, x0
|
||||
; ldp x7, x1, [x6, #16]
|
||||
; mov x11, x7
|
||||
; stp x11, x1, [x0, #16]
|
||||
; mov x0, x7
|
||||
; mov x8, x0
|
||||
; mov x6, x8
|
||||
; ldp x0, x1, [x6, #16]
|
||||
; mov x7, x8
|
||||
; stp x0, x1, [x7, #16]
|
||||
; ret
|
||||
|
||||
function %i128_imm_offset_large(i64) -> i128 {
|
||||
@@ -262,11 +263,11 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov x6, x0
|
||||
; ldp x7, x1, [x6, #504]
|
||||
; mov x11, x7
|
||||
; stp x11, x1, [x0, #504]
|
||||
; mov x0, x7
|
||||
; mov x8, x0
|
||||
; mov x6, x8
|
||||
; ldp x0, x1, [x6, #504]
|
||||
; mov x7, x8
|
||||
; stp x0, x1, [x7, #504]
|
||||
; ret
|
||||
|
||||
function %i128_imm_offset_negative_large(i64) -> i128 {
|
||||
@@ -277,11 +278,11 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov x6, x0
|
||||
; ldp x7, x1, [x6, #-512]
|
||||
; mov x11, x7
|
||||
; stp x11, x1, [x0, #-512]
|
||||
; mov x0, x7
|
||||
; mov x8, x0
|
||||
; mov x6, x8
|
||||
; ldp x0, x1, [x6, #-512]
|
||||
; mov x7, x8
|
||||
; stp x0, x1, [x7, #-512]
|
||||
; ret
|
||||
|
||||
function %i128_add_offset(i64) -> i128 {
|
||||
@@ -293,11 +294,11 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov x6, x0
|
||||
; ldp x7, x1, [x6, #32]
|
||||
; mov x11, x7
|
||||
; stp x11, x1, [x0, #32]
|
||||
; mov x0, x7
|
||||
; mov x8, x0
|
||||
; mov x6, x8
|
||||
; ldp x0, x1, [x6, #32]
|
||||
; mov x7, x8
|
||||
; stp x0, x1, [x7, #32]
|
||||
; ret
|
||||
|
||||
function %i128_32bit_sextend_simple(i32) -> i128 {
|
||||
@@ -327,13 +328,13 @@ block0(v0: i64, v1: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov x7, x0
|
||||
; mov x11, x0
|
||||
; mov x7, x11
|
||||
; add x7, x7, x1, SXTW
|
||||
; ldp x9, x10, [x7, #24]
|
||||
; add x0, x0, x1, SXTW
|
||||
; mov x14, x9
|
||||
; ldp x0, x10, [x7, #24]
|
||||
; mov x9, x11
|
||||
; add x9, x9, x1, SXTW
|
||||
; mov x1, x10
|
||||
; stp x14, x1, [x0, #24]
|
||||
; mov x0, x9
|
||||
; stp x0, x1, [x9, #24]
|
||||
; ret
|
||||
|
||||
|
||||
@@ -109,3 +109,4 @@ block0(v0: i64):
|
||||
; blr x4
|
||||
; ldp fp, lr, [sp], #16
|
||||
; ret
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ block0(v0: i8):
|
||||
; stp fp, lr, [sp, #-16]!
|
||||
; mov fp, sp
|
||||
; block0:
|
||||
; mov x15, x0
|
||||
; mov x8, x0
|
||||
; sub sp, sp, #16
|
||||
; virtual_sp_offset_adjust 16
|
||||
; movz x0, #42
|
||||
@@ -90,9 +90,9 @@ block0(v0: i8):
|
||||
; movz x5, #42
|
||||
; movz x6, #42
|
||||
; movz x7, #42
|
||||
; strb w15, [sp]
|
||||
; ldr x14, 8 ; b 12 ; data TestCase(%g) + 0
|
||||
; blr x14
|
||||
; strb w8, [sp]
|
||||
; ldr x8, 8 ; b 12 ; data TestCase(%g) + 0
|
||||
; blr x8
|
||||
; add sp, sp, #16
|
||||
; virtual_sp_offset_adjust -16
|
||||
; ldp fp, lr, [sp], #16
|
||||
@@ -105,7 +105,7 @@ block0(v0: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov x15, x0
|
||||
; mov x8, x0
|
||||
; mov x13, x1
|
||||
; movz x0, #42
|
||||
; movz x1, #42
|
||||
@@ -115,7 +115,8 @@ block0(v0: i8):
|
||||
; movz x5, #42
|
||||
; movz x6, #42
|
||||
; movz x7, #42
|
||||
; strb w15, [x13]
|
||||
; mov x11, x8
|
||||
; strb w11, [x13]
|
||||
; ret
|
||||
|
||||
function %f8() {
|
||||
@@ -140,26 +141,26 @@ block0:
|
||||
; mov fp, sp
|
||||
; sub sp, sp, #48
|
||||
; block0:
|
||||
; ldr x8, 8 ; b 12 ; data TestCase(%g0) + 0
|
||||
; blr x8
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
|
||||
; blr x9
|
||||
; str q0, [sp, #32]
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g1) + 0
|
||||
; blr x9
|
||||
; str q0, [sp, #16]
|
||||
; ldr x10, 8 ; b 12 ; data TestCase(%g1) + 0
|
||||
; blr x10
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g1) + 0
|
||||
; blr x9
|
||||
; str q0, [sp]
|
||||
; ldr x12, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; blr x12
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; blr x9
|
||||
; ldr x10, 8 ; b 12 ; data TestCase(%g3) + 0
|
||||
; ldr q0, [sp, #32]
|
||||
; ldr x14, 8 ; b 12 ; data TestCase(%g3) + 0
|
||||
; blr x14
|
||||
; blr x10
|
||||
; ldr x11, 8 ; b 12 ; data TestCase(%g4) + 0
|
||||
; ldr q0, [sp, #16]
|
||||
; ldr x0, 8 ; b 12 ; data TestCase(%g4) + 0
|
||||
; blr x0
|
||||
; blr x11
|
||||
; ldr x12, 8 ; b 12 ; data TestCase(%g4) + 0
|
||||
; ldr q0, [sp]
|
||||
; ldr x2, 8 ; b 12 ; data TestCase(%g4) + 0
|
||||
; blr x2
|
||||
; blr x12
|
||||
; add sp, sp, #48
|
||||
; ldp fp, lr, [sp], #16
|
||||
; ret
|
||||
@@ -184,26 +185,26 @@ block0:
|
||||
; mov fp, sp
|
||||
; sub sp, sp, #48
|
||||
; block0:
|
||||
; ldr x8, 8 ; b 12 ; data TestCase(%g0) + 0
|
||||
; blr x8
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
|
||||
; blr x9
|
||||
; str q0, [sp, #32]
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
|
||||
; blr x9
|
||||
; str q0, [sp, #16]
|
||||
; ldr x10, 8 ; b 12 ; data TestCase(%g0) + 0
|
||||
; blr x10
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
|
||||
; blr x9
|
||||
; str q0, [sp]
|
||||
; ldr x12, 8 ; b 12 ; data TestCase(%g1) + 0
|
||||
; blr x12
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g1) + 0
|
||||
; blr x9
|
||||
; ldr x10, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; ldr q0, [sp, #32]
|
||||
; ldr x14, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; blr x14
|
||||
; blr x10
|
||||
; ldr x11, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; ldr q0, [sp, #16]
|
||||
; ldr x0, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; blr x0
|
||||
; blr x11
|
||||
; ldr x12, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; ldr q0, [sp]
|
||||
; ldr x2, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; blr x2
|
||||
; blr x12
|
||||
; add sp, sp, #48
|
||||
; ldp fp, lr, [sp], #16
|
||||
; ret
|
||||
@@ -232,26 +233,26 @@ block0:
|
||||
; mov fp, sp
|
||||
; sub sp, sp, #48
|
||||
; block0:
|
||||
; ldr x8, 8 ; b 12 ; data TestCase(%g0) + 0
|
||||
; blr x8
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g0) + 0
|
||||
; blr x9
|
||||
; str q0, [sp, #32]
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g1) + 0
|
||||
; blr x9
|
||||
; str q0, [sp, #16]
|
||||
; ldr x10, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; blr x10
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g2) + 0
|
||||
; blr x9
|
||||
; str q0, [sp]
|
||||
; ldr x12, 8 ; b 12 ; data TestCase(%g3) + 0
|
||||
; blr x12
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%g3) + 0
|
||||
; blr x9
|
||||
; ldr x10, 8 ; b 12 ; data TestCase(%g4) + 0
|
||||
; ldr q0, [sp, #32]
|
||||
; ldr x14, 8 ; b 12 ; data TestCase(%g4) + 0
|
||||
; blr x14
|
||||
; blr x10
|
||||
; ldr x11, 8 ; b 12 ; data TestCase(%g5) + 0
|
||||
; ldr q0, [sp, #16]
|
||||
; ldr x0, 8 ; b 12 ; data TestCase(%g5) + 0
|
||||
; blr x0
|
||||
; blr x11
|
||||
; ldr x12, 8 ; b 12 ; data TestCase(%g6) + 0
|
||||
; ldr q0, [sp]
|
||||
; ldr x2, 8 ; b 12 ; data TestCase(%g6) + 0
|
||||
; blr x2
|
||||
; blr x12
|
||||
; add sp, sp, #48
|
||||
; ldp fp, lr, [sp], #16
|
||||
; ret
|
||||
@@ -279,12 +280,11 @@ block0(v0: i64):
|
||||
; stp fp, lr, [sp, #-16]!
|
||||
; mov fp, sp
|
||||
; block0:
|
||||
; mov x7, x0
|
||||
; mov x1, x0
|
||||
; movz x0, #42
|
||||
; movz x2, #42
|
||||
; mov x1, x7
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%f11) + 0
|
||||
; blr x9
|
||||
; ldr x7, 8 ; b 12 ; data TestCase(%f11) + 0
|
||||
; blr x7
|
||||
; ldp fp, lr, [sp], #16
|
||||
; ret
|
||||
|
||||
@@ -311,12 +311,11 @@ block0(v0: i64):
|
||||
; stp fp, lr, [sp, #-16]!
|
||||
; mov fp, sp
|
||||
; block0:
|
||||
; mov x7, x0
|
||||
; mov x2, x0
|
||||
; movz x3, #42
|
||||
; movz x0, #42
|
||||
; mov x2, x7
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%f12) + 0
|
||||
; blr x9
|
||||
; ldr x7, 8 ; b 12 ; data TestCase(%f12) + 0
|
||||
; blr x7
|
||||
; ldp fp, lr, [sp], #16
|
||||
; ret
|
||||
|
||||
@@ -343,12 +342,11 @@ block0(v0: i64):
|
||||
; stp fp, lr, [sp, #-16]!
|
||||
; mov fp, sp
|
||||
; block0:
|
||||
; mov x7, x0
|
||||
; mov x1, x0
|
||||
; movz x2, #42
|
||||
; movz x0, #42
|
||||
; mov x1, x7
|
||||
; ldr x9, 8 ; b 12 ; data TestCase(%f13) + 0
|
||||
; blr x9
|
||||
; ldr x7, 8 ; b 12 ; data TestCase(%f13) + 0
|
||||
; blr x7
|
||||
; ldp fp, lr, [sp], #16
|
||||
; ret
|
||||
|
||||
@@ -376,20 +374,19 @@ block0(v0: i128, v1: i64):
|
||||
; stp fp, lr, [sp, #-16]!
|
||||
; mov fp, sp
|
||||
; block0:
|
||||
; mov x11, x2
|
||||
; mov x6, x2
|
||||
; sub sp, sp, #16
|
||||
; virtual_sp_offset_adjust 16
|
||||
; mov x10, x0
|
||||
; mov x12, x1
|
||||
; mov x2, x10
|
||||
; mov x3, x12
|
||||
; mov x4, x10
|
||||
; mov x5, x12
|
||||
; mov x6, x11
|
||||
; str x10, [sp]
|
||||
; str x12, [sp, #8]
|
||||
; ldr x7, 8 ; b 12 ; data TestCase(%f14) + 0
|
||||
; blr x7
|
||||
; str x0, [sp]
|
||||
; mov x4, x0
|
||||
; str x1, [sp, #8]
|
||||
; mov x5, x1
|
||||
; ldr x12, 8 ; b 12 ; data TestCase(%f14) + 0
|
||||
; mov x0, x4
|
||||
; mov x2, x4
|
||||
; mov x1, x5
|
||||
; mov x3, x5
|
||||
; blr x12
|
||||
; add sp, sp, #16
|
||||
; virtual_sp_offset_adjust -16
|
||||
; ldp fp, lr, [sp], #16
|
||||
@@ -419,20 +416,19 @@ block0(v0: i128, v1: i64):
|
||||
; stp fp, lr, [sp, #-16]!
|
||||
; mov fp, sp
|
||||
; block0:
|
||||
; mov x11, x2
|
||||
; mov x6, x2
|
||||
; sub sp, sp, #16
|
||||
; virtual_sp_offset_adjust 16
|
||||
; mov x10, x0
|
||||
; mov x12, x1
|
||||
; mov x2, x10
|
||||
; mov x3, x12
|
||||
; mov x4, x10
|
||||
; mov x5, x12
|
||||
; mov x6, x11
|
||||
; str x10, [sp]
|
||||
; str x12, [sp, #8]
|
||||
; ldr x7, 8 ; b 12 ; data TestCase(%f15) + 0
|
||||
; blr x7
|
||||
; str x0, [sp]
|
||||
; mov x4, x0
|
||||
; str x1, [sp, #8]
|
||||
; mov x5, x1
|
||||
; ldr x12, 8 ; b 12 ; data TestCase(%f15) + 0
|
||||
; mov x0, x4
|
||||
; mov x2, x4
|
||||
; mov x1, x5
|
||||
; mov x3, x5
|
||||
; blr x12
|
||||
; add sp, sp, #16
|
||||
; virtual_sp_offset_adjust -16
|
||||
; ldp fp, lr, [sp], #16
|
||||
@@ -496,8 +492,8 @@ block0(v0: i64):
|
||||
; str x24, [sp, #-16]!
|
||||
; block0:
|
||||
; mov x24, x8
|
||||
; ldr x5, 8 ; b 12 ; data TestCase(%g) + 0
|
||||
; blr x5
|
||||
; ldr x4, 8 ; b 12 ; data TestCase(%g) + 0
|
||||
; blr x4
|
||||
; mov x8, x24
|
||||
; ldr x24, [sp], #16
|
||||
; ldp fp, lr, [sp], #16
|
||||
|
||||
@@ -918,8 +918,9 @@ block0(v0: f32x4, v1: f32x4, v2: f32x4):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; fmla v2.4s, v2.4s, v0.4s, v1.4s
|
||||
; mov v0.16b, v2.16b
|
||||
; mov v5.16b, v2.16b
|
||||
; fmla v5.4s, v5.4s, v0.4s, v1.4s
|
||||
; mov v0.16b, v5.16b
|
||||
; ret
|
||||
|
||||
function %f79(f32x2, f32x2, f32x2) -> f32x2 {
|
||||
@@ -929,8 +930,9 @@ block0(v0: f32x2, v1: f32x2, v2: f32x2):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; fmla v2.2s, v2.2s, v0.2s, v1.2s
|
||||
; mov v0.16b, v2.16b
|
||||
; mov v5.16b, v2.16b
|
||||
; fmla v5.2s, v5.2s, v0.2s, v1.2s
|
||||
; mov v0.16b, v5.16b
|
||||
; ret
|
||||
|
||||
function %f80(f64x2, f64x2, f64x2) -> f64x2 {
|
||||
@@ -940,8 +942,9 @@ block0(v0: f64x2, v1: f64x2, v2: f64x2):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; fmla v2.2d, v2.2d, v0.2d, v1.2d
|
||||
; mov v0.16b, v2.16b
|
||||
; mov v5.16b, v2.16b
|
||||
; fmla v5.2d, v5.2d, v0.2d, v1.2d
|
||||
; mov v0.16b, v5.16b
|
||||
; ret
|
||||
|
||||
function %f81(f32x2, f32x2) -> f32x2 {
|
||||
|
||||
@@ -67,15 +67,15 @@ block3(v7: r64, v8: r64):
|
||||
; mov fp, sp
|
||||
; sub sp, sp, #32
|
||||
; block0:
|
||||
; str x1, [sp, #16]
|
||||
; str x0, [sp, #8]
|
||||
; ldr x1, 8 ; b 12 ; data TestCase(%f) + 0
|
||||
; blr x1
|
||||
; mov x3, sp
|
||||
; str x1, [sp, #16]
|
||||
; ldr x3, 8 ; b 12 ; data TestCase(%f) + 0
|
||||
; blr x3
|
||||
; mov x2, sp
|
||||
; ldr x9, [sp, #8]
|
||||
; str x9, [x3]
|
||||
; and w4, w0, #1
|
||||
; cbz x4, label1 ; b label3
|
||||
; str x9, [x2]
|
||||
; and w3, w0, #1
|
||||
; cbz x3, label1 ; b label3
|
||||
; block1:
|
||||
; b label2
|
||||
; block2:
|
||||
@@ -89,8 +89,8 @@ block3(v7: r64, v8: r64):
|
||||
; ldr x1, [sp, #16]
|
||||
; b label5
|
||||
; block5:
|
||||
; mov x5, sp
|
||||
; ldr x2, [x5]
|
||||
; mov x4, sp
|
||||
; ldr x2, [x4]
|
||||
; add sp, sp, #32
|
||||
; ldp fp, lr, [sp], #16
|
||||
; ret
|
||||
|
||||
@@ -9,8 +9,9 @@ block0(v0: i16x4, v1: i16x4):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov v0.d[1], v0.d[1], v1.d[0]
|
||||
; sqxtn v0.8b, v0.8h
|
||||
; mov v4.16b, v0.16b
|
||||
; mov v4.d[1], v4.d[1], v1.d[0]
|
||||
; sqxtn v0.8b, v4.8h
|
||||
; ret
|
||||
|
||||
function %snarrow_i16x8(i16x8, i16x8) -> i8x16 {
|
||||
@@ -31,8 +32,9 @@ block0(v0: i32x2, v1: i32x2):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov v0.d[1], v0.d[1], v1.d[0]
|
||||
; sqxtn v0.4h, v0.4s
|
||||
; mov v4.16b, v0.16b
|
||||
; mov v4.d[1], v4.d[1], v1.d[0]
|
||||
; sqxtn v0.4h, v4.4s
|
||||
; ret
|
||||
|
||||
function %snarrow_i32x4(i32x4, i32x4) -> i16x8 {
|
||||
@@ -64,8 +66,9 @@ block0(v0: i16x4, v1: i16x4):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov v0.d[1], v0.d[1], v1.d[0]
|
||||
; sqxtun v0.8b, v0.8h
|
||||
; mov v4.16b, v0.16b
|
||||
; mov v4.d[1], v4.d[1], v1.d[0]
|
||||
; sqxtun v0.8b, v4.8h
|
||||
; ret
|
||||
|
||||
function %unarrow_i16x8(i16x8, i16x8) -> i8x16 {
|
||||
@@ -86,8 +89,9 @@ block0(v0: i32x2, v1: i32x2):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov v0.d[1], v0.d[1], v1.d[0]
|
||||
; sqxtun v0.4h, v0.4s
|
||||
; mov v4.16b, v0.16b
|
||||
; mov v4.d[1], v4.d[1], v1.d[0]
|
||||
; sqxtun v0.4h, v4.4s
|
||||
; ret
|
||||
|
||||
function %unarrow_i32x4(i32x4, i32x4) -> i16x8 {
|
||||
@@ -119,8 +123,9 @@ block0(v0: i16x4, v1: i16x4):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov v0.d[1], v0.d[1], v1.d[0]
|
||||
; uqxtn v0.8b, v0.8h
|
||||
; mov v4.16b, v0.16b
|
||||
; mov v4.d[1], v4.d[1], v1.d[0]
|
||||
; uqxtn v0.8b, v4.8h
|
||||
; ret
|
||||
|
||||
function %uunarrow_i16x8(i16x8, i16x8) -> i8x16 {
|
||||
@@ -141,8 +146,9 @@ block0(v0: i32x2, v1: i32x2):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mov v0.d[1], v0.d[1], v1.d[0]
|
||||
; uqxtn v0.4h, v0.4s
|
||||
; mov v4.16b, v0.16b
|
||||
; mov v4.d[1], v4.d[1], v1.d[0]
|
||||
; uqxtn v0.4h, v4.4s
|
||||
; ret
|
||||
|
||||
function %uunarrow_i32x4(i32x4, i32x4) -> i16x8 {
|
||||
|
||||
@@ -20,8 +20,9 @@ block0(v0: i32):
|
||||
; block0:
|
||||
; mov x25, x0
|
||||
; elf_tls_get_addr x0, userextname0
|
||||
; mov x7, x25
|
||||
; mov x1, x0
|
||||
; mov x0, x25
|
||||
; mov x0, x7
|
||||
; ldp d8, d9, [sp], #16
|
||||
; ldp d10, d11, [sp], #16
|
||||
; ldp d12, d13, [sp], #16
|
||||
|
||||
@@ -41,12 +41,13 @@ block0(v0: i64, v1: i16, v2: i16, v3: i64):
|
||||
; block0:
|
||||
; lgr %r9, %r4
|
||||
; sllk %r4, %r5, 3
|
||||
; nill %r5, 65532
|
||||
; lrvr %r2, %r3
|
||||
; lgr %r2, %r5
|
||||
; nill %r2, 65532
|
||||
; lrvr %r5, %r3
|
||||
; lgr %r3, %r9
|
||||
; lrvr %r3, %r3
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; rxsbg %r1, %r2, 176, 64, 48 ; jglh 1f ; risbgn %r1, %r3, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; l %r0, 0(%r2)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; rxsbg %r1, %r5, 176, 64, 48 ; jglh 1f ; risbgn %r1, %r3, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r2) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 0(%r4)
|
||||
; lrvr %r2, %r2
|
||||
; lmg %r9, %r15, 72(%r15)
|
||||
@@ -62,10 +63,11 @@ block0(v0: i64, v1: i8, v2: i8, v3: i64):
|
||||
; block0:
|
||||
; lgr %r11, %r4
|
||||
; sllk %r4, %r5, 3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r4
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r11, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; lgr %r2, %r5
|
||||
; nill %r2, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r2)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r11, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r2) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
@@ -31,13 +31,17 @@ block0(v0: i64, v1: i16, v2: i16, v3: i64):
|
||||
return v4
|
||||
}
|
||||
|
||||
; stmg %r6, %r15, 48(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; lgr %r6, %r4
|
||||
; sllk %r4, %r5, 3
|
||||
; nill %r5, 65532
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 48, 16 ; jglh 1f ; risbgn %r1, %r2, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; lgr %r2, %r5
|
||||
; nill %r2, 65532
|
||||
; l %r0, 0(%r2)
|
||||
; lgr %r5, %r6
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 48, 16 ; jglh 1f ; risbgn %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r2) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; lmg %r6, %r15, 48(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_cas_i8(i64, i8, i8, i64) -> i8 {
|
||||
@@ -50,10 +54,11 @@ block0(v0: i64, v1: i8, v2: i8, v3: i64):
|
||||
; block0:
|
||||
; lgr %r11, %r4
|
||||
; sllk %r4, %r5, 3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r4
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r11, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; lgr %r2, %r5
|
||||
; nill %r2, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r2)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r11, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r2) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
@@ -32,12 +32,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r5, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; rnsbg %r1, %r4, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i8(i64, i64, i8) -> i8 {
|
||||
@@ -46,14 +46,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i64(i64, i64, i64) -> i64 {
|
||||
@@ -89,13 +91,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; rnsbg %r1, %r5, 48, 64, 48 ; xilf %r1, 65535 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lrvr %r4, %r4
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; rnsbg %r1, %r4, 48, 64, 48 ; xilf %r1, 65535 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -105,13 +107,15 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -38,13 +38,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; risbgn %r1, %r5, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lrvr %r4, %r4
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; risbgn %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -54,14 +54,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; risbgn %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_add_i64(i64, i64, i64) -> i64 {
|
||||
@@ -95,13 +97,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; ar %r1, %r5 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; ar %r1, %r4 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -111,14 +113,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; ar %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; ar %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_sub_i64(i64, i64, i64) -> i64 {
|
||||
@@ -152,13 +157,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; sr %r1, %r5 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; sr %r1, %r4 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -168,14 +173,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; sr %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; sr %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_and_i64(i64, i64, i64) -> i64 {
|
||||
@@ -209,13 +217,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; rnsbg %r1, %r5, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lrvr %r4, %r4
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; rnsbg %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -225,14 +233,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_or_i64(i64, i64, i64) -> i64 {
|
||||
@@ -266,13 +276,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; rosbg %r1, %r5, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lrvr %r4, %r4
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; rosbg %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -282,14 +292,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rosbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rosbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xor_i64(i64, i64, i64) -> i64 {
|
||||
@@ -323,13 +335,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; rxsbg %r1, %r5, 48, 64, 48 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lrvr %r4, %r4
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; rxsbg %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -339,14 +351,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rxsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i64(i64, i64, i64) -> i64 {
|
||||
@@ -382,13 +396,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lrvr %r5, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; rnsbg %r1, %r5, 48, 64, 48 ; xilf %r1, 65535 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lrvr %r4, %r4
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; rnsbg %r1, %r4, 48, 64, 48 ; xilf %r1, 65535 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -398,14 +412,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smin_i64(i64, i64, i64) -> i64 {
|
||||
@@ -439,13 +455,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; cr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -455,14 +471,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; cr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smax_i64(i64, i64, i64) -> i64 {
|
||||
@@ -496,13 +515,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; cr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -512,14 +531,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; cr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umin_i64(i64, i64, i64) -> i64 {
|
||||
@@ -553,13 +575,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; clr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -569,14 +591,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; clr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umax_i64(i64, i64, i64) -> i64 {
|
||||
@@ -610,13 +635,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r2, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 16(%r4) ; lrvr %r1, %r1 ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 16(%r2) ; lrvr %r1, %r1 ; clr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 48, 0 ; lrvr %r1, %r1 ; rll %r1, %r1, 16(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r3, %r0, 0(%r2)
|
||||
; lrvr %r2, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -626,13 +651,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; clr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -36,12 +36,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; risbgn %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; risbgn %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xchg_i8(i64, i64, i8) -> i8 {
|
||||
@@ -50,14 +50,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; risbgn %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_add_i64(i64, i64) -> i64 {
|
||||
@@ -87,13 +89,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; ar %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; ar %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_add_i8(i64, i64, i8) -> i8 {
|
||||
@@ -102,14 +104,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; ar %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; ar %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_sub_i64(i64, i64) -> i64 {
|
||||
@@ -141,13 +146,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; sr %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; sr %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_sub_i8(i64, i64, i8) -> i8 {
|
||||
@@ -156,14 +161,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; sr %r1, %r5 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; sr %r1, %r4 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_and_i64(i64, i64) -> i64 {
|
||||
@@ -193,12 +201,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; rnsbg %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_and_i8(i64, i64, i8) -> i8 {
|
||||
@@ -207,14 +215,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_or_i64(i64, i64) -> i64 {
|
||||
@@ -244,12 +254,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rosbg %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; rosbg %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_or_i8(i64, i64, i8) -> i8 {
|
||||
@@ -258,14 +268,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rosbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rosbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xor_i64(i64, i64) -> i64 {
|
||||
@@ -295,12 +307,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r5, 32, 48, 16 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; rxsbg %r1, %r4, 32, 48, 16 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_xor_i8(i64, i64, i8) -> i8 {
|
||||
@@ -309,14 +321,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rxsbg %r1, %r2, 32, 40, 24 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rxsbg %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i64(i64, i64, i64) -> i64 {
|
||||
@@ -350,12 +364,12 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r5, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; rnsbg %r1, %r4, 32, 48, 16 ; xilf %r1, 4294901760 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_nand_i8(i64, i64, i8) -> i8 {
|
||||
@@ -364,14 +378,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; lgr %r2, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; lcr %r5, %r4
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; rnsbg %r1, %r2, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r5) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r4)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; rnsbg %r1, %r4, 32, 40, 24 ; xilf %r1, 4278190080 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smin_i64(i64, i64, i64) -> i64 {
|
||||
@@ -405,13 +421,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 48, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; cr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 48, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smin_i8(i64, i64, i8) -> i8 {
|
||||
@@ -420,14 +436,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; cr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; cr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smax_i64(i64, i64, i64) -> i64 {
|
||||
@@ -461,13 +480,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 48, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; cr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 48, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_smax_i8(i64, i64, i8) -> i8 {
|
||||
@@ -476,14 +495,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; cr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; cr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umin_i64(i64, i64, i64) -> i64 {
|
||||
@@ -517,13 +539,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 48, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; clr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 48, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umin_i8(i64, i64, i8) -> i8 {
|
||||
@@ -532,14 +554,17 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; clr %r5, %r1 ; jgnl 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; clr %r4, %r1 ; jgnl 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umax_i64(i64, i64, i64) -> i64 {
|
||||
@@ -573,13 +598,13 @@ block0(v0: i64, v1: i64, v2: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r5, %r4
|
||||
; sllk %r4, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r5, 16
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r4) ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 48, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r4)
|
||||
; sllk %r2, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 16
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; clr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 48, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 16(%r2)
|
||||
; br %r14
|
||||
|
||||
function %atomic_rmw_umax_i8(i64, i64, i8) -> i8 {
|
||||
@@ -588,13 +613,16 @@ block0(v0: i64, v1: i64, v2: i8):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r11, %r15, 88(%r15)
|
||||
; block0:
|
||||
; sllk %r2, %r3, 3
|
||||
; nill %r3, 65532
|
||||
; sllk %r5, %r4, 24
|
||||
; lcr %r4, %r2
|
||||
; l %r0, 0(%r3)
|
||||
; 0: rll %r1, %r0, 0(%r2) ; clr %r5, %r1 ; jgnh 1f ; risbgn %r1, %r5, 32, 40, 0 ; rll %r1, %r1, 0(%r4) ; cs %r0, %r1, 0(%r3) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r2)
|
||||
; sllk %r11, %r3, 3
|
||||
; lgr %r5, %r3
|
||||
; nill %r5, 65532
|
||||
; sllk %r4, %r4, 24
|
||||
; lcr %r2, %r11
|
||||
; l %r0, 0(%r5)
|
||||
; 0: rll %r1, %r0, 0(%r11) ; clr %r4, %r1 ; jgnh 1f ; risbgn %r1, %r4, 32, 40, 0 ; rll %r1, %r1, 0(%r2) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||
; rll %r2, %r0, 8(%r11)
|
||||
; lmg %r11, %r15, 88(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -347,9 +347,10 @@ block0(v0: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; oihl %r2, 1
|
||||
; lcgr %r3, %r2
|
||||
; ngrk %r5, %r2, %r3
|
||||
; lgr %r5, %r2
|
||||
; oihl %r5, 1
|
||||
; lcgr %r3, %r5
|
||||
; ngr %r5, %r3
|
||||
; flogr %r0, %r5
|
||||
; lhi %r4, 63
|
||||
; srk %r2, %r4, %r0
|
||||
@@ -362,9 +363,10 @@ block0(v0: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; oilh %r2, 1
|
||||
; lcgr %r3, %r2
|
||||
; ngrk %r5, %r2, %r3
|
||||
; lgr %r5, %r2
|
||||
; oilh %r5, 1
|
||||
; lcgr %r3, %r5
|
||||
; ngr %r5, %r3
|
||||
; flogr %r0, %r5
|
||||
; lhi %r4, 63
|
||||
; srk %r2, %r4, %r0
|
||||
@@ -377,9 +379,10 @@ block0(v0: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; oill %r2, 256
|
||||
; lcgr %r3, %r2
|
||||
; ngrk %r5, %r2, %r3
|
||||
; lgr %r5, %r2
|
||||
; oill %r5, 256
|
||||
; lcgr %r3, %r5
|
||||
; ngr %r5, %r3
|
||||
; flogr %r0, %r5
|
||||
; lhi %r4, 63
|
||||
; srk %r2, %r4, %r0
|
||||
|
||||
@@ -597,8 +597,9 @@ block0(v0: i32, v1: i32, v2: i32):
|
||||
|
||||
; block0:
|
||||
; nr %r3, %r2
|
||||
; xilf %r2, 4294967295
|
||||
; nr %r4, %r2
|
||||
; lgr %r5, %r2
|
||||
; xilf %r5, 4294967295
|
||||
; nr %r4, %r5
|
||||
; ork %r2, %r4, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -610,8 +611,9 @@ block0(v0: i16, v1: i16, v2: i16):
|
||||
|
||||
; block0:
|
||||
; nr %r3, %r2
|
||||
; xilf %r2, 4294967295
|
||||
; nr %r4, %r2
|
||||
; lgr %r5, %r2
|
||||
; xilf %r5, 4294967295
|
||||
; nr %r4, %r5
|
||||
; ork %r2, %r4, %r3
|
||||
; br %r14
|
||||
|
||||
@@ -623,8 +625,9 @@ block0(v0: i8, v1: i8, v2: i8):
|
||||
|
||||
; block0:
|
||||
; nr %r3, %r2
|
||||
; xilf %r2, 4294967295
|
||||
; nr %r4, %r2
|
||||
; lgr %r5, %r2
|
||||
; xilf %r5, 4294967295
|
||||
; nr %r4, %r5
|
||||
; ork %r2, %r4, %r3
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -46,7 +46,8 @@ block0(v0: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; llgfr %r2, %r2
|
||||
; lgr %r5, %r2
|
||||
; llgfr %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %call_uext(i32) -> i64 {
|
||||
@@ -73,7 +74,8 @@ block0(v0: i32):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgfr %r2, %r2
|
||||
; lgr %r5, %r2
|
||||
; lgfr %r2, %r5
|
||||
; br %r14
|
||||
|
||||
function %call_colocated(i64) -> i64 {
|
||||
|
||||
@@ -153,13 +153,14 @@ block0(v0: i16, v1: i16):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r4, %r3
|
||||
; llhr %r2, %r2
|
||||
; lcr %r4, %r3
|
||||
; nill %r3, 15
|
||||
; lcr %r3, %r4
|
||||
; nill %r4, 15
|
||||
; sllk %r4, %r2, 0(%r4)
|
||||
; srlk %r5, %r2, 0(%r3)
|
||||
; ork %r2, %r4, %r5
|
||||
; nill %r3, 15
|
||||
; sllk %r3, %r2, 0(%r3)
|
||||
; srlk %r4, %r2, 0(%r4)
|
||||
; ork %r2, %r3, %r4
|
||||
; br %r14
|
||||
|
||||
function %rotr_i16_imm(i16) -> i16 {
|
||||
@@ -201,13 +202,14 @@ block0(v0: i8, v1: i8):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lgr %r4, %r3
|
||||
; llcr %r2, %r2
|
||||
; lcr %r4, %r3
|
||||
; nill %r3, 7
|
||||
; lcr %r3, %r4
|
||||
; nill %r4, 7
|
||||
; sllk %r4, %r2, 0(%r4)
|
||||
; srlk %r5, %r2, 0(%r3)
|
||||
; ork %r2, %r4, %r5
|
||||
; nill %r3, 7
|
||||
; sllk %r3, %r2, 0(%r3)
|
||||
; srlk %r4, %r2, 0(%r4)
|
||||
; ork %r2, %r3, %r4
|
||||
; br %r14
|
||||
|
||||
function %rotr_i8_imm(i8) -> i8 {
|
||||
@@ -578,8 +580,9 @@ block0(v0: i16, v1: i16):
|
||||
|
||||
; block0:
|
||||
; llhr %r2, %r2
|
||||
; nill %r3, 15
|
||||
; srlk %r2, %r2, 0(%r3)
|
||||
; lgr %r4, %r3
|
||||
; nill %r4, 15
|
||||
; srlk %r2, %r2, 0(%r4)
|
||||
; br %r14
|
||||
|
||||
function %ushr_i16_imm(i16) -> i16 {
|
||||
@@ -616,8 +619,9 @@ block0(v0: i8, v1: i8):
|
||||
|
||||
; block0:
|
||||
; llcr %r2, %r2
|
||||
; nill %r3, 7
|
||||
; srlk %r2, %r2, 0(%r3)
|
||||
; lgr %r4, %r3
|
||||
; nill %r4, 7
|
||||
; srlk %r2, %r2, 0(%r4)
|
||||
; br %r14
|
||||
|
||||
function %ushr_i8_imm(i8) -> i8 {
|
||||
@@ -950,8 +954,9 @@ block0(v0: i16, v1: i16):
|
||||
|
||||
; block0:
|
||||
; lhr %r2, %r2
|
||||
; nill %r3, 15
|
||||
; srak %r2, %r2, 0(%r3)
|
||||
; lgr %r4, %r3
|
||||
; nill %r4, 15
|
||||
; srak %r2, %r2, 0(%r4)
|
||||
; br %r14
|
||||
|
||||
function %sshr_i16_imm(i16) -> i16 {
|
||||
@@ -988,8 +993,9 @@ block0(v0: i8, v1: i8):
|
||||
|
||||
; block0:
|
||||
; lbr %r2, %r2
|
||||
; nill %r3, 7
|
||||
; srak %r2, %r2, 0(%r3)
|
||||
; lgr %r4, %r3
|
||||
; nill %r4, 7
|
||||
; srak %r2, %r2, 0(%r4)
|
||||
; br %r14
|
||||
|
||||
function %sshr_i8_imm(i8) -> i8 {
|
||||
|
||||
@@ -153,8 +153,9 @@ block0(v0: i64, v1: i32, v2: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addl %esi, %edx, %esi
|
||||
; movq -1(%rdi,%rsi,4), %rax
|
||||
; movq %rsi, %r9
|
||||
; addl %r9d, %edx, %r9d
|
||||
; movq -1(%rdi,%r9,4), %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -11,8 +11,8 @@ block0(v0: b1, v1: i32, v2: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; testb $1, %dil
|
||||
; cmovnzl %esi, %edx, %edx
|
||||
; movq %rdx, %rax
|
||||
; cmovnzl %esi, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -147,8 +147,8 @@ block0(v0: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shrq $63, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shrq $63, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -163,8 +163,8 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shrl $31, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shrl $31, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -179,8 +179,8 @@ block0(v0: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shrq $63, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shrq $63, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -195,8 +195,8 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shrl $31, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shrl $31, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -211,9 +211,9 @@ block0(v0: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; notq %rdi, %rdi
|
||||
; shrq $63, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; notq %rax, %rax
|
||||
; shrq $63, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -228,9 +228,9 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; notq %rdi, %rdi
|
||||
; shrl $31, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; notq %rax, %rax
|
||||
; shrl $31, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -245,9 +245,9 @@ block0(v0: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; notq %rdi, %rdi
|
||||
; shrq $63, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; notq %rax, %rax
|
||||
; shrq $63, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -262,9 +262,9 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; notq %rdi, %rdi
|
||||
; shrl $31, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; notq %rax, %rax
|
||||
; shrl $31, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -10,8 +10,8 @@ block0(v0: i32, v1: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addl %edi, %esi, %edi
|
||||
; movq %rdi, %rax
|
||||
; addl %eax, %esi, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -12,11 +12,10 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdi, %rcx
|
||||
; subq %rsp, $32, %rsp
|
||||
; virtual_sp_offset_adjust 32
|
||||
; movq %rdi, %rcx
|
||||
; movq %rcx, %rdi
|
||||
; call *%rdi
|
||||
; call *%rcx
|
||||
; addq %rsp, $32, %rsp
|
||||
; virtual_sp_offset_adjust -32
|
||||
; movq %rbp, %rsp
|
||||
@@ -36,20 +35,16 @@ block0(v0: i32, v1: f32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdi, %r10
|
||||
; movdqa %xmm0, %xmm6
|
||||
; subq %rsp, $32, %rsp
|
||||
; virtual_sp_offset_adjust 32
|
||||
; movq %r10, %rcx
|
||||
; movq %rdi, %rcx
|
||||
; movdqa %xmm6, %xmm1
|
||||
; movq %r10, %rdi
|
||||
; movdqa %xmm1, %xmm6
|
||||
; call *%rdi
|
||||
; addq %rsp, $32, %rsp
|
||||
; virtual_sp_offset_adjust -32
|
||||
; movq %rdi, %r10
|
||||
; movdqa %xmm6, %xmm0
|
||||
; call *%r10
|
||||
; call *%rdi
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -130,22 +125,19 @@ block0(
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %r10
|
||||
; movq %rcx, %rax
|
||||
; movq %rdx, %rcx
|
||||
; movq %rsi, %rdx
|
||||
; movq %r8, %rsi
|
||||
; movq %r10, %r8
|
||||
; movq %r9, %rax
|
||||
; movq %rcx, %r9
|
||||
; movq %rdi, %rsi
|
||||
; movq %rax, %rdi
|
||||
; movq 16(%rbp), %r11
|
||||
; movq 24(%rbp), %r10
|
||||
; movss 32(%rbp), %xmm9
|
||||
; movsd 40(%rbp), %xmm8
|
||||
; subq %rsp, $144, %rsp
|
||||
; virtual_sp_offset_adjust 144
|
||||
; movq %rdi, %rcx
|
||||
; movq %rsi, 32(%rsp)
|
||||
; movq %rax, %rsi
|
||||
; movq %rsi, 40(%rsp)
|
||||
; movq %r8, 32(%rsp)
|
||||
; movq %r9, 40(%rsp)
|
||||
; movsd %xmm0, 48(%rsp)
|
||||
; movsd %xmm1, 56(%rsp)
|
||||
; movsd %xmm2, 64(%rsp)
|
||||
@@ -158,7 +150,10 @@ block0(
|
||||
; movl %r10d, 120(%rsp)
|
||||
; movss %xmm9, 128(%rsp)
|
||||
; movsd %xmm8, 136(%rsp)
|
||||
; call *%rdi
|
||||
; movq %rdi, %r9
|
||||
; movq %rcx, %r8
|
||||
; movq %rsi, %rcx
|
||||
; call *%rcx
|
||||
; addq %rsp, $144, %rsp
|
||||
; virtual_sp_offset_adjust -144
|
||||
; movq %rbp, %rsp
|
||||
@@ -180,16 +175,15 @@ block0(v0: i64, v1:i64, v2:i64, v3:i64, v4:i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %r8, %r10
|
||||
; movq %rdx, %r8
|
||||
; movq %rcx, %rax
|
||||
; movq %rdx, %r11
|
||||
; movq %rcx, %r9
|
||||
; movq %rsi, %rdx
|
||||
; movq %rdi, %rcx
|
||||
; subq %rsp, $48, %rsp
|
||||
; virtual_sp_offset_adjust 48
|
||||
; movq %rdi, %rcx
|
||||
; movq %rsi, %rdx
|
||||
; movq %rax, %r9
|
||||
; movq %r10, 32(%rsp)
|
||||
; call *%rdi
|
||||
; movq %r8, 32(%rsp)
|
||||
; movq %r11, %r8
|
||||
; call *%rcx
|
||||
; addq %rsp, $48, %rsp
|
||||
; virtual_sp_offset_adjust -48
|
||||
; movq %rbp, %rsp
|
||||
@@ -206,24 +200,23 @@ block0(v0: i32, v1: f32, v2: i64, v3: f64, v4: i32, v5: i32, v6: i32, v7: f32, v
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rcx, %r10
|
||||
; movq %r8, %r9
|
||||
; movdqa %xmm1, %xmm6
|
||||
; movdqa %xmm3, %xmm8
|
||||
; movq %rsi, %r9
|
||||
; movq %rdi, %rsi
|
||||
; movdqa %xmm1, %xmm12
|
||||
; movdqa %xmm0, %xmm1
|
||||
; subq %rsp, $96, %rsp
|
||||
; virtual_sp_offset_adjust 96
|
||||
; movq %rdi, %rcx
|
||||
; movdqa %xmm0, %xmm1
|
||||
; movq %rsi, %r8
|
||||
; movdqa %xmm6, %xmm3
|
||||
; movl %edx, 32(%rsp)
|
||||
; movl %r10d, 40(%rsp)
|
||||
; movl %r9d, 48(%rsp)
|
||||
; movl %ecx, 40(%rsp)
|
||||
; movl %r8d, 48(%rsp)
|
||||
; movss %xmm2, 56(%rsp)
|
||||
; movsd %xmm8, 64(%rsp)
|
||||
; movsd %xmm3, 64(%rsp)
|
||||
; movss %xmm4, 72(%rsp)
|
||||
; movsd %xmm5, 80(%rsp)
|
||||
; call *%rdi
|
||||
; movq %rsi, %rcx
|
||||
; movq %r9, %r8
|
||||
; movdqa %xmm12, %xmm3
|
||||
; call *%rcx
|
||||
; addq %rsp, $96, %rsp
|
||||
; virtual_sp_offset_adjust -96
|
||||
; movq %rbp, %rsp
|
||||
@@ -240,8 +233,7 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdi, %rcx
|
||||
; call *%rcx
|
||||
; call *%rdi
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -256,8 +248,7 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdi, %rcx
|
||||
; call *%rcx
|
||||
; call *%rdi
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -301,8 +292,9 @@ block0:
|
||||
; movq %rdi, %r13
|
||||
; movl $1, %edx
|
||||
; call *%rdx
|
||||
; movq %rdx, %r9
|
||||
; movq %r13, %rdi
|
||||
; movl %edx, 0(%rdi)
|
||||
; movl %r9d, 0(%rdi)
|
||||
; movq 0(%rsp), %r13
|
||||
; addq %rsp, $16, %rsp
|
||||
; movq %rbp, %rsp
|
||||
@@ -328,12 +320,13 @@ block0:
|
||||
; virtual_sp_offset_adjust 16
|
||||
; lea 0(%rsp), %rdi
|
||||
; call *%r8
|
||||
; movq 0(%rsp), %r11
|
||||
; movq %rdx, %rcx
|
||||
; movq 0(%rsp), %rdx
|
||||
; addq %rsp, $16, %rsp
|
||||
; virtual_sp_offset_adjust -16
|
||||
; movq %rbx, %rdi
|
||||
; movq %rdx, 0(%rdi)
|
||||
; movl %r11d, 8(%rdi)
|
||||
; movq %rcx, 0(%rdi)
|
||||
; movl %edx, 8(%rdi)
|
||||
; movq 0(%rsp), %rbx
|
||||
; addq %rsp, $16, %rsp
|
||||
; movq %rbp, %rsp
|
||||
@@ -356,10 +349,13 @@ block0:
|
||||
; movq %rdi, %r12
|
||||
; movl $1, %r9d
|
||||
; call *%r9
|
||||
; movq %rax, %r9
|
||||
; movq %rdx, %r11
|
||||
; movdqa %xmm1, %xmm10
|
||||
; movq %r12, %rdi
|
||||
; movq %rax, 0(%rdi)
|
||||
; movl %edx, 8(%rdi)
|
||||
; movss %xmm1, 12(%rdi)
|
||||
; movq %r9, 0(%rdi)
|
||||
; movl %r11d, 8(%rdi)
|
||||
; movss %xmm10, 12(%rdi)
|
||||
; movq 0(%rsp), %r12
|
||||
; addq %rsp, $16, %rsp
|
||||
; movq %rbp, %rsp
|
||||
@@ -377,16 +373,19 @@ block0(v0: f32, v1: i64, v2: i32, v3: f32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; subq %rsp, $16, %rsp
|
||||
; movq %rbx, 0(%rsp)
|
||||
; movq %r13, 0(%rsp)
|
||||
; block0:
|
||||
; movq %rdx, %rbx
|
||||
; movq %rdx, %r13
|
||||
; movl $1, %eax
|
||||
; call *%rax
|
||||
; movq %rbx, %rcx
|
||||
; movq %rax, 0(%rcx)
|
||||
; movl %edx, 8(%rcx)
|
||||
; movss %xmm1, 12(%rcx)
|
||||
; movq 0(%rsp), %rbx
|
||||
; movq %rax, %rdi
|
||||
; movq %rdx, %rcx
|
||||
; movdqa %xmm1, %xmm14
|
||||
; movq %r13, %rdx
|
||||
; movq %rdi, 0(%rdx)
|
||||
; movl %ecx, 8(%rdx)
|
||||
; movss %xmm14, 12(%rdx)
|
||||
; movq 0(%rsp), %r13
|
||||
; addq %rsp, $16, %rsp
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
|
||||
@@ -10,8 +10,8 @@ block0(v0: f32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %CeilF32+0, %r8
|
||||
; call *%r8
|
||||
; load_ext_name %CeilF32+0, %rdx
|
||||
; call *%rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -25,8 +25,8 @@ block0(v0: f64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %CeilF64+0, %r8
|
||||
; call *%r8
|
||||
; load_ext_name %CeilF64+0, %rdx
|
||||
; call *%rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -18,8 +18,8 @@ block0(v0: i64, v1: i64):
|
||||
; setz %al
|
||||
; andq %rax, $1, %rax
|
||||
; cmpq %r11, %rdi
|
||||
; cmovzq %rdi, %rsi, %rsi
|
||||
; movq %rsi, %rdx
|
||||
; cmovzq %rdi, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -17,9 +17,8 @@ block0(v0: i8, v1: i8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorl %r10d, %r10d, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; xorl %edx, %edx, %edx
|
||||
; srem_seq %al, %dl, %sil, %al, %dl, tmp=(none)
|
||||
; shrq $8, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
@@ -36,9 +35,8 @@ block0(v0: i16, v1: i16):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorl %r10d, %r10d, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; xorl %edx, %edx, %edx
|
||||
; srem_seq %ax, %dx, %si, %ax, %dx, tmp=(none)
|
||||
; movq %rdx, %rax
|
||||
; movq %rbp, %rsp
|
||||
@@ -55,9 +53,8 @@ block0(v0: i32, v1: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorl %r10d, %r10d, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; xorl %edx, %edx, %edx
|
||||
; srem_seq %eax, %edx, %esi, %eax, %edx, tmp=(none)
|
||||
; movq %rdx, %rax
|
||||
; movq %rbp, %rsp
|
||||
@@ -74,9 +71,8 @@ block0(v0: i64, v1: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorl %r10d, %r10d, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; xorl %edx, %edx, %edx
|
||||
; srem_seq %rax, %rdx, %rsi, %rax, %rdx, tmp=(none)
|
||||
; movq %rdx, %rax
|
||||
; movq %rbp, %rsp
|
||||
|
||||
@@ -149,20 +149,25 @@ block0(v0: i64):
|
||||
; pushq %rbp
|
||||
; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 }
|
||||
; movq %rsp, %rbp
|
||||
; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 0 }
|
||||
; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 16 }
|
||||
; subq %rsp, $16, %rsp
|
||||
; movq %rsi, 0(%rsp)
|
||||
; unwind SaveReg { clobber_offset: 0, reg: p6i }
|
||||
; block0:
|
||||
; cvtsi2sd %rcx, %xmm2
|
||||
; cvtsi2sd %rcx, %xmm3
|
||||
; subq %rsp, $48, %rsp
|
||||
; virtual_sp_offset_adjust 48
|
||||
; movq %rcx, 32(%rsp)
|
||||
; movq %rcx, 40(%rsp)
|
||||
; movq %rcx, %rdx
|
||||
; movq %rdx, %r8
|
||||
; movdqa %xmm2, %xmm3
|
||||
; movq %r8, 32(%rsp)
|
||||
; movq %r8, 40(%rsp)
|
||||
; load_ext_name %g+0, %r8
|
||||
; call *%r8
|
||||
; load_ext_name %g+0, %rsi
|
||||
; movq %rdx, %rcx
|
||||
; movdqa %xmm3, %xmm2
|
||||
; call *%rsi
|
||||
; addq %rsp, $48, %rsp
|
||||
; virtual_sp_offset_adjust -48
|
||||
; movq 0(%rsp), %rsi
|
||||
; addq %rsp, $16, %rsp
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -190,10 +190,11 @@ block0(v0: i32x4):
|
||||
; movdqa %xmm0, %xmm4
|
||||
; pslld %xmm4, $16, %xmm4
|
||||
; psrld %xmm4, $16, %xmm4
|
||||
; psubd %xmm0, %xmm4, %xmm0
|
||||
; movdqa %xmm0, %xmm10
|
||||
; psubd %xmm10, %xmm4, %xmm10
|
||||
; cvtdq2ps %xmm4, %xmm9
|
||||
; psrld %xmm0, $1, %xmm0
|
||||
; cvtdq2ps %xmm0, %xmm0
|
||||
; psrld %xmm10, $1, %xmm10
|
||||
; cvtdq2ps %xmm10, %xmm0
|
||||
; addps %xmm0, %xmm0, %xmm0
|
||||
; addps %xmm0, %xmm9, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
@@ -434,14 +435,15 @@ block0(v0: f32x4):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; pxor %xmm3, %xmm3, %xmm3
|
||||
; maxps %xmm0, %xmm3, %xmm0
|
||||
; movdqa %xmm0, %xmm10
|
||||
; maxps %xmm10, %xmm3, %xmm10
|
||||
; pcmpeqd %xmm8, %xmm8, %xmm8
|
||||
; psrld %xmm8, $1, %xmm8
|
||||
; cvtdq2ps %xmm8, %xmm14
|
||||
; cvttps2dq %xmm0, %xmm13
|
||||
; subps %xmm0, %xmm14, %xmm0
|
||||
; cmpps $2, %xmm14, %xmm0, %xmm14
|
||||
; cvttps2dq %xmm0, %xmm0
|
||||
; cvttps2dq %xmm10, %xmm13
|
||||
; subps %xmm10, %xmm14, %xmm10
|
||||
; cmpps $2, %xmm14, %xmm10, %xmm14
|
||||
; cvttps2dq %xmm10, %xmm0
|
||||
; pxor %xmm0, %xmm14, %xmm0
|
||||
; pxor %xmm7, %xmm7, %xmm7
|
||||
; pmaxsd %xmm0, %xmm7, %xmm0
|
||||
@@ -461,9 +463,10 @@ block0(v0: f32x4):
|
||||
; block0:
|
||||
; movdqa %xmm0, %xmm5
|
||||
; cmpps $0, %xmm5, %xmm0, %xmm5
|
||||
; andps %xmm0, %xmm5, %xmm0
|
||||
; pxor %xmm5, %xmm0, %xmm5
|
||||
; cvttps2dq %xmm0, %xmm9
|
||||
; movdqa %xmm0, %xmm6
|
||||
; andps %xmm6, %xmm5, %xmm6
|
||||
; pxor %xmm5, %xmm6, %xmm5
|
||||
; cvttps2dq %xmm6, %xmm9
|
||||
; movdqa %xmm9, %xmm0
|
||||
; pand %xmm0, %xmm5, %xmm0
|
||||
; psrad %xmm0, $31, %xmm0
|
||||
|
||||
@@ -10,8 +10,8 @@ block0(v0: f32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %FloorF32+0, %r8
|
||||
; call *%r8
|
||||
; load_ext_name %FloorF32+0, %rdx
|
||||
; call *%rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -25,8 +25,8 @@ block0(v0: f64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %FloorF64+0, %r8
|
||||
; call *%r8
|
||||
; load_ext_name %FloorF64+0, %rdx
|
||||
; call *%rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -10,8 +10,8 @@ block0(v0: f32, v1: f32, v2: f32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %FmaF32+0, %rsi
|
||||
; call *%rsi
|
||||
; load_ext_name %FmaF32+0, %r9
|
||||
; call *%r9
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -25,8 +25,8 @@ block0(v0: f64, v1: f64, v2: f64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %FmaF64+0, %rsi
|
||||
; call *%rsi
|
||||
; load_ext_name %FmaF64+0, %r9
|
||||
; call *%r9
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -11,10 +11,10 @@ block0(v0: i128, v1: i128):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addq %rdi, %rdx, %rdi
|
||||
; adcq %rsi, %rcx, %rsi
|
||||
; movq %rdi, %rax
|
||||
; addq %rax, %rdx, %rax
|
||||
; movq %rsi, %rdx
|
||||
; adcq %rdx, %rcx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -28,10 +28,10 @@ block0(v0: i128, v1: i128):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; subq %rdi, %rdx, %rdi
|
||||
; sbbq %rsi, %rcx, %rsi
|
||||
; movq %rdi, %rax
|
||||
; subq %rax, %rdx, %rax
|
||||
; movq %rsi, %rdx
|
||||
; sbbq %rdx, %rcx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -45,10 +45,10 @@ block0(v0: i128, v1: i128):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; andq %rdi, %rdx, %rdi
|
||||
; andq %rsi, %rcx, %rsi
|
||||
; movq %rdi, %rax
|
||||
; andq %rax, %rdx, %rax
|
||||
; movq %rsi, %rdx
|
||||
; andq %rdx, %rcx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -62,10 +62,10 @@ block0(v0: i128, v1: i128):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; orq %rdi, %rdx, %rdi
|
||||
; orq %rsi, %rcx, %rsi
|
||||
; movq %rdi, %rax
|
||||
; orq %rax, %rdx, %rax
|
||||
; movq %rsi, %rdx
|
||||
; orq %rdx, %rcx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -79,10 +79,10 @@ block0(v0: i128, v1: i128):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorq %rdi, %rdx, %rdi
|
||||
; xorq %rsi, %rcx, %rsi
|
||||
; movq %rdi, %rax
|
||||
; xorq %rax, %rdx, %rax
|
||||
; movq %rsi, %rdx
|
||||
; xorq %rdx, %rcx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -96,10 +96,10 @@ block0(v0: i128):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; notq %rdi, %rdi
|
||||
; notq %rsi, %rsi
|
||||
; movq %rdi, %rax
|
||||
; notq %rax, %rax
|
||||
; movq %rsi, %rdx
|
||||
; notq %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -115,11 +115,11 @@ block0(v0: i128, v1: i128):
|
||||
; block0:
|
||||
; movq %rdi, %r8
|
||||
; imulq %r8, %rcx, %r8
|
||||
; movq %rdi, %rax
|
||||
; imulq %rsi, %rdx, %rsi
|
||||
; movq %r8, %r9
|
||||
; addq %r9, %rsi, %r9
|
||||
; movq %r9, %r8
|
||||
; movq %rdi, %rax
|
||||
; mul %rax, %rdx, %rax, %rdx
|
||||
; movq %r8, %rdi
|
||||
; addq %rdi, %rdx, %rdi
|
||||
@@ -466,9 +466,9 @@ block0(v0: b1):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; andq %rdi, $1, %rdi
|
||||
; xorq %rdx, %rdx, %rdx
|
||||
; movq %rdi, %rax
|
||||
; andq %rax, $1, %rax
|
||||
; xorq %rdx, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -486,16 +486,17 @@ block0(v0: i128):
|
||||
; shrq $1, %rdx, %rdx
|
||||
; movabsq $8608480567731124087, %r10
|
||||
; andq %rdx, %r10, %rdx
|
||||
; subq %rdi, %rdx, %rdi
|
||||
; movq %rdi, %r11
|
||||
; subq %r11, %rdx, %r11
|
||||
; shrq $1, %rdx, %rdx
|
||||
; andq %rdx, %r10, %rdx
|
||||
; subq %rdi, %rdx, %rdi
|
||||
; subq %r11, %rdx, %r11
|
||||
; shrq $1, %rdx, %rdx
|
||||
; andq %rdx, %r10, %rdx
|
||||
; subq %rdi, %rdx, %rdi
|
||||
; movq %rdi, %rax
|
||||
; subq %r11, %rdx, %r11
|
||||
; movq %r11, %rax
|
||||
; shrq $4, %rax, %rax
|
||||
; addq %rax, %rdi, %rax
|
||||
; addq %rax, %r11, %rax
|
||||
; movabsq $1085102592571150095, %rcx
|
||||
; andq %rax, %rcx, %rax
|
||||
; movabsq $72340172838076673, %r9
|
||||
@@ -505,16 +506,17 @@ block0(v0: i128):
|
||||
; shrq $1, %rcx, %rcx
|
||||
; movabsq $8608480567731124087, %r8
|
||||
; andq %rcx, %r8, %rcx
|
||||
; subq %rsi, %rcx, %rsi
|
||||
; movq %rsi, %r9
|
||||
; subq %r9, %rcx, %r9
|
||||
; shrq $1, %rcx, %rcx
|
||||
; andq %rcx, %r8, %rcx
|
||||
; subq %rsi, %rcx, %rsi
|
||||
; subq %r9, %rcx, %r9
|
||||
; shrq $1, %rcx, %rcx
|
||||
; andq %rcx, %r8, %rcx
|
||||
; subq %rsi, %rcx, %rsi
|
||||
; movq %rsi, %rcx
|
||||
; subq %r9, %rcx, %r9
|
||||
; movq %r9, %rcx
|
||||
; shrq $4, %rcx, %rcx
|
||||
; addq %rcx, %rsi, %rcx
|
||||
; addq %rcx, %r9, %rcx
|
||||
; movabsq $1085102592571150095, %rsi
|
||||
; andq %rcx, %rsi, %rcx
|
||||
; movabsq $72340172838076673, %rdx
|
||||
@@ -538,10 +540,11 @@ block0(v0: i128):
|
||||
; movabsq $6148914691236517205, %r8
|
||||
; movq %rsi, %r9
|
||||
; andq %r9, %r8, %r9
|
||||
; shrq $1, %rsi, %rsi
|
||||
; andq %rsi, %r8, %rsi
|
||||
; movq %rsi, %rax
|
||||
; shrq $1, %rax, %rax
|
||||
; andq %rax, %r8, %rax
|
||||
; shlq $1, %r9, %r9
|
||||
; orq %r9, %rsi, %r9
|
||||
; orq %r9, %rax, %r9
|
||||
; movabsq $3689348814741910323, %r11
|
||||
; movq %r9, %rsi
|
||||
; andq %rsi, %r11, %rsi
|
||||
@@ -579,10 +582,11 @@ block0(v0: i128):
|
||||
; movabsq $6148914691236517205, %rcx
|
||||
; movq %rdi, %rdx
|
||||
; andq %rdx, %rcx, %rdx
|
||||
; shrq $1, %rdi, %rdi
|
||||
; andq %rdi, %rcx, %rdi
|
||||
; movq %rdi, %r11
|
||||
; shrq $1, %r11, %r11
|
||||
; andq %r11, %rcx, %r11
|
||||
; shlq $1, %rdx, %rdx
|
||||
; orq %rdx, %rdi, %rdx
|
||||
; orq %rdx, %r11, %rdx
|
||||
; movabsq $3689348814741910323, %r9
|
||||
; movq %rdx, %r10
|
||||
; andq %r10, %r9, %r10
|
||||
@@ -708,32 +712,42 @@ block0(v0: i128, v1: i128, v2: i64, v3: i128, v4: i128, v5: i128):
|
||||
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; subq %rsp, $16, %rsp
|
||||
; subq %rsp, $32, %rsp
|
||||
; movq %rbx, 0(%rsp)
|
||||
; movq %r13, 8(%rsp)
|
||||
; movq %r12, 8(%rsp)
|
||||
; movq %r13, 16(%rsp)
|
||||
; block0:
|
||||
; movq %r9, %r13
|
||||
; movq %rcx, %rax
|
||||
; movq %r8, %rcx
|
||||
; movq %rax, %r8
|
||||
; movq 16(%rbp), %rbx
|
||||
; movq 24(%rbp), %rax
|
||||
; movq 32(%rbp), %r10
|
||||
; movq %r10, %r13
|
||||
; movq 40(%rbp), %r11
|
||||
; movq 48(%rbp), %r10
|
||||
; addq %rdi, %rdx, %rdi
|
||||
; movq %rcx, %rdx
|
||||
; adcq %rsi, %rdx, %rsi
|
||||
; movq 32(%rbp), %r9
|
||||
; movq %r9, %r12
|
||||
; movq 40(%rbp), %r10
|
||||
; movq 48(%rbp), %r11
|
||||
; movq %rdi, %r9
|
||||
; addq %r9, %rdx, %r9
|
||||
; movq %r8, %rdi
|
||||
; movq %rsi, %r8
|
||||
; adcq %r8, %rdi, %r8
|
||||
; xorq %rdx, %rdx, %rdx
|
||||
; addq %r9, %r8, %r9
|
||||
; movq %rcx, %rsi
|
||||
; movq %r13, %rdi
|
||||
; addq %rdi, %rsi, %rdi
|
||||
; adcq %rbx, %rdx, %rbx
|
||||
; addq %rax, %r11, %rax
|
||||
; movq %r13, %rdx
|
||||
; adcq %rdx, %r10, %rdx
|
||||
; addq %rdi, %r9, %rdi
|
||||
; adcq %rsi, %rbx, %rsi
|
||||
; addq %rax, %rdi, %rax
|
||||
; adcq %rdx, %rsi, %rdx
|
||||
; addq %rax, %r10, %rax
|
||||
; movq %r12, %rdx
|
||||
; adcq %rdx, %r11, %rdx
|
||||
; addq %r9, %rdi, %r9
|
||||
; adcq %r8, %rbx, %r8
|
||||
; addq %rax, %r9, %rax
|
||||
; adcq %rdx, %r8, %rdx
|
||||
; movq 0(%rsp), %rbx
|
||||
; movq 8(%rsp), %r13
|
||||
; addq %rsp, $16, %rsp
|
||||
; movq 8(%rsp), %r12
|
||||
; movq 16(%rsp), %r13
|
||||
; addq %rsp, $32, %rsp
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -746,37 +760,41 @@ block0(v0: i128):
|
||||
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; subq %rsp, $32, %rsp
|
||||
; subq %rsp, $48, %rsp
|
||||
; movq %rbx, 0(%rsp)
|
||||
; movq %r12, 8(%rsp)
|
||||
; movq %r14, 16(%rsp)
|
||||
; movq %r15, 24(%rsp)
|
||||
; movq %r13, 16(%rsp)
|
||||
; movq %r14, 24(%rsp)
|
||||
; movq %r15, 32(%rsp)
|
||||
; block0:
|
||||
; movq %rdx, %r12
|
||||
; movq %rdi, %rax
|
||||
; movq %rsi, %rdx
|
||||
; movq %rdi, %r14
|
||||
; movq %rsi, %rbx
|
||||
; movq %rdi, %r13
|
||||
; movq %rsi, %r15
|
||||
; movq %rdi, %r11
|
||||
; movq %rsi, %r9
|
||||
; movq %rdi, %r10
|
||||
; movq %rdi, %r8
|
||||
; movq %rsi, %rcx
|
||||
; movq %r12, %r15
|
||||
; movq %r14, 0(%r15)
|
||||
; movq %rbx, 8(%r15)
|
||||
; movq %r11, 16(%r15)
|
||||
; movq %r9, 24(%r15)
|
||||
; movq %r10, 32(%r15)
|
||||
; movq %r8, 40(%r15)
|
||||
; movq %rcx, 48(%r15)
|
||||
; movq %rdi, 56(%r15)
|
||||
; movq %rsi, 64(%r15)
|
||||
; movq %rdi, %r8
|
||||
; movq %rsi, %r9
|
||||
; movq %r12, %rdi
|
||||
; movq %r14, 0(%rdi)
|
||||
; movq %rbx, 8(%rdi)
|
||||
; movq %r13, 16(%rdi)
|
||||
; movq %r15, 24(%rdi)
|
||||
; movq %r11, 32(%rdi)
|
||||
; movq %r10, 40(%rdi)
|
||||
; movq %rcx, 48(%rdi)
|
||||
; movq %r8, 56(%rdi)
|
||||
; movq %r9, 64(%rdi)
|
||||
; movq 0(%rsp), %rbx
|
||||
; movq 8(%rsp), %r12
|
||||
; movq 16(%rsp), %r14
|
||||
; movq 24(%rsp), %r15
|
||||
; addq %rsp, $32, %rsp
|
||||
; movq 16(%rsp), %r13
|
||||
; movq 24(%rsp), %r14
|
||||
; movq 32(%rsp), %r15
|
||||
; addq %rsp, $48, %rsp
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -873,8 +891,8 @@ block0(v0: i8, v1: i128):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shlb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shlb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -891,19 +909,21 @@ block0(v0: i128, v1: i128):
|
||||
; movq %rdx, %rcx
|
||||
; movq %rdi, %rdx
|
||||
; shlq %cl, %rdx, %rdx
|
||||
; shlq %cl, %rsi, %rsi
|
||||
; movq %rcx, %rax
|
||||
; movq %rsi, %r8
|
||||
; shlq %cl, %r8, %r8
|
||||
; movq %rcx, %rsi
|
||||
; movl $64, %ecx
|
||||
; movq %rax, %r8
|
||||
; subq %rcx, %r8, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rsi, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; movq %rdi, %rsi
|
||||
; shrq %cl, %rsi, %rsi
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %r8
|
||||
; cmovzq %rax, %rdi, %rdi
|
||||
; orq %rdi, %rsi, %rdi
|
||||
; testq $64, %r8
|
||||
; testq $127, %r9
|
||||
; cmovzq %rax, %rsi, %rsi
|
||||
; orq %rsi, %r8, %rsi
|
||||
; testq $64, %r9
|
||||
; cmovzq %rdx, %rax, %rax
|
||||
; cmovzq %rdi, %rdx, %rdx
|
||||
; cmovzq %rsi, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -918,21 +938,23 @@ block0(v0: i128, v1: i128):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r10
|
||||
; shrq %cl, %r10, %r10
|
||||
; movq %rsi, %r8
|
||||
; shrq %cl, %r8, %r8
|
||||
; movl $64, %ecx
|
||||
; movq %rdx, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; shlq %cl, %rsi, %rsi
|
||||
; movq %rsi, %rdi
|
||||
; shlq %cl, %rdi, %rdi
|
||||
; xorq %r11, %r11, %r11
|
||||
; testq $127, %r9
|
||||
; cmovzq %r11, %rsi, %rsi
|
||||
; orq %rsi, %rdi, %rsi
|
||||
; cmovzq %r11, %rdi, %rdi
|
||||
; orq %rdi, %r10, %rdi
|
||||
; xorq %rdx, %rdx, %rdx
|
||||
; testq $64, %r9
|
||||
; movq %r8, %rax
|
||||
; cmovzq %rsi, %rax, %rax
|
||||
; cmovzq %rdi, %rax, %rax
|
||||
; cmovzq %r8, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -948,25 +970,25 @@ block0(v0: i128, v1: i128):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rsi, %rdx
|
||||
; sarq %cl, %rdx, %rdx
|
||||
; movq %rcx, %rax
|
||||
; movq %rdi, %r8
|
||||
; shrq %cl, %r8, %r8
|
||||
; movq %rsi, %rdi
|
||||
; sarq %cl, %rdi, %rdi
|
||||
; movl $64, %ecx
|
||||
; movq %rax, %r8
|
||||
; subq %rcx, %r8, %rcx
|
||||
; movq %rdx, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; movq %rsi, %r11
|
||||
; shlq %cl, %r11, %r11
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %r8
|
||||
; testq $127, %r9
|
||||
; cmovzq %rax, %r11, %r11
|
||||
; orq %rdi, %r11, %rdi
|
||||
; sarq $63, %rsi, %rsi
|
||||
; testq $64, %r8
|
||||
; movq %rdx, %rax
|
||||
; cmovzq %rdi, %rax, %rax
|
||||
; cmovzq %rdx, %rsi, %rsi
|
||||
; orq %r8, %r11, %r8
|
||||
; movq %rsi, %rdx
|
||||
; sarq $63, %rdx, %rdx
|
||||
; testq $64, %r9
|
||||
; movq %rdi, %rax
|
||||
; cmovzq %r8, %rax, %rax
|
||||
; cmovzq %rdi, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -1000,19 +1022,20 @@ block0(v0: i128, v1: i128):
|
||||
; movl $128, %ecx
|
||||
; movq %r10, %r8
|
||||
; subq %rcx, %r8, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r9
|
||||
; shrq %cl, %r9, %r9
|
||||
; movq %rsi, %r11
|
||||
; shrq %cl, %r11, %r11
|
||||
; movq %rcx, %r8
|
||||
; movq %rcx, %rdi
|
||||
; movl $64, %ecx
|
||||
; subq %rcx, %r8, %rcx
|
||||
; subq %rcx, %rdi, %rcx
|
||||
; shlq %cl, %rsi, %rsi
|
||||
; xorq %r10, %r10, %r10
|
||||
; testq $127, %r8
|
||||
; testq $127, %rdi
|
||||
; cmovzq %r10, %rsi, %rsi
|
||||
; orq %rsi, %rdi, %rsi
|
||||
; orq %rsi, %r9, %rsi
|
||||
; xorq %r10, %r10, %r10
|
||||
; testq $64, %r8
|
||||
; testq $64, %rdi
|
||||
; movq %r11, %rdi
|
||||
; cmovzq %rsi, %rdi, %rdi
|
||||
; cmovzq %r11, %r10, %r10
|
||||
@@ -1057,17 +1080,17 @@ block0(v0: i128, v1: i128):
|
||||
; subq %rcx, %r8, %rcx
|
||||
; movq %rdi, %r11
|
||||
; shlq %cl, %r11, %r11
|
||||
; shlq %cl, %rsi, %rsi
|
||||
; movq %rcx, %r8
|
||||
; movq %rsi, %r9
|
||||
; shlq %cl, %r9, %r9
|
||||
; movq %rcx, %rsi
|
||||
; movl $64, %ecx
|
||||
; movq %r8, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; subq %rcx, %rsi, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; xorq %r8, %r8, %r8
|
||||
; testq $127, %r9
|
||||
; testq $127, %rsi
|
||||
; cmovzq %r8, %rdi, %rdi
|
||||
; orq %rdi, %rsi, %rdi
|
||||
; testq $64, %r9
|
||||
; orq %rdi, %r9, %rdi
|
||||
; testq $64, %rsi
|
||||
; cmovzq %r11, %r8, %r8
|
||||
; cmovzq %rdi, %r11, %r11
|
||||
; orq %rax, %r8, %rax
|
||||
|
||||
@@ -20,19 +20,21 @@ block0(v0: i128, v1: i8):
|
||||
; movzbq %dl, %rcx
|
||||
; movq %rdi, %rdx
|
||||
; shlq %cl, %rdx, %rdx
|
||||
; shlq %cl, %rsi, %rsi
|
||||
; movq %rsi, %r8
|
||||
; shlq %cl, %r8, %r8
|
||||
; movq %rcx, %r11
|
||||
; movl $64, %ecx
|
||||
; movq %r11, %r8
|
||||
; subq %rcx, %r8, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %r11, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; movq %rdi, %rsi
|
||||
; shrq %cl, %rsi, %rsi
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %r8
|
||||
; cmovzq %rax, %rdi, %rdi
|
||||
; orq %rdi, %rsi, %rdi
|
||||
; testq $64, %r8
|
||||
; testq $127, %r9
|
||||
; cmovzq %rax, %rsi, %rsi
|
||||
; orq %rsi, %r8, %rsi
|
||||
; testq $64, %r9
|
||||
; cmovzq %rdx, %rax, %rax
|
||||
; cmovzq %rdi, %rdx, %rdx
|
||||
; cmovzq %rsi, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -54,14 +56,15 @@ block0(v0: i128, v1: i64):
|
||||
; movl $64, %ecx
|
||||
; movq %r11, %r8
|
||||
; subq %rcx, %r8, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r11
|
||||
; shrq %cl, %r11, %r11
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %r8
|
||||
; cmovzq %rax, %rdi, %rdi
|
||||
; orq %rdi, %rsi, %rdi
|
||||
; cmovzq %rax, %r11, %r11
|
||||
; orq %r11, %rsi, %r11
|
||||
; testq $64, %r8
|
||||
; cmovzq %rdx, %rax, %rax
|
||||
; cmovzq %rdi, %rdx, %rdx
|
||||
; cmovzq %r11, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -83,14 +86,15 @@ block0(v0: i128, v1: i32):
|
||||
; movl $64, %ecx
|
||||
; movq %r11, %r8
|
||||
; subq %rcx, %r8, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r11
|
||||
; shrq %cl, %r11, %r11
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %r8
|
||||
; cmovzq %rax, %rdi, %rdi
|
||||
; orq %rdi, %rsi, %rdi
|
||||
; cmovzq %rax, %r11, %r11
|
||||
; orq %r11, %rsi, %r11
|
||||
; testq $64, %r8
|
||||
; cmovzq %rdx, %rax, %rax
|
||||
; cmovzq %rdi, %rdx, %rdx
|
||||
; cmovzq %r11, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -112,14 +116,15 @@ block0(v0: i128, v1: i16):
|
||||
; movl $64, %ecx
|
||||
; movq %r11, %r8
|
||||
; subq %rcx, %r8, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r11
|
||||
; shrq %cl, %r11, %r11
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %r8
|
||||
; cmovzq %rax, %rdi, %rdi
|
||||
; orq %rdi, %rsi, %rdi
|
||||
; cmovzq %rax, %r11, %r11
|
||||
; orq %r11, %rsi, %r11
|
||||
; testq $64, %r8
|
||||
; cmovzq %rdx, %rax, %rax
|
||||
; cmovzq %rdi, %rdx, %rdx
|
||||
; cmovzq %r11, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -141,14 +146,15 @@ block0(v0: i128, v1: i8):
|
||||
; movl $64, %ecx
|
||||
; movq %r11, %r8
|
||||
; subq %rcx, %r8, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r11
|
||||
; shrq %cl, %r11, %r11
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %r8
|
||||
; cmovzq %rax, %rdi, %rdi
|
||||
; orq %rdi, %rsi, %rdi
|
||||
; cmovzq %rax, %r11, %r11
|
||||
; orq %r11, %rsi, %r11
|
||||
; testq $64, %r8
|
||||
; cmovzq %rdx, %rax, %rax
|
||||
; cmovzq %rdi, %rdx, %rdx
|
||||
; cmovzq %r11, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -163,8 +169,8 @@ block0(v0: i64, v1: i128):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shlq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shlq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -179,8 +185,8 @@ block0(v0: i32, v1: i128):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shll %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shll %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -196,8 +202,8 @@ block0(v0: i16, v1: i128):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shlw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shlw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -213,8 +219,8 @@ block0(v0: i8, v1: i128):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shlb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shlb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -229,8 +235,8 @@ block0(v0: i64, v1: i64):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shlq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shlq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -245,8 +251,8 @@ block0(v0: i64, v1: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shlq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shlq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -261,8 +267,8 @@ block0(v0: i64, v1: i16):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shlq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shlq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -277,8 +283,8 @@ block0(v0: i64, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shlq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shlq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -293,8 +299,8 @@ block0(v0: i32, v1: i64):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shll %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shll %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -309,8 +315,8 @@ block0(v0: i32, v1: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shll %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shll %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -325,8 +331,8 @@ block0(v0: i32, v1: i16):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shll %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shll %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -341,8 +347,8 @@ block0(v0: i32, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shll %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shll %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -358,8 +364,8 @@ block0(v0: i16, v1: i64):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shlw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shlw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -375,8 +381,8 @@ block0(v0: i16, v1: i32):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shlw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shlw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -392,8 +398,8 @@ block0(v0: i16, v1: i16):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shlw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shlw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -409,8 +415,8 @@ block0(v0: i16, v1: i8):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shlw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shlw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -426,8 +432,8 @@ block0(v0: i8, v1: i64):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shlb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shlb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -443,8 +449,8 @@ block0(v0: i8, v1: i32):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shlb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shlb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -460,8 +466,8 @@ block0(v0: i8, v1: i16):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shlb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shlb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -477,8 +483,8 @@ block0(v0: i8, v1: i8):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shlb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shlb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -492,8 +498,8 @@ block0(v0: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shlq $1, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shlq $1, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -507,8 +513,8 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shll $1, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shll $1, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -522,8 +528,8 @@ block0(v0: i16):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shlw $1, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shlw $1, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -537,8 +543,8 @@ block0(v0: i8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shlb $1, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shlb $1, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -11,8 +11,8 @@ block0(v0: i64, v1: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addl %esi, 0(%rdi), %esi
|
||||
; movq %rsi, %rax
|
||||
; addl %eax, 0(%rdi), %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -27,8 +27,8 @@ block0(v0: i64, v1: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addl %esi, 0(%rdi), %esi
|
||||
; movq %rsi, %rax
|
||||
; addl %eax, 0(%rdi), %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -43,8 +43,8 @@ block0(v0: i64, v1: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addq %rsi, 0(%rdi), %rsi
|
||||
; movq %rsi, %rax
|
||||
; addq %rax, 0(%rdi), %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -56,14 +56,11 @@ block0(v0: i64, v1: i64):
|
||||
return v3
|
||||
}
|
||||
|
||||
;; test narrow loads: 8-bit load should not merge because the `addl` is 32 bits
|
||||
;; and would load 32 bits from memory, which may go beyond the end of the heap.
|
||||
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addq %rsi, 0(%rdi), %rsi
|
||||
; movq %rsi, %rax
|
||||
; addq %rax, 0(%rdi), %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -44,8 +44,9 @@ block0(v0: f64x2):
|
||||
; cmppd $0, %xmm5, %xmm0, %xmm5
|
||||
; movupd const(0), %xmm6
|
||||
; andps %xmm5, %xmm6, %xmm5
|
||||
; minpd %xmm0, %xmm5, %xmm0
|
||||
; cvttpd2dq %xmm0, %xmm0
|
||||
; movdqa %xmm0, %xmm9
|
||||
; minpd %xmm9, %xmm5, %xmm9
|
||||
; cvttpd2dq %xmm9, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -10,8 +10,8 @@ block0(v0: f32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %NearestF32+0, %r8
|
||||
; call *%r8
|
||||
; load_ext_name %NearestF32+0, %rdx
|
||||
; call *%rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -25,8 +25,8 @@ block0(v0: f64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %NearestF64+0, %r8
|
||||
; call *%r8
|
||||
; load_ext_name %NearestF64+0, %rdx
|
||||
; call *%rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -14,16 +14,17 @@ block0(v0: i64):
|
||||
; shrq $1, %rax, %rax
|
||||
; movabsq $8608480567731124087, %r8
|
||||
; andq %rax, %r8, %rax
|
||||
; subq %rdi, %rax, %rdi
|
||||
; movq %rdi, %r9
|
||||
; subq %r9, %rax, %r9
|
||||
; shrq $1, %rax, %rax
|
||||
; andq %rax, %r8, %rax
|
||||
; subq %rdi, %rax, %rdi
|
||||
; subq %r9, %rax, %r9
|
||||
; shrq $1, %rax, %rax
|
||||
; andq %rax, %r8, %rax
|
||||
; subq %rdi, %rax, %rdi
|
||||
; movq %rdi, %rax
|
||||
; subq %r9, %rax, %r9
|
||||
; movq %r9, %rax
|
||||
; shrq $4, %rax, %rax
|
||||
; addq %rax, %rdi, %rax
|
||||
; addq %rax, %r9, %rax
|
||||
; movabsq $1085102592571150095, %rsi
|
||||
; andq %rax, %rsi, %rax
|
||||
; movabsq $72340172838076673, %rdx
|
||||
@@ -80,16 +81,17 @@ block0(v0: i32):
|
||||
; shrl $1, %eax, %eax
|
||||
; movl $2004318071, %r8d
|
||||
; andl %eax, %r8d, %eax
|
||||
; subl %edi, %eax, %edi
|
||||
; movq %rdi, %r9
|
||||
; subl %r9d, %eax, %r9d
|
||||
; shrl $1, %eax, %eax
|
||||
; andl %eax, %r8d, %eax
|
||||
; subl %edi, %eax, %edi
|
||||
; subl %r9d, %eax, %r9d
|
||||
; shrl $1, %eax, %eax
|
||||
; andl %eax, %r8d, %eax
|
||||
; subl %edi, %eax, %edi
|
||||
; movq %rdi, %rax
|
||||
; subl %r9d, %eax, %r9d
|
||||
; movq %r9, %rax
|
||||
; shrl $4, %eax, %eax
|
||||
; addl %eax, %edi, %eax
|
||||
; addl %eax, %r9d, %eax
|
||||
; andl %eax, $252645135, %eax
|
||||
; imull %eax, $16843009, %eax
|
||||
; shrl $24, %eax, %eax
|
||||
|
||||
@@ -12,7 +12,6 @@ block0(v0: i8, v1: i8):
|
||||
; block0:
|
||||
; movq %rdi, %rax
|
||||
; cbw %al, %al
|
||||
; movq %rax, %r11
|
||||
; idiv %al, (none), %sil, %al, (none)
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -29,7 +28,6 @@ block0(v0: i16, v1: i16):
|
||||
; block0:
|
||||
; movq %rdi, %rax
|
||||
; cwd %ax, %dx
|
||||
; movq %rdx, %rcx
|
||||
; idiv %ax, %dx, %si, %ax, %dx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -46,7 +44,6 @@ block0(v0: i32, v1: i32):
|
||||
; block0:
|
||||
; movq %rdi, %rax
|
||||
; cdq %eax, %edx
|
||||
; movq %rdx, %rcx
|
||||
; idiv %eax, %edx, %esi, %eax, %edx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -63,7 +60,6 @@ block0(v0: i64, v1: i64):
|
||||
; block0:
|
||||
; movq %rdi, %rax
|
||||
; cqo %rax, %rdx
|
||||
; movq %rdx, %rcx
|
||||
; idiv %rax, %rdx, %rsi, %rax, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
|
||||
@@ -14,10 +14,11 @@ block0(v0: i32, v1: i128, v2: i128):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; cmpl $42, %edi
|
||||
; cmovzq %rsi, %rcx, %rcx
|
||||
; cmovzq %rdx, %r8, %r8
|
||||
; movq %rcx, %rax
|
||||
; movq %r8, %rdx
|
||||
; cmovzq %rsi, %rax, %rax
|
||||
; movq %r8, %rcx
|
||||
; cmovzq %rdx, %rcx, %rcx
|
||||
; movq %rcx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -33,12 +34,12 @@ block0(v0: f32, v1: i128, v2: i128):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; ucomiss %xmm0, %xmm0
|
||||
; cmovnzq %rdx, %rdi, %rdi
|
||||
; cmovpq %rdx, %rdi, %rdi
|
||||
; cmovnzq %rcx, %rsi, %rsi
|
||||
; cmovpq %rcx, %rsi, %rsi
|
||||
; movq %rdi, %rax
|
||||
; cmovnzq %rdx, %rax, %rax
|
||||
; cmovpq %rdx, %rax, %rax
|
||||
; movq %rsi, %rdx
|
||||
; cmovnzq %rcx, %rdx, %rdx
|
||||
; cmovpq %rcx, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -159,8 +159,9 @@ block0(v0: b16x8, v1: i16x8, v2: i16x8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; pblendvb %xmm2, %xmm1, %xmm2
|
||||
; movdqa %xmm2, %xmm0
|
||||
; movdqa %xmm2, %xmm6
|
||||
; pblendvb %xmm6, %xmm1, %xmm6
|
||||
; movdqa %xmm6, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -174,8 +175,9 @@ block0(v0: b32x4, v1: f32x4, v2: f32x4):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; blendvps %xmm2, %xmm1, %xmm2
|
||||
; movdqa %xmm2, %xmm0
|
||||
; movdqa %xmm2, %xmm6
|
||||
; blendvps %xmm6, %xmm1, %xmm6
|
||||
; movdqa %xmm6, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -189,8 +191,9 @@ block0(v0: b64x2, v1: f64x2, v2: f64x2):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; blendvpd %xmm2, %xmm1, %xmm2
|
||||
; movdqa %xmm2, %xmm0
|
||||
; movdqa %xmm2, %xmm6
|
||||
; blendvpd %xmm6, %xmm1, %xmm6
|
||||
; movdqa %xmm6, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -206,12 +209,13 @@ block0(v0: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movdqu const(1), %xmm0
|
||||
; andq %rdi, $7, %rdi
|
||||
; movd %edi, %xmm6
|
||||
; movq %rdi, %r11
|
||||
; andq %r11, $7, %r11
|
||||
; movd %r11d, %xmm6
|
||||
; psllw %xmm0, %xmm6, %xmm0
|
||||
; lea const(0), %rax
|
||||
; shlq $4, %rdi, %rdi
|
||||
; movdqu 0(%rax,%rdi,1), %xmm14
|
||||
; lea const(0), %rdi
|
||||
; shlq $4, %r11, %r11
|
||||
; movdqu 0(%rdi,%r11,1), %xmm14
|
||||
; pand %xmm0, %xmm14, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -252,12 +256,13 @@ block0(v0: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movdqu const(0), %xmm9
|
||||
; andq %rdi, $7, %rdi
|
||||
; movq %rdi, %r10
|
||||
; andq %r10, $7, %r10
|
||||
; movdqa %xmm9, %xmm0
|
||||
; punpcklbw %xmm0, %xmm9, %xmm0
|
||||
; punpckhbw %xmm9, %xmm9, %xmm9
|
||||
; addl %edi, $8, %edi
|
||||
; movd %edi, %xmm12
|
||||
; addl %r10d, $8, %r10d
|
||||
; movd %r10d, %xmm12
|
||||
; psraw %xmm0, %xmm12, %xmm0
|
||||
; psraw %xmm9, %xmm12, %xmm9
|
||||
; packsswb %xmm0, %xmm9, %xmm0
|
||||
@@ -279,14 +284,14 @@ block0(v0: i8x16, v1: i32):
|
||||
; movdqa %xmm0, %xmm14
|
||||
; punpcklbw %xmm14, %xmm0, %xmm14
|
||||
; movdqa %xmm14, %xmm13
|
||||
; punpckhbw %xmm0, %xmm0, %xmm0
|
||||
; movdqa %xmm0, %xmm6
|
||||
; movdqa %xmm0, %xmm14
|
||||
; punpckhbw %xmm14, %xmm0, %xmm14
|
||||
; addl %r11d, $8, %r11d
|
||||
; movd %r11d, %xmm14
|
||||
; movd %r11d, %xmm15
|
||||
; movdqa %xmm13, %xmm0
|
||||
; psraw %xmm0, %xmm14, %xmm0
|
||||
; psraw %xmm6, %xmm14, %xmm6
|
||||
; packsswb %xmm0, %xmm6, %xmm0
|
||||
; psraw %xmm0, %xmm15, %xmm0
|
||||
; psraw %xmm14, %xmm15, %xmm14
|
||||
; packsswb %xmm0, %xmm14, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -42,8 +42,9 @@ block0(v0: i64x2):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; pxor %xmm3, %xmm3, %xmm3
|
||||
; pcmpeqq %xmm0, %xmm3, %xmm0
|
||||
; ptest %xmm0, %xmm0
|
||||
; movdqa %xmm0, %xmm5
|
||||
; pcmpeqq %xmm5, %xmm3, %xmm5
|
||||
; ptest %xmm5, %xmm5
|
||||
; setz %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
|
||||
@@ -10,9 +10,8 @@ block0(v0: i8, v1: i8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorl %r10d, %r10d, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; xorl %edx, %edx, %edx
|
||||
; srem_seq %al, %dl, %sil, %al, %dl, tmp=(none)
|
||||
; shrq $8, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
@@ -28,9 +27,8 @@ block0(v0: i16, v1: i16):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorl %r10d, %r10d, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; xorl %edx, %edx, %edx
|
||||
; srem_seq %ax, %dx, %si, %ax, %dx, tmp=(none)
|
||||
; movq %rdx, %rax
|
||||
; movq %rbp, %rsp
|
||||
@@ -46,9 +44,8 @@ block0(v0: i32, v1: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorl %r10d, %r10d, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; xorl %edx, %edx, %edx
|
||||
; srem_seq %eax, %edx, %esi, %eax, %edx, tmp=(none)
|
||||
; movq %rdx, %rax
|
||||
; movq %rbp, %rsp
|
||||
@@ -64,9 +61,8 @@ block0(v0: i64, v1: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorl %r10d, %r10d, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; xorl %edx, %edx, %edx
|
||||
; srem_seq %rax, %rdx, %rsi, %rax, %rdx, tmp=(none)
|
||||
; movq %rdx, %rax
|
||||
; movq %rbp, %rsp
|
||||
|
||||
@@ -17,25 +17,26 @@ block0(v0: i128, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movzbq %dl, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rsi, %rdx
|
||||
; sarq %cl, %rdx, %rdx
|
||||
; movq %rdi, %r8
|
||||
; shrq %cl, %r8, %r8
|
||||
; movq %rsi, %rdi
|
||||
; sarq %cl, %rdi, %rdi
|
||||
; movq %rcx, %rax
|
||||
; movl $64, %ecx
|
||||
; movq %rax, %r8
|
||||
; subq %rcx, %r8, %rcx
|
||||
; movq %rax, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; movq %rsi, %r11
|
||||
; shlq %cl, %r11, %r11
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %r8
|
||||
; testq $127, %r9
|
||||
; cmovzq %rax, %r11, %r11
|
||||
; orq %rdi, %r11, %rdi
|
||||
; sarq $63, %rsi, %rsi
|
||||
; testq $64, %r8
|
||||
; movq %rdx, %rax
|
||||
; cmovzq %rdi, %rax, %rax
|
||||
; cmovzq %rdx, %rsi, %rsi
|
||||
; orq %r8, %r11, %r8
|
||||
; movq %rsi, %rdx
|
||||
; sarq $63, %rdx, %rdx
|
||||
; testq $64, %r9
|
||||
; movq %rdi, %rax
|
||||
; cmovzq %r8, %rax, %rax
|
||||
; cmovzq %rdi, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -50,23 +51,25 @@ block0(v0: i128, v1: i64):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r8
|
||||
; shrq %cl, %r8, %r8
|
||||
; movq %rsi, %r11
|
||||
; sarq %cl, %r11, %r11
|
||||
; movl $64, %ecx
|
||||
; subq %rcx, %rdx, %rcx
|
||||
; movq %rdx, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; movq %rsi, %r10
|
||||
; shlq %cl, %r10, %r10
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %rdx
|
||||
; cmovzq %rax, %r10, %r10
|
||||
; orq %rdi, %r10, %rdi
|
||||
; sarq $63, %rsi, %rsi
|
||||
; testq $64, %rdx
|
||||
; movq %r11, %rax
|
||||
; cmovzq %rdi, %rax, %rax
|
||||
; cmovzq %r11, %rsi, %rsi
|
||||
; xorq %rdi, %rdi, %rdi
|
||||
; testq $127, %r9
|
||||
; cmovzq %rdi, %r10, %r10
|
||||
; orq %r8, %r10, %r8
|
||||
; movq %rsi, %rdx
|
||||
; sarq $63, %rdx, %rdx
|
||||
; testq $64, %r9
|
||||
; movq %r11, %rax
|
||||
; cmovzq %r8, %rax, %rax
|
||||
; cmovzq %r11, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -81,23 +84,25 @@ block0(v0: i128, v1: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r8
|
||||
; shrq %cl, %r8, %r8
|
||||
; movq %rsi, %r11
|
||||
; sarq %cl, %r11, %r11
|
||||
; movl $64, %ecx
|
||||
; subq %rcx, %rdx, %rcx
|
||||
; movq %rdx, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; movq %rsi, %r10
|
||||
; shlq %cl, %r10, %r10
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %rdx
|
||||
; cmovzq %rax, %r10, %r10
|
||||
; orq %rdi, %r10, %rdi
|
||||
; sarq $63, %rsi, %rsi
|
||||
; testq $64, %rdx
|
||||
; movq %r11, %rax
|
||||
; cmovzq %rdi, %rax, %rax
|
||||
; cmovzq %r11, %rsi, %rsi
|
||||
; xorq %rdi, %rdi, %rdi
|
||||
; testq $127, %r9
|
||||
; cmovzq %rdi, %r10, %r10
|
||||
; orq %r8, %r10, %r8
|
||||
; movq %rsi, %rdx
|
||||
; sarq $63, %rdx, %rdx
|
||||
; testq $64, %r9
|
||||
; movq %r11, %rax
|
||||
; cmovzq %r8, %rax, %rax
|
||||
; cmovzq %r11, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -112,23 +117,25 @@ block0(v0: i128, v1: i16):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r8
|
||||
; shrq %cl, %r8, %r8
|
||||
; movq %rsi, %r11
|
||||
; sarq %cl, %r11, %r11
|
||||
; movl $64, %ecx
|
||||
; subq %rcx, %rdx, %rcx
|
||||
; movq %rdx, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; movq %rsi, %r10
|
||||
; shlq %cl, %r10, %r10
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %rdx
|
||||
; cmovzq %rax, %r10, %r10
|
||||
; orq %rdi, %r10, %rdi
|
||||
; sarq $63, %rsi, %rsi
|
||||
; testq $64, %rdx
|
||||
; movq %r11, %rax
|
||||
; cmovzq %rdi, %rax, %rax
|
||||
; cmovzq %r11, %rsi, %rsi
|
||||
; xorq %rdi, %rdi, %rdi
|
||||
; testq $127, %r9
|
||||
; cmovzq %rdi, %r10, %r10
|
||||
; orq %r8, %r10, %r8
|
||||
; movq %rsi, %rdx
|
||||
; sarq $63, %rdx, %rdx
|
||||
; testq $64, %r9
|
||||
; movq %r11, %rax
|
||||
; cmovzq %r8, %rax, %rax
|
||||
; cmovzq %r11, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -143,23 +150,25 @@ block0(v0: i128, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r8
|
||||
; shrq %cl, %r8, %r8
|
||||
; movq %rsi, %r11
|
||||
; sarq %cl, %r11, %r11
|
||||
; movl $64, %ecx
|
||||
; subq %rcx, %rdx, %rcx
|
||||
; movq %rdx, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; movq %rsi, %r10
|
||||
; shlq %cl, %r10, %r10
|
||||
; xorq %rax, %rax, %rax
|
||||
; testq $127, %rdx
|
||||
; cmovzq %rax, %r10, %r10
|
||||
; orq %rdi, %r10, %rdi
|
||||
; sarq $63, %rsi, %rsi
|
||||
; testq $64, %rdx
|
||||
; movq %r11, %rax
|
||||
; cmovzq %rdi, %rax, %rax
|
||||
; cmovzq %r11, %rsi, %rsi
|
||||
; xorq %rdi, %rdi, %rdi
|
||||
; testq $127, %r9
|
||||
; cmovzq %rdi, %r10, %r10
|
||||
; orq %r8, %r10, %r8
|
||||
; movq %rsi, %rdx
|
||||
; sarq $63, %rdx, %rdx
|
||||
; testq $64, %r9
|
||||
; movq %r11, %rax
|
||||
; cmovzq %r8, %rax, %rax
|
||||
; cmovzq %r11, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -174,8 +183,8 @@ block0(v0: i64, v1: i128):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; sarq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -190,8 +199,8 @@ block0(v0: i32, v1: i128):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; sarl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -207,8 +216,8 @@ block0(v0: i16, v1: i128):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; sarw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; sarw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -224,8 +233,8 @@ block0(v0: i8, v1: i128):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; sarb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; sarb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -240,8 +249,8 @@ block0(v0: i64, v1: i64):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; sarq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -256,8 +265,8 @@ block0(v0: i64, v1: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; sarq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -272,8 +281,8 @@ block0(v0: i64, v1: i16):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; sarq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -288,8 +297,8 @@ block0(v0: i64, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; sarq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -304,8 +313,8 @@ block0(v0: i32, v1: i64):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; sarl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -320,8 +329,8 @@ block0(v0: i32, v1: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; sarl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -336,8 +345,8 @@ block0(v0: i32, v1: i16):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; sarl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -352,8 +361,8 @@ block0(v0: i32, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; sarl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; sarl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -369,8 +378,8 @@ block0(v0: i16, v1: i64):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; sarw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; sarw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -386,8 +395,8 @@ block0(v0: i16, v1: i32):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; sarw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; sarw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -403,8 +412,8 @@ block0(v0: i16, v1: i16):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; sarw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; sarw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -420,8 +429,8 @@ block0(v0: i16, v1: i8):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; sarw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; sarw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -437,8 +446,8 @@ block0(v0: i8, v1: i64):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; sarb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; sarb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -454,8 +463,8 @@ block0(v0: i8, v1: i32):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; sarb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; sarb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -471,8 +480,8 @@ block0(v0: i8, v1: i16):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; sarb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; sarb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -488,13 +497,12 @@ block0(v0: i8, v1: i8):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; sarb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; sarb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
|
||||
function %sshr_i64_const(i64) -> i64 {
|
||||
block0(v0: i64):
|
||||
v1 = sshr_imm.i64 v0, 65
|
||||
@@ -504,8 +512,8 @@ block0(v0: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; sarq $1, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; sarq $1, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -519,8 +527,8 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; sarl $1, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; sarl $1, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -534,8 +542,8 @@ block0(v0: i16):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; sarw $1, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; sarw $1, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -549,8 +557,8 @@ block0(v0: i8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; sarb $1, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; sarb $1, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -46,14 +46,13 @@ block0(v0: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdi, %r8
|
||||
; movq %rdi, %rsi
|
||||
; subq %rsp, $64, %rsp
|
||||
; virtual_sp_offset_adjust 64
|
||||
; lea 0(%rsp), %rdi
|
||||
; movq %r8, %rsi
|
||||
; movl $64, %edx
|
||||
; load_ext_name %Memcpy+0, %rcx
|
||||
; call *%rcx
|
||||
; load_ext_name %Memcpy+0, %rax
|
||||
; call *%rax
|
||||
; call User(userextname0)
|
||||
; addq %rsp, $64, %rsp
|
||||
; virtual_sp_offset_adjust -64
|
||||
@@ -72,20 +71,20 @@ block0(v0: i64, v1: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; subq %rsp, $16, %rsp
|
||||
; movq %r12, 0(%rsp)
|
||||
; movq %r14, 0(%rsp)
|
||||
; block0:
|
||||
; movq %rdi, %r12
|
||||
; movq %rdi, %r14
|
||||
; subq %rsp, $64, %rsp
|
||||
; virtual_sp_offset_adjust 64
|
||||
; lea 0(%rsp), %rdi
|
||||
; movl $64, %edx
|
||||
; load_ext_name %Memcpy+0, %rcx
|
||||
; call *%rcx
|
||||
; movq %r12, %rdi
|
||||
; movq %r14, %rdi
|
||||
; call User(userextname0)
|
||||
; addq %rsp, $64, %rsp
|
||||
; virtual_sp_offset_adjust -64
|
||||
; movq 0(%rsp), %r12
|
||||
; movq 0(%rsp), %r14
|
||||
; addq %rsp, $16, %rsp
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -122,28 +121,29 @@ block0(v0: i64, v1: i64, v2: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; subq %rsp, $16, %rsp
|
||||
; movq %rbx, 0(%rsp)
|
||||
; movq %r14, 8(%rsp)
|
||||
; movq %r13, 0(%rsp)
|
||||
; movq %r15, 8(%rsp)
|
||||
; block0:
|
||||
; movq %rdx, %rbx
|
||||
; movq %rdi, %r14
|
||||
; movq %rdx, %r15
|
||||
; movq %rdi, %r13
|
||||
; subq %rsp, $192, %rsp
|
||||
; virtual_sp_offset_adjust 192
|
||||
; lea 0(%rsp), %rdi
|
||||
; movl $128, %edx
|
||||
; load_ext_name %Memcpy+0, %rcx
|
||||
; call *%rcx
|
||||
; load_ext_name %Memcpy+0, %r8
|
||||
; call *%r8
|
||||
; lea 128(%rsp), %rdi
|
||||
; movq %rbx, %rsi
|
||||
; movq %r15, %rsi
|
||||
; movl $64, %edx
|
||||
; load_ext_name %Memcpy+0, %rcx
|
||||
; call *%rcx
|
||||
; movq %r14, %rdi
|
||||
; load_ext_name %Memcpy+0, %r8
|
||||
; movq %r15, %rsi
|
||||
; call *%r8
|
||||
; movq %r13, %rdi
|
||||
; call User(userextname0)
|
||||
; addq %rsp, $192, %rsp
|
||||
; virtual_sp_offset_adjust -192
|
||||
; movq 0(%rsp), %rbx
|
||||
; movq 8(%rsp), %r14
|
||||
; movq 0(%rsp), %r13
|
||||
; movq 8(%rsp), %r15
|
||||
; addq %rsp, $16, %rsp
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
|
||||
@@ -47,15 +47,10 @@ block0(v0: i64):
|
||||
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; subq %rsp, $16, %rsp
|
||||
; movq %r15, 0(%rsp)
|
||||
; block0:
|
||||
; movq %rdi, %r15
|
||||
; load_ext_name %f4+0, %r8
|
||||
; call *%r8
|
||||
; movq %r15, %rax
|
||||
; movq 0(%rsp), %r15
|
||||
; addq %rsp, $16, %rsp
|
||||
; movq %rdi, %rax
|
||||
; load_ext_name %f4+0, %rdx
|
||||
; call *%rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -22,7 +22,8 @@ block0(v0: i64, v1: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addq %rdi, %rsi, %rdi
|
||||
; movq %rdi, %rcx
|
||||
; addq %rcx, %rsi, %rcx
|
||||
; jnb ; ud2 user0 ;
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
|
||||
@@ -10,8 +10,8 @@ block0(v0: f32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %TruncF32+0, %r8
|
||||
; call *%r8
|
||||
; load_ext_name %TruncF32+0, %rdx
|
||||
; call *%rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -25,8 +25,8 @@ block0(v0: f64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_ext_name %TruncF64+0, %r8
|
||||
; call *%r8
|
||||
; load_ext_name %TruncF64+0, %rdx
|
||||
; call *%rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -10,8 +10,7 @@ block0(v0: i8, v1: i8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movzbl %dil, %r9d
|
||||
; movq %r9, %rax
|
||||
; movzbl %dil, %eax
|
||||
; div %al, (none), %sil, %al, (none)
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -26,9 +25,8 @@ block0(v0: i16, v1: i16):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movl $0, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; movl $0, %edx
|
||||
; div %ax, %dx, %si, %ax, %dx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -43,9 +41,8 @@ block0(v0: i32, v1: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movl $0, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; movl $0, %edx
|
||||
; div %eax, %edx, %esi, %eax, %edx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -60,9 +57,8 @@ block0(v0: i64, v1: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movl $0, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; movl $0, %edx
|
||||
; div %rax, %rdx, %rsi, %rax, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
|
||||
@@ -11,8 +11,8 @@ block0(v0: i32, v1: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addl %edi, %esi, %edi
|
||||
; movq %rdi, %rax
|
||||
; addl %eax, %esi, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -13,8 +13,8 @@ block0(v1: i32, v2: i64):
|
||||
; block0:
|
||||
; movl 0(%rsi), %r8d
|
||||
; cmpl %edi, %r8d
|
||||
; cmovnbl %r8d, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; cmovnbl %r8d, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -10,8 +10,7 @@ block0(v0: i8, v1: i8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movzbl %dil, %r9d
|
||||
; movq %r9, %rax
|
||||
; movzbl %dil, %eax
|
||||
; div %al, (none), %sil, %al, (none)
|
||||
; shrq $8, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
@@ -27,9 +26,8 @@ block0(v0: i16, v1: i16):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movl $0, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; movl $0, %edx
|
||||
; div %ax, %dx, %si, %ax, %dx
|
||||
; movq %rdx, %rax
|
||||
; movq %rbp, %rsp
|
||||
@@ -45,9 +43,8 @@ block0(v0: i32, v1: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movl $0, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; movl $0, %edx
|
||||
; div %eax, %edx, %esi, %eax, %edx
|
||||
; movq %rdx, %rax
|
||||
; movq %rbp, %rsp
|
||||
@@ -63,9 +60,8 @@ block0(v0: i64, v1: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movl $0, %r10d
|
||||
; movq %rdi, %rax
|
||||
; movq %r10, %rdx
|
||||
; movl $0, %edx
|
||||
; div %rax, %rdx, %rsi, %rax, %rdx
|
||||
; movq %rdx, %rax
|
||||
; movq %rbp, %rsp
|
||||
|
||||
@@ -16,22 +16,24 @@ block0(v0: i128, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movzbq %dl, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r10
|
||||
; shrq %cl, %r10, %r10
|
||||
; movq %rsi, %r8
|
||||
; shrq %cl, %r8, %r8
|
||||
; movq %rcx, %rax
|
||||
; movq %rcx, %rdi
|
||||
; movl $64, %ecx
|
||||
; movq %rax, %r9
|
||||
; movq %rdi, %r9
|
||||
; subq %rcx, %r9, %rcx
|
||||
; shlq %cl, %rsi, %rsi
|
||||
; movq %rsi, %rdi
|
||||
; shlq %cl, %rdi, %rdi
|
||||
; xorq %r11, %r11, %r11
|
||||
; testq $127, %r9
|
||||
; cmovzq %r11, %rsi, %rsi
|
||||
; orq %rsi, %rdi, %rsi
|
||||
; cmovzq %r11, %rdi, %rdi
|
||||
; orq %rdi, %r10, %rdi
|
||||
; xorq %rdx, %rdx, %rdx
|
||||
; testq $64, %r9
|
||||
; movq %r8, %rax
|
||||
; cmovzq %rsi, %rax, %rax
|
||||
; cmovzq %rdi, %rax, %rax
|
||||
; cmovzq %r8, %rdx, %rdx
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -47,7 +49,8 @@ block0(v0: i128, v1: i64):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r9
|
||||
; shrq %cl, %r9, %r9
|
||||
; movq %rsi, %r11
|
||||
; shrq %cl, %r11, %r11
|
||||
; movl $64, %ecx
|
||||
@@ -57,7 +60,7 @@ block0(v0: i128, v1: i64):
|
||||
; xorq %r10, %r10, %r10
|
||||
; testq $127, %r8
|
||||
; cmovzq %r10, %rsi, %rsi
|
||||
; orq %rsi, %rdi, %rsi
|
||||
; orq %rsi, %r9, %rsi
|
||||
; xorq %rdx, %rdx, %rdx
|
||||
; testq $64, %r8
|
||||
; movq %r11, %rax
|
||||
@@ -77,7 +80,8 @@ block0(v0: i128, v1: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r9
|
||||
; shrq %cl, %r9, %r9
|
||||
; movq %rsi, %r11
|
||||
; shrq %cl, %r11, %r11
|
||||
; movl $64, %ecx
|
||||
@@ -87,7 +91,7 @@ block0(v0: i128, v1: i32):
|
||||
; xorq %r10, %r10, %r10
|
||||
; testq $127, %r8
|
||||
; cmovzq %r10, %rsi, %rsi
|
||||
; orq %rsi, %rdi, %rsi
|
||||
; orq %rsi, %r9, %rsi
|
||||
; xorq %rdx, %rdx, %rdx
|
||||
; testq $64, %r8
|
||||
; movq %r11, %rax
|
||||
@@ -107,7 +111,8 @@ block0(v0: i128, v1: i16):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r9
|
||||
; shrq %cl, %r9, %r9
|
||||
; movq %rsi, %r11
|
||||
; shrq %cl, %r11, %r11
|
||||
; movl $64, %ecx
|
||||
@@ -117,7 +122,7 @@ block0(v0: i128, v1: i16):
|
||||
; xorq %r10, %r10, %r10
|
||||
; testq $127, %r8
|
||||
; cmovzq %r10, %rsi, %rsi
|
||||
; orq %rsi, %rdi, %rsi
|
||||
; orq %rsi, %r9, %rsi
|
||||
; xorq %rdx, %rdx, %rdx
|
||||
; testq $64, %r8
|
||||
; movq %r11, %rax
|
||||
@@ -137,7 +142,8 @@ block0(v0: i128, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rdx, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %r9
|
||||
; shrq %cl, %r9, %r9
|
||||
; movq %rsi, %r11
|
||||
; shrq %cl, %r11, %r11
|
||||
; movl $64, %ecx
|
||||
@@ -147,7 +153,7 @@ block0(v0: i128, v1: i8):
|
||||
; xorq %r10, %r10, %r10
|
||||
; testq $127, %r8
|
||||
; cmovzq %r10, %rsi, %rsi
|
||||
; orq %rsi, %rdi, %rsi
|
||||
; orq %rsi, %r9, %rsi
|
||||
; xorq %rdx, %rdx, %rdx
|
||||
; testq $64, %r8
|
||||
; movq %r11, %rax
|
||||
@@ -167,8 +173,8 @@ block0(v0: i64, v1: i128):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shrq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -184,8 +190,8 @@ block0(v0: i32, v1: i64, v2: i64):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shrl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -201,8 +207,8 @@ block0(v0: i16, v1: i128):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shrw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shrw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -218,8 +224,8 @@ block0(v0: i8, v1: i128):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shrb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shrb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -234,8 +240,8 @@ block0(v0: i64, v1: i64):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shrq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -250,8 +256,8 @@ block0(v0: i64, v1: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shrq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -266,8 +272,8 @@ block0(v0: i64, v1: i16):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shrq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -282,8 +288,8 @@ block0(v0: i64, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrq %cl, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shrq %cl, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -298,8 +304,8 @@ block0(v0: i32, v1: i64):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shrl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -314,8 +320,8 @@ block0(v0: i32, v1: i32):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shrl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -330,8 +336,8 @@ block0(v0: i32, v1: i16):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shrl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -346,8 +352,8 @@ block0(v0: i32, v1: i8):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; shrl %cl, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shrl %cl, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -363,8 +369,8 @@ block0(v0: i16, v1: i64):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shrw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shrw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -380,8 +386,8 @@ block0(v0: i16, v1: i32):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shrw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shrw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -397,8 +403,8 @@ block0(v0: i16, v1: i16):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shrw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shrw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -414,8 +420,8 @@ block0(v0: i16, v1: i8):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $15, %rcx
|
||||
; shrw %cl, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shrw %cl, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -431,8 +437,8 @@ block0(v0: i8, v1: i64):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shrb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shrb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -448,8 +454,8 @@ block0(v0: i8, v1: i32):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shrb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shrb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -465,8 +471,8 @@ block0(v0: i8, v1: i16):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shrb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shrb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -482,14 +488,12 @@ block0(v0: i8, v1: i8):
|
||||
; block0:
|
||||
; movq %rsi, %rcx
|
||||
; andq %rcx, $7, %rcx
|
||||
; shrb %cl, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shrb %cl, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
|
||||
|
||||
function %ushr_i64_const(i64) -> i64 {
|
||||
block0(v0: i64):
|
||||
v1 = ushr_imm.i64 v0, 65
|
||||
@@ -499,8 +503,8 @@ block0(v0: i64):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shrq $1, %rdi, %rdi
|
||||
; movq %rdi, %rax
|
||||
; shrq $1, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -514,8 +518,8 @@ block0(v0: i32):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shrl $1, %edi, %edi
|
||||
; movq %rdi, %rax
|
||||
; shrl $1, %eax, %eax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -529,8 +533,8 @@ block0(v0: i16):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shrw $1, %di, %di
|
||||
; movq %rdi, %rax
|
||||
; shrw $1, %ax, %ax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -544,8 +548,8 @@ block0(v0: i8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; shrb $1, %dil, %dil
|
||||
; movq %rdi, %rax
|
||||
; shrb $1, %al, %al
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
@@ -13,10 +13,11 @@ block0(v0: f64x2):
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; xorpd %xmm3, %xmm3, %xmm3
|
||||
; maxpd %xmm0, %xmm3, %xmm0
|
||||
; movupd const(0), %xmm7
|
||||
; minpd %xmm0, %xmm7, %xmm0
|
||||
; roundpd $3, %xmm0, %xmm0
|
||||
; movdqa %xmm0, %xmm7
|
||||
; maxpd %xmm7, %xmm3, %xmm7
|
||||
; movupd const(0), %xmm8
|
||||
; minpd %xmm7, %xmm8, %xmm7
|
||||
; roundpd $3, %xmm7, %xmm0
|
||||
; movupd const(1), %xmm13
|
||||
; addpd %xmm0, %xmm13, %xmm0
|
||||
; shufps $136, %xmm0, %xmm3, %xmm0
|
||||
|
||||
@@ -38,8 +38,9 @@ block0(v0: i16x8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; packsswb %xmm0, %xmm0, %xmm0
|
||||
; pmovmskb %xmm0, %eax
|
||||
; movdqa %xmm0, %xmm3
|
||||
; packsswb %xmm3, %xmm0, %xmm3
|
||||
; pmovmskb %xmm3, %eax
|
||||
; shrq $8, %rax, %rax
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
|
||||
@@ -52,8 +52,9 @@ block0(v0: i8x16):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; palignr $8, %xmm0, %xmm0, %xmm0
|
||||
; pmovsxbw %xmm0, %xmm0
|
||||
; movdqa %xmm0, %xmm3
|
||||
; palignr $8, %xmm3, %xmm0, %xmm3
|
||||
; pmovsxbw %xmm3, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -67,8 +68,9 @@ block0(v0: i16x8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; palignr $8, %xmm0, %xmm0, %xmm0
|
||||
; pmovsxwd %xmm0, %xmm0
|
||||
; movdqa %xmm0, %xmm3
|
||||
; palignr $8, %xmm3, %xmm0, %xmm3
|
||||
; pmovsxwd %xmm3, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -139,8 +141,9 @@ block0(v0: i8x16):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; palignr $8, %xmm0, %xmm0, %xmm0
|
||||
; pmovzxbw %xmm0, %xmm0
|
||||
; movdqa %xmm0, %xmm3
|
||||
; palignr $8, %xmm3, %xmm0, %xmm3
|
||||
; pmovzxbw %xmm3, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
@@ -154,8 +157,9 @@ block0(v0: i16x8):
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; palignr $8, %xmm0, %xmm0, %xmm0
|
||||
; pmovzxwd %xmm0, %xmm0
|
||||
; movdqa %xmm0, %xmm3
|
||||
; palignr $8, %xmm3, %xmm0, %xmm3
|
||||
; pmovzxwd %xmm3, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
Reference in New Issue
Block a user