Pull in regalloc2 v0.2.0, with no more separate scratch registers. (#4182)
RA2 recently removed the need for a dedicated scratch register for cyclic moves (bytecodealliance/regalloc2#51). This has moderate positive performance impact on function bodies that were register-constrained, as it means that one more register is available. In Sightglass, I measured +5-8% on `blake3-scalar`, at least among current benchmarks.
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -2351,9 +2351,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "regalloc2"
|
name = "regalloc2"
|
||||||
version = "0.1.3"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "904196c12c9f55d3aea578613219f493ced8e05b3d0c6a42d11cb4142d8b4879"
|
checksum = "99e5ed49768d554b34463e467c27af849a7335c051d3ac402c4755f8366c6e0b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"fxhash",
|
"fxhash",
|
||||||
"log",
|
"log",
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ serde = { version = "1.0.94", features = ["derive"], optional = true }
|
|||||||
bincode = { version = "1.2.1", optional = true }
|
bincode = { version = "1.2.1", optional = true }
|
||||||
gimli = { version = "0.26.0", default-features = false, features = ["write"], optional = true }
|
gimli = { version = "0.26.0", default-features = false, features = ["write"], optional = true }
|
||||||
smallvec = { version = "1.6.1" }
|
smallvec = { version = "1.6.1" }
|
||||||
regalloc2 = { version = "0.1.3", features = ["checker"] }
|
regalloc2 = { version = "0.2.0", features = ["checker"] }
|
||||||
souper-ir = { version = "2.1.0", optional = true }
|
souper-ir = { version = "2.1.0", optional = true }
|
||||||
# It is a goal of the cranelift-codegen crate to have minimal external dependencies.
|
# It is a goal of the cranelift-codegen crate to have minimal external dependencies.
|
||||||
# Please don't add any unless they are essential to the task of creating binary
|
# Please don't add any unless they are essential to the task of creating binary
|
||||||
|
|||||||
@@ -209,24 +209,9 @@ pub fn create_reg_env(flags: &settings::Flags) -> MachineEnv {
|
|||||||
preg(vreg(28)),
|
preg(vreg(28)),
|
||||||
preg(vreg(29)),
|
preg(vreg(29)),
|
||||||
preg(vreg(30)),
|
preg(vreg(30)),
|
||||||
// v31 is the scratch reg, to allow for parallel moves.
|
preg(vreg(31)),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
scratch_by_class: [
|
|
||||||
// We use tmp2 (x17) as the regalloc scratch register,
|
|
||||||
// used to resolve cyclic parallel moves. This is valid
|
|
||||||
// because tmp2 is never live between regalloc-visible
|
|
||||||
// instructions, only within them (i.e. in expansion into
|
|
||||||
// multiple machine instructions when that
|
|
||||||
// occurs). spilltmp is used for moves to/from spillslots,
|
|
||||||
// but tmp2 never is, so it is available for this
|
|
||||||
// purpose. (Its only other use is in prologue stack
|
|
||||||
// checks, and the prologue is prepended after regalloc
|
|
||||||
// runs.)
|
|
||||||
preg(tmp2_reg()),
|
|
||||||
// We use v31 for Float/Vec-class parallel moves.
|
|
||||||
preg(vreg(31)),
|
|
||||||
],
|
|
||||||
fixed_stack_slots: vec![],
|
fixed_stack_slots: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ pub fn create_machine_env(_flags: &settings::Flags) -> MachineEnv {
|
|||||||
preg(gpr(10)),
|
preg(gpr(10)),
|
||||||
preg(gpr(11)),
|
preg(gpr(11)),
|
||||||
preg(gpr(12)),
|
preg(gpr(12)),
|
||||||
// no r13; it is our scratch reg.
|
preg(gpr(13)),
|
||||||
preg(gpr(14)),
|
preg(gpr(14)),
|
||||||
// no r15; it is the stack pointer.
|
// no r15; it is the stack pointer.
|
||||||
],
|
],
|
||||||
@@ -114,10 +114,9 @@ pub fn create_machine_env(_flags: &settings::Flags) -> MachineEnv {
|
|||||||
preg(fpr(12)),
|
preg(fpr(12)),
|
||||||
preg(fpr(13)),
|
preg(fpr(13)),
|
||||||
preg(fpr(14)),
|
preg(fpr(14)),
|
||||||
// no f15; it is our scratch reg.
|
preg(fpr(15)),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
scratch_by_class: [preg(gpr(13)), preg(fpr(15))],
|
|
||||||
fixed_stack_slots: vec![],
|
fixed_stack_slots: vec![],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ pub(crate) fn create_reg_env_systemv(flags: &settings::Flags) -> MachineEnv {
|
|||||||
preg(rdx()),
|
preg(rdx()),
|
||||||
preg(r8()),
|
preg(r8()),
|
||||||
preg(r9()),
|
preg(r9()),
|
||||||
// N.B.: not r10; it is our scratch reg.
|
preg(r10()),
|
||||||
preg(r11()),
|
preg(r11()),
|
||||||
],
|
],
|
||||||
// Preferred XMMs: all of them.
|
// Preferred XMMs: all of them.
|
||||||
@@ -186,7 +186,7 @@ pub(crate) fn create_reg_env_systemv(flags: &settings::Flags) -> MachineEnv {
|
|||||||
preg(xmm12()),
|
preg(xmm12()),
|
||||||
preg(xmm13()),
|
preg(xmm13()),
|
||||||
preg(xmm14()),
|
preg(xmm14()),
|
||||||
// N.B.: not xmm15; it is our scratch reg.
|
preg(xmm15()),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
non_preferred_regs_by_class: [
|
non_preferred_regs_by_class: [
|
||||||
@@ -195,7 +195,6 @@ pub(crate) fn create_reg_env_systemv(flags: &settings::Flags) -> MachineEnv {
|
|||||||
// Non-preferred XMMs: none.
|
// Non-preferred XMMs: none.
|
||||||
vec![],
|
vec![],
|
||||||
],
|
],
|
||||||
scratch_by_class: [preg(r10()), preg(xmm15())],
|
|
||||||
fixed_stack_slots: vec![],
|
fixed_stack_slots: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -425,11 +425,11 @@ mod test {
|
|||||||
// 00000004 41B900000000 mov r9d,0x0
|
// 00000004 41B900000000 mov r9d,0x0
|
||||||
// 0000000A 83FF02 cmp edi,byte +0x2
|
// 0000000A 83FF02 cmp edi,byte +0x2
|
||||||
// 0000000D 0F8320000000 jnc near 0x33
|
// 0000000D 0F8320000000 jnc near 0x33
|
||||||
// 00000013 8BC7 mov eax,edi
|
// 00000013 8BF7 mov esi,edi
|
||||||
// 00000015 490F43C1 cmovnc rax,r9
|
// 00000015 490F43F1 cmovnc rsi,r9
|
||||||
// 00000019 4C8D0D0B000000 lea r9,[rel 0x2b]
|
// 00000019 4C8D0D0B000000 lea r9,[rel 0x2b]
|
||||||
// 00000020 4963448100 movsxd rax,dword [r9+rax*4+0x0]
|
// 00000020 496374B100 movsxd rsi,dword [r9+rsi*4+0x0]
|
||||||
// 00000025 4901C1 add r9,rax
|
// 00000025 4901F1 add r9,rsi
|
||||||
// 00000028 41FFE1 jmp r9
|
// 00000028 41FFE1 jmp r9
|
||||||
// 0000002B 1200 adc al,[rax]
|
// 0000002B 1200 adc al,[rax]
|
||||||
// 0000002D 0000 add [rax],al
|
// 0000002D 0000 add [rax],al
|
||||||
@@ -449,8 +449,8 @@ mod test {
|
|||||||
// 00000050 C3 ret
|
// 00000050 C3 ret
|
||||||
|
|
||||||
let golden = vec![
|
let golden = vec![
|
||||||
85, 72, 137, 229, 65, 185, 0, 0, 0, 0, 131, 255, 2, 15, 131, 32, 0, 0, 0, 139, 199, 73,
|
85, 72, 137, 229, 65, 185, 0, 0, 0, 0, 131, 255, 2, 15, 131, 32, 0, 0, 0, 139, 247, 73,
|
||||||
15, 67, 193, 76, 141, 13, 11, 0, 0, 0, 73, 99, 68, 129, 0, 73, 1, 193, 65, 255, 225,
|
15, 67, 241, 76, 141, 13, 11, 0, 0, 0, 73, 99, 116, 177, 0, 73, 1, 241, 65, 255, 225,
|
||||||
18, 0, 0, 0, 28, 0, 0, 0, 184, 3, 0, 0, 0, 72, 137, 236, 93, 195, 184, 1, 0, 0, 0, 72,
|
18, 0, 0, 0, 28, 0, 0, 0, 184, 3, 0, 0, 0, 72, 137, 236, 93, 195, 184, 1, 0, 0, 0, 72,
|
||||||
137, 236, 93, 195, 184, 2, 0, 0, 0, 72, 137, 236, 93, 195,
|
137, 236, 93, 195, 184, 2, 0, 0, 0, 72, 137, 236, 93, 195,
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -81,12 +81,10 @@ block0(v0: f64):
|
|||||||
; stp d12, d13, [sp, #-16]!
|
; stp d12, d13, [sp, #-16]!
|
||||||
; stp d10, d11, [sp, #-16]!
|
; stp d10, d11, [sp, #-16]!
|
||||||
; stp d8, d9, [sp, #-16]!
|
; stp d8, d9, [sp, #-16]!
|
||||||
; sub sp, sp, #16
|
|
||||||
; block0:
|
; block0:
|
||||||
|
; fadd d2, d0, d0
|
||||||
; fadd d4, d0, d0
|
; fadd d4, d0, d0
|
||||||
; fadd d6, d0, d0
|
; fadd d6, d0, d0
|
||||||
; str q6, [sp]
|
|
||||||
; fadd d6, d0, d0
|
|
||||||
; fadd d8, d0, d0
|
; fadd d8, d0, d0
|
||||||
; fadd d10, d0, d0
|
; fadd d10, d0, d0
|
||||||
; fadd d12, d0, d0
|
; fadd d12, d0, d0
|
||||||
@@ -98,56 +96,54 @@ block0(v0: f64):
|
|||||||
; fadd d9, d0, d0
|
; fadd d9, d0, d0
|
||||||
; fadd d11, d0, d0
|
; fadd d11, d0, d0
|
||||||
; fadd d13, d0, d0
|
; fadd d13, d0, d0
|
||||||
; fadd d16, d0, d0
|
; fadd d30, d0, d0
|
||||||
; fadd d15, d0, d0
|
; fadd d15, d0, d0
|
||||||
|
; fadd d18, d0, d0
|
||||||
; fadd d20, d0, d0
|
; fadd d20, d0, d0
|
||||||
; fadd d22, d0, d0
|
; fadd d22, d0, d0
|
||||||
; fadd d24, d0, d0
|
; fadd d24, d0, d0
|
||||||
; fadd d26, d0, d0
|
; fadd d26, d0, d0
|
||||||
; fadd d28, d0, d0
|
; fadd d28, d0, d0
|
||||||
; fadd d30, d0, d0
|
; fadd d31, d0, d0
|
||||||
; fadd d17, d0, d0
|
; fadd d16, d0, d0
|
||||||
; fadd d19, d0, d0
|
; fadd d19, d0, d0
|
||||||
; fadd d21, d0, d0
|
; fadd d21, d0, d0
|
||||||
; fadd d23, d0, d0
|
; fadd d23, d0, d0
|
||||||
; fadd d25, d0, d0
|
; fadd d25, d0, d0
|
||||||
; fadd d27, d0, d0
|
; fadd d27, d0, d0
|
||||||
; fadd d29, d0, d0
|
; fadd d29, d0, d0
|
||||||
; fadd d18, d0, d0
|
; fadd d17, d0, d0
|
||||||
; fadd d2, d0, d0
|
; fadd d0, d0, d2
|
||||||
; fadd d0, d0, d4
|
; fadd d2, d4, d6
|
||||||
; ldr q4, [sp]
|
|
||||||
; fadd d6, d4, d6
|
|
||||||
; fadd d4, d8, d10
|
; fadd d4, d8, d10
|
||||||
; fadd d10, d12, d14
|
; fadd d6, d12, d14
|
||||||
; fadd d8, d1, d3
|
; fadd d8, d1, d3
|
||||||
; fadd d14, d5, d7
|
; fadd d10, d5, d7
|
||||||
; fadd d12, d9, d11
|
; fadd d12, d9, d11
|
||||||
; fadd d3, d13, d16
|
; fadd d14, d13, d30
|
||||||
; fadd d1, d15, d20
|
; fadd d1, d15, d18
|
||||||
; fadd d7, d22, d24
|
; fadd d3, d20, d22
|
||||||
; fadd d5, d26, d28
|
; fadd d5, d24, d26
|
||||||
; fadd d11, d30, d17
|
; fadd d7, d28, d31
|
||||||
; fadd d9, d19, d21
|
; fadd d9, d16, d19
|
||||||
; fadd d15, d23, d25
|
; fadd d11, d21, d23
|
||||||
; fadd d13, d27, d29
|
; fadd d13, d25, d27
|
||||||
; fadd d2, d18, d2
|
; fadd d15, d29, d17
|
||||||
; fadd d0, d0, d6
|
; fadd d0, d0, d2
|
||||||
; fadd d6, d4, d10
|
; fadd d2, d4, d6
|
||||||
; fadd d4, d8, d14
|
; fadd d4, d8, d10
|
||||||
; fadd d10, d12, d3
|
; fadd d6, d12, d14
|
||||||
; fadd d8, d1, d7
|
; fadd d8, d1, d3
|
||||||
; fadd d11, d5, d11
|
; fadd d10, d5, d7
|
||||||
; fadd d12, d9, d15
|
; fadd d12, d9, d11
|
||||||
; fadd d14, d13, d2
|
; fadd d14, d13, d15
|
||||||
; fadd d0, d0, d6
|
; fadd d0, d0, d2
|
||||||
; fadd d2, d4, d10
|
; fadd d2, d4, d6
|
||||||
; fadd d4, d8, d11
|
; fadd d4, d8, d10
|
||||||
; fadd d6, d12, d14
|
; fadd d6, d12, d14
|
||||||
; fadd d8, d0, d2
|
; fadd d8, d0, d2
|
||||||
; fadd d10, d4, d6
|
; fadd d10, d4, d6
|
||||||
; fadd d0, d8, d10
|
; fadd d0, d8, d10
|
||||||
; add sp, sp, #16
|
|
||||||
; ldp d8, d9, [sp], #16
|
; ldp d8, d9, [sp], #16
|
||||||
; ldp d10, d11, [sp], #16
|
; ldp d10, d11, [sp], #16
|
||||||
; ldp d12, d13, [sp], #16
|
; ldp d12, d13, [sp], #16
|
||||||
|
|||||||
@@ -37,19 +37,19 @@ block0(v0: i64, v1: i16, v2: i16, v3: i64):
|
|||||||
return v4
|
return v4
|
||||||
}
|
}
|
||||||
|
|
||||||
; stmg %r6, %r15, 48(%r15)
|
; stmg %r13, %r15, 104(%r15)
|
||||||
; block0:
|
; block0:
|
||||||
; lgr %r6, %r3
|
; lgr %r13, %r3
|
||||||
; sllk %r3, %r5, 3
|
; sllk %r3, %r5, 3
|
||||||
; nill %r5, 65532
|
; nill %r5, 65532
|
||||||
; lgr %r2, %r6
|
; lgr %r2, %r13
|
||||||
; lrvr %r2, %r2
|
; lrvr %r2, %r2
|
||||||
; lrvr %r4, %r4
|
; lrvr %r4, %r4
|
||||||
; l %r0, 0(%r5)
|
; l %r0, 0(%r5)
|
||||||
; 0: rll %r1, %r0, 16(%r3) ; rxsbg %r1, %r2, 176, 64, 48 ; jglh 1f ; risbgn %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r3) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
; 0: rll %r1, %r0, 16(%r3) ; rxsbg %r1, %r2, 176, 64, 48 ; jglh 1f ; risbgn %r1, %r4, 48, 64, 48 ; rll %r1, %r1, 16(%r3) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||||
; rll %r2, %r0, 0(%r3)
|
; rll %r2, %r0, 0(%r3)
|
||||||
; lrvr %r2, %r2
|
; lrvr %r2, %r2
|
||||||
; lmg %r6, %r15, 48(%r15)
|
; lmg %r13, %r15, 104(%r15)
|
||||||
; br %r14
|
; br %r14
|
||||||
|
|
||||||
function %atomic_cas_i8(i64, i8, i8, i64) -> i8 {
|
function %atomic_cas_i8(i64, i8, i8, i64) -> i8 {
|
||||||
@@ -58,14 +58,14 @@ block0(v0: i64, v1: i8, v2: i8, v3: i64):
|
|||||||
return v4
|
return v4
|
||||||
}
|
}
|
||||||
|
|
||||||
; stmg %r12, %r15, 96(%r15)
|
; stmg %r11, %r15, 88(%r15)
|
||||||
; block0:
|
; block0:
|
||||||
; sllk %r2, %r5, 3
|
; sllk %r2, %r5, 3
|
||||||
; nill %r5, 65532
|
; nill %r5, 65532
|
||||||
; lcr %r12, %r2
|
; lcr %r11, %r2
|
||||||
; l %r0, 0(%r5)
|
; l %r0, 0(%r5)
|
||||||
; 0: rll %r1, %r0, 0(%r2) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r12) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
; 0: rll %r1, %r0, 0(%r2) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r11) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||||
; rll %r2, %r0, 8(%r2)
|
; rll %r2, %r0, 8(%r2)
|
||||||
; lmg %r12, %r15, 96(%r15)
|
; lmg %r11, %r15, 88(%r15)
|
||||||
; br %r14
|
; br %r14
|
||||||
|
|
||||||
|
|||||||
@@ -45,14 +45,14 @@ block0(v0: i64, v1: i8, v2: i8, v3: i64):
|
|||||||
return v4
|
return v4
|
||||||
}
|
}
|
||||||
|
|
||||||
; stmg %r12, %r15, 96(%r15)
|
; stmg %r11, %r15, 88(%r15)
|
||||||
; block0:
|
; block0:
|
||||||
; sllk %r2, %r5, 3
|
; sllk %r2, %r5, 3
|
||||||
; nill %r5, 65532
|
; nill %r5, 65532
|
||||||
; lcr %r12, %r2
|
; lcr %r11, %r2
|
||||||
; l %r0, 0(%r5)
|
; l %r0, 0(%r5)
|
||||||
; 0: rll %r1, %r0, 0(%r2) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r12) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
; 0: rll %r1, %r0, 0(%r2) ; rxsbg %r1, %r3, 160, 40, 24 ; jglh 1f ; risbgn %r1, %r4, 32, 40, 24 ; rll %r1, %r1, 0(%r11) ; cs %r0, %r1, 0(%r5) ; jglh 0b ; 1:
|
||||||
; rll %r2, %r0, 8(%r2)
|
; rll %r2, %r0, 8(%r2)
|
||||||
; lmg %r12, %r15, 96(%r15)
|
; lmg %r11, %r15, 88(%r15)
|
||||||
; br %r14
|
; br %r14
|
||||||
|
|
||||||
|
|||||||
@@ -29,18 +29,19 @@ block1:
|
|||||||
return v0, v1, v2, v3, v4, v5
|
return v0, v1, v2, v3, v4, v5
|
||||||
}
|
}
|
||||||
|
|
||||||
; stmg %r6, %r15, 48(%r15)
|
; stmg %r8, %r15, 64(%r15)
|
||||||
; block0:
|
; block0:
|
||||||
; lgr %r12, %r2
|
; lgr %r12, %r2
|
||||||
; lghi %r2, 1
|
; lghi %r2, 1
|
||||||
; lghi %r3, 2
|
; lghi %r3, 2
|
||||||
; lghi %r4, 3
|
; lghi %r4, 3
|
||||||
; lghi %r5, 4
|
; lghi %r5, 4
|
||||||
; lghi %r10, 5
|
; lghi %r8, 5
|
||||||
; lghi %r6, 6
|
; lghi %r11, 6
|
||||||
; stg %r10, 0(%r12)
|
; lgr %r9, %r12
|
||||||
; stg %r6, 8(%r12)
|
; stg %r8, 0(%r9)
|
||||||
; lmg %r6, %r15, 48(%r15)
|
; stg %r11, 8(%r9)
|
||||||
|
; lmg %r8, %r15, 64(%r15)
|
||||||
; br %r14
|
; br %r14
|
||||||
|
|
||||||
function %f3() -> f64, f64, f64, f64 {
|
function %f3() -> f64, f64, f64, f64 {
|
||||||
|
|||||||
@@ -36,20 +36,20 @@ block0(v0: i32, v1: f32):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdi, %rax
|
; movq %rdi, %r11
|
||||||
; movdqa %xmm0, %xmm6
|
; movdqa %xmm0, %xmm6
|
||||||
; subq %rsp, $32, %rsp
|
; subq %rsp, $32, %rsp
|
||||||
; virtual_sp_offset_adjust 32
|
; virtual_sp_offset_adjust 32
|
||||||
; movq %rax, %rcx
|
; movq %r11, %rcx
|
||||||
; movdqa %xmm6, %xmm1
|
; movdqa %xmm6, %xmm1
|
||||||
; movq %rax, %rdi
|
; movq %r11, %rdi
|
||||||
; movdqa %xmm1, %xmm6
|
; movdqa %xmm1, %xmm6
|
||||||
; call *%rdi
|
; call *%rdi
|
||||||
; addq %rsp, $32, %rsp
|
; addq %rsp, $32, %rsp
|
||||||
; virtual_sp_offset_adjust -32
|
; virtual_sp_offset_adjust -32
|
||||||
; movq %rdi, %rax
|
; movq %rdi, %r11
|
||||||
; movdqa %xmm6, %xmm0
|
; movdqa %xmm6, %xmm0
|
||||||
; call *%rax
|
; call *%r11
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
@@ -129,20 +129,19 @@ block0(
|
|||||||
|
|
||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; subq %rsp, $96, %rsp
|
; subq %rsp, $64, %rsp
|
||||||
; movq %rbx, 48(%rsp)
|
; movq %rbx, 32(%rsp)
|
||||||
; movq %r12, 56(%rsp)
|
; movq %r13, 40(%rsp)
|
||||||
; movq %r13, 64(%rsp)
|
; movq %r14, 48(%rsp)
|
||||||
; movq %r14, 72(%rsp)
|
; movq %r15, 56(%rsp)
|
||||||
; movq %r15, 80(%rsp)
|
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rsi, %rbx
|
; movq %rsi, %rbx
|
||||||
; movq %rdx, %r14
|
; movq %rdx, %r14
|
||||||
; movq %rcx, %r12
|
; movq %rcx, %rax
|
||||||
; movq %r8, %r13
|
; movq %r8, %r13
|
||||||
; movq %r9, %r15
|
; movq %r9, %r15
|
||||||
; movq 16(%rbp), %rax
|
; movq 16(%rbp), %r11
|
||||||
; movq 24(%rbp), %r11
|
; movq 24(%rbp), %r10
|
||||||
; movss 32(%rbp), %xmm9
|
; movss 32(%rbp), %xmm9
|
||||||
; movsd 40(%rbp), %xmm8
|
; movsd 40(%rbp), %xmm8
|
||||||
; subq %rsp, $144, %rsp
|
; subq %rsp, $144, %rsp
|
||||||
@@ -150,7 +149,7 @@ block0(
|
|||||||
; movq %rdi, %rcx
|
; movq %rdi, %rcx
|
||||||
; movq %rbx, %rdx
|
; movq %rbx, %rdx
|
||||||
; movq %r14, %r8
|
; movq %r14, %r8
|
||||||
; movq %r12, %r9
|
; movq %rax, %r9
|
||||||
; movq %r13, %rsi
|
; movq %r13, %rsi
|
||||||
; movq %rsi, 32(%rsp)
|
; movq %rsi, 32(%rsp)
|
||||||
; movq %r15, %rsi
|
; movq %r15, %rsi
|
||||||
@@ -163,19 +162,18 @@ block0(
|
|||||||
; movsd %xmm5, 88(%rsp)
|
; movsd %xmm5, 88(%rsp)
|
||||||
; movsd %xmm6, 96(%rsp)
|
; movsd %xmm6, 96(%rsp)
|
||||||
; movsd %xmm7, 104(%rsp)
|
; movsd %xmm7, 104(%rsp)
|
||||||
; movq %rax, 112(%rsp)
|
; movq %r11, 112(%rsp)
|
||||||
; movl %r11d, 120(%rsp)
|
; movl %r10d, 120(%rsp)
|
||||||
; movss %xmm9, 128(%rsp)
|
; movss %xmm9, 128(%rsp)
|
||||||
; movsd %xmm8, 136(%rsp)
|
; movsd %xmm8, 136(%rsp)
|
||||||
; call *%rdi
|
; call *%rdi
|
||||||
; addq %rsp, $144, %rsp
|
; addq %rsp, $144, %rsp
|
||||||
; virtual_sp_offset_adjust -144
|
; virtual_sp_offset_adjust -144
|
||||||
; movq 48(%rsp), %rbx
|
; movq 32(%rsp), %rbx
|
||||||
; movq 56(%rsp), %r12
|
; movq 40(%rsp), %r13
|
||||||
; movq 64(%rsp), %r13
|
; movq 48(%rsp), %r14
|
||||||
; movq 72(%rsp), %r14
|
; movq 56(%rsp), %r15
|
||||||
; movq 80(%rsp), %r15
|
; addq %rsp, $64, %rsp
|
||||||
; addq %rsp, $96, %rsp
|
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
@@ -194,26 +192,22 @@ block0(v0: i64, v1:i64, v2:i64, v3:i64, v4:i64):
|
|||||||
|
|
||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; subq %rsp, $16, %rsp
|
|
||||||
; movq %rbx, 0(%rsp)
|
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rsi, %r11
|
; movq %rsi, %r9
|
||||||
; movq %rdx, %r9
|
; movq %rdx, %rax
|
||||||
; movq %rcx, %rax
|
; movq %rcx, %r11
|
||||||
; movq %r8, %rbx
|
; movq %r8, %r10
|
||||||
; subq %rsp, $48, %rsp
|
; subq %rsp, $48, %rsp
|
||||||
; virtual_sp_offset_adjust 48
|
; virtual_sp_offset_adjust 48
|
||||||
; movq %rdi, %rcx
|
; movq %rdi, %rcx
|
||||||
; movq %r11, %rdx
|
; movq %r9, %rdx
|
||||||
; movq %r9, %r8
|
; movq %rax, %r8
|
||||||
; movq %rax, %r9
|
; movq %r11, %r9
|
||||||
; movq %rbx, %r11
|
; movq %r10, %rsi
|
||||||
; movq %r11, 32(%rsp)
|
; movq %rsi, 32(%rsp)
|
||||||
; call *%rdi
|
; call *%rdi
|
||||||
; addq %rsp, $48, %rsp
|
; addq %rsp, $48, %rsp
|
||||||
; virtual_sp_offset_adjust -48
|
; virtual_sp_offset_adjust -48
|
||||||
; movq 0(%rsp), %rbx
|
|
||||||
; addq %rsp, $16, %rsp
|
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
@@ -229,25 +223,23 @@ block0(v0: i32, v1: f32, v2: i64, v3: f64, v4: i32, v5: i32, v6: i32, v7: f32, v
|
|||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movdqa %xmm0, %xmm6
|
; movdqa %xmm0, %xmm6
|
||||||
; movq %rsi, %rax
|
; movq %rsi, %r10
|
||||||
; movdqa %xmm1, %xmm14
|
; movdqa %xmm1, %xmm14
|
||||||
; movq %rcx, %r11
|
; movq %rcx, %r11
|
||||||
; movq %r8, %r9
|
; movq %r8, %r9
|
||||||
; movdqa %xmm3, %xmm10
|
; movdqa %xmm3, %xmm15
|
||||||
; subq %rsp, $96, %rsp
|
; subq %rsp, $96, %rsp
|
||||||
; virtual_sp_offset_adjust 96
|
; virtual_sp_offset_adjust 96
|
||||||
; movq %rdi, %rcx
|
; movq %rdi, %rcx
|
||||||
; movdqa %xmm6, %xmm1
|
; movdqa %xmm6, %xmm1
|
||||||
; movq %rax, %r8
|
; movq %r10, %r8
|
||||||
; movdqa %xmm14, %xmm3
|
; movdqa %xmm14, %xmm3
|
||||||
; movl %edx, 32(%rsp)
|
; movl %edx, 32(%rsp)
|
||||||
; movq %r11, %rdx
|
; movq %r11, %r10
|
||||||
; movl %edx, 40(%rsp)
|
; movl %r10d, 40(%rsp)
|
||||||
; movq %r9, %rax
|
; movl %r9d, 48(%rsp)
|
||||||
; movl %eax, 48(%rsp)
|
|
||||||
; movss %xmm2, 56(%rsp)
|
; movss %xmm2, 56(%rsp)
|
||||||
; movdqa %xmm10, %xmm2
|
; movsd %xmm15, 64(%rsp)
|
||||||
; movsd %xmm2, 64(%rsp)
|
|
||||||
; movss %xmm4, 72(%rsp)
|
; movss %xmm4, 72(%rsp)
|
||||||
; movsd %xmm5, 80(%rsp)
|
; movsd %xmm5, 80(%rsp)
|
||||||
; call *%rdi
|
; call *%rdi
|
||||||
@@ -350,11 +342,11 @@ block0:
|
|||||||
; movq %rbx, 0(%rsp)
|
; movq %rbx, 0(%rsp)
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdi, %rbx
|
; movq %rdi, %rbx
|
||||||
; movl $1, %esi
|
; movl $1, %r11d
|
||||||
; subq %rsp, $16, %rsp
|
; subq %rsp, $16, %rsp
|
||||||
; virtual_sp_offset_adjust 16
|
; virtual_sp_offset_adjust 16
|
||||||
; lea 0(%rsp), %rdi
|
; lea 0(%rsp), %rdi
|
||||||
; call *%rsi
|
; call *%r11
|
||||||
; movq 0(%rsp), %rcx
|
; movq 0(%rsp), %rcx
|
||||||
; addq %rsp, $16, %rsp
|
; addq %rsp, $16, %rsp
|
||||||
; virtual_sp_offset_adjust -16
|
; virtual_sp_offset_adjust -16
|
||||||
@@ -381,8 +373,8 @@ block0:
|
|||||||
; movq %r12, 0(%rsp)
|
; movq %r12, 0(%rsp)
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdi, %r12
|
; movq %rdi, %r12
|
||||||
; movl $1, %eax
|
; movl $1, %edi
|
||||||
; call *%rax
|
; call *%rdi
|
||||||
; movq %r12, %rdi
|
; movq %r12, %rdi
|
||||||
; movq %rax, 0(%rdi)
|
; movq %rax, 0(%rdi)
|
||||||
; movl %edx, 8(%rdi)
|
; movl %edx, 8(%rdi)
|
||||||
@@ -409,10 +401,10 @@ block0(v0: f32, v1: i64, v2: i32, v3: f32):
|
|||||||
; movq %rdx, %rbx
|
; movq %rdx, %rbx
|
||||||
; movl $1, %eax
|
; movl $1, %eax
|
||||||
; call *%rax
|
; call *%rax
|
||||||
; movq %rbx, %rcx
|
; movq %rbx, %r10
|
||||||
; movq %rax, 0(%rcx)
|
; movq %rax, 0(%r10)
|
||||||
; movl %edx, 8(%rcx)
|
; movl %edx, 8(%r10)
|
||||||
; movss %xmm1, 12(%rcx)
|
; movss %xmm1, 12(%r10)
|
||||||
; movq 0(%rsp), %rbx
|
; movq 0(%rsp), %rbx
|
||||||
; addq %rsp, $16, %rsp
|
; addq %rsp, $16, %rsp
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
|
|||||||
@@ -39,13 +39,13 @@ block0(v0: f64, v1: i64):
|
|||||||
; movsd 0(%rdi), %xmm12
|
; movsd 0(%rdi), %xmm12
|
||||||
; ucomisd %xmm12, %xmm0
|
; ucomisd %xmm12, %xmm0
|
||||||
; setnp %al
|
; setnp %al
|
||||||
; setz %r8b
|
; setz %dl
|
||||||
; andl %eax, %r8d, %eax
|
; andl %eax, %edx, %eax
|
||||||
; andq %rax, $1, %rax
|
; andq %rax, $1, %rax
|
||||||
; ucomisd %xmm0, %xmm12
|
; ucomisd %xmm0, %xmm12
|
||||||
; movdqa %xmm0, %xmm6
|
; movdqa %xmm0, %xmm5
|
||||||
; mov z, sd; j%xmm6 $next; mov%xmm0 %xmm0, %xmm0; $next:
|
; mov z, sd; j%xmm5 $next; mov%xmm0 %xmm0, %xmm0; $next:
|
||||||
; mov np, sd; j%xmm6 $next; mov%xmm0 %xmm0, %xmm0; $next:
|
; mov np, sd; j%xmm5 $next; mov%xmm0 %xmm0, %xmm0; $next:
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ block0(v0: i64, v1: i64, v2: i64, v3: i64, v4: i64, v5: i64):
|
|||||||
; movq %rsp, %rbp
|
; 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: 0 }
|
||||||
; block0:
|
; block0:
|
||||||
; movq 48(%rbp), %r11
|
; movq 48(%rbp), %r10
|
||||||
; movq 56(%rbp), %rax
|
; movq 56(%rbp), %rax
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
@@ -129,7 +129,7 @@ block0(v0: i128, v1: i64, v2: i128, v3: i128):
|
|||||||
; movq %rsp, %rbp
|
; 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: 0 }
|
||||||
; block0:
|
; block0:
|
||||||
; movq 48(%rbp), %r11
|
; movq 48(%rbp), %r10
|
||||||
; movq 56(%rbp), %rax
|
; movq 56(%rbp), %rax
|
||||||
; movq 64(%rbp), %rdx
|
; movq 64(%rbp), %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
@@ -159,8 +159,8 @@ block0(v0: i64):
|
|||||||
; movdqa %xmm2, %xmm3
|
; movdqa %xmm2, %xmm3
|
||||||
; movq %r8, 32(%rsp)
|
; movq %r8, 32(%rsp)
|
||||||
; movq %r8, 40(%rsp)
|
; movq %r8, 40(%rsp)
|
||||||
; load_ext_name %g+0, %r9
|
; load_ext_name %g+0, %r8
|
||||||
; call *%r9
|
; call *%r8
|
||||||
; addq %rsp, $48, %rsp
|
; addq %rsp, $48, %rsp
|
||||||
; virtual_sp_offset_adjust -48
|
; virtual_sp_offset_adjust -48
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
@@ -220,87 +220,86 @@ block0(v0: i64):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 }
|
; unwind PushFrameRegs { offset_upward_to_caller_sp: 16 }
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 144 }
|
; unwind DefineNewFrame { offset_upward_to_caller_sp: 16, offset_downward_to_clobbers: 160 }
|
||||||
; subq %rsp, $240, %rsp
|
; subq %rsp, $224, %rsp
|
||||||
; movdqu %xmm6, 96(%rsp)
|
; movdqu %xmm6, 64(%rsp)
|
||||||
; unwind SaveReg { clobber_offset: 0, reg: p6f }
|
; unwind SaveReg { clobber_offset: 0, reg: p6f }
|
||||||
; movdqu %xmm7, 112(%rsp)
|
; movdqu %xmm7, 80(%rsp)
|
||||||
; unwind SaveReg { clobber_offset: 16, reg: p7f }
|
; unwind SaveReg { clobber_offset: 16, reg: p7f }
|
||||||
; movdqu %xmm8, 128(%rsp)
|
; movdqu %xmm8, 96(%rsp)
|
||||||
; unwind SaveReg { clobber_offset: 32, reg: p8f }
|
; unwind SaveReg { clobber_offset: 32, reg: p8f }
|
||||||
; movdqu %xmm9, 144(%rsp)
|
; movdqu %xmm9, 112(%rsp)
|
||||||
; unwind SaveReg { clobber_offset: 48, reg: p9f }
|
; unwind SaveReg { clobber_offset: 48, reg: p9f }
|
||||||
; movdqu %xmm10, 160(%rsp)
|
; movdqu %xmm10, 128(%rsp)
|
||||||
; unwind SaveReg { clobber_offset: 64, reg: p10f }
|
; unwind SaveReg { clobber_offset: 64, reg: p10f }
|
||||||
; movdqu %xmm11, 176(%rsp)
|
; movdqu %xmm11, 144(%rsp)
|
||||||
; unwind SaveReg { clobber_offset: 80, reg: p11f }
|
; unwind SaveReg { clobber_offset: 80, reg: p11f }
|
||||||
; movdqu %xmm12, 192(%rsp)
|
; movdqu %xmm12, 160(%rsp)
|
||||||
; unwind SaveReg { clobber_offset: 96, reg: p12f }
|
; unwind SaveReg { clobber_offset: 96, reg: p12f }
|
||||||
; movdqu %xmm13, 208(%rsp)
|
; movdqu %xmm13, 176(%rsp)
|
||||||
; unwind SaveReg { clobber_offset: 112, reg: p13f }
|
; unwind SaveReg { clobber_offset: 112, reg: p13f }
|
||||||
; movdqu %xmm14, 224(%rsp)
|
; movdqu %xmm14, 192(%rsp)
|
||||||
; unwind SaveReg { clobber_offset: 128, reg: p14f }
|
; unwind SaveReg { clobber_offset: 128, reg: p14f }
|
||||||
|
; movdqu %xmm15, 208(%rsp)
|
||||||
|
; unwind SaveReg { clobber_offset: 144, reg: p15f }
|
||||||
; block0:
|
; block0:
|
||||||
; movsd 0(%rcx), %xmm0
|
; movsd 0(%rcx), %xmm0
|
||||||
; movsd 8(%rcx), %xmm12
|
; movsd 8(%rcx), %xmm11
|
||||||
; movdqu %xmm12, rsp(80 + virtual offset)
|
; movdqu %xmm11, rsp(48 + virtual offset)
|
||||||
; movsd 16(%rcx), %xmm6
|
; movsd 16(%rcx), %xmm6
|
||||||
; movdqu %xmm6, rsp(0 + virtual offset)
|
; movsd 24(%rcx), %xmm15
|
||||||
; movsd 24(%rcx), %xmm2
|
; movdqu %xmm15, rsp(32 + virtual offset)
|
||||||
; movdqu %xmm2, rsp(64 + virtual offset)
|
|
||||||
; movsd 32(%rcx), %xmm14
|
; movsd 32(%rcx), %xmm14
|
||||||
; movsd 40(%rcx), %xmm3
|
; movsd 40(%rcx), %xmm1
|
||||||
; movdqu %xmm3, rsp(48 + virtual offset)
|
; movdqu %xmm1, rsp(16 + virtual offset)
|
||||||
; movsd 48(%rcx), %xmm9
|
; movsd 48(%rcx), %xmm8
|
||||||
; movsd 56(%rcx), %xmm7
|
; movsd 56(%rcx), %xmm9
|
||||||
; movdqu %xmm7, rsp(32 + virtual offset)
|
; movdqu %xmm9, rsp(0 + virtual offset)
|
||||||
; movsd 64(%rcx), %xmm13
|
; movsd 64(%rcx), %xmm13
|
||||||
; movsd 72(%rcx), %xmm10
|
; movsd 72(%rcx), %xmm3
|
||||||
; movdqu %xmm10, rsp(16 + virtual offset)
|
; movsd 80(%rcx), %xmm10
|
||||||
; movsd 80(%rcx), %xmm11
|
; movsd 88(%rcx), %xmm5
|
||||||
; movsd 88(%rcx), %xmm10
|
; movsd 96(%rcx), %xmm4
|
||||||
; movsd 96(%rcx), %xmm5
|
; movsd 104(%rcx), %xmm9
|
||||||
; movsd 104(%rcx), %xmm12
|
; movsd 112(%rcx), %xmm12
|
||||||
; movsd 112(%rcx), %xmm1
|
; movsd 120(%rcx), %xmm11
|
||||||
; movsd 120(%rcx), %xmm2
|
; movsd 128(%rcx), %xmm7
|
||||||
; movsd 128(%rcx), %xmm8
|
; movsd 136(%rcx), %xmm15
|
||||||
; movsd 136(%rcx), %xmm3
|
; movsd 144(%rcx), %xmm2
|
||||||
; movsd 144(%rcx), %xmm4
|
; movdqu rsp(48 + virtual offset), %xmm1
|
||||||
; movdqu rsp(80 + virtual offset), %xmm6
|
; addsd %xmm0, %xmm1, %xmm0
|
||||||
|
; movdqu rsp(32 + virtual offset), %xmm1
|
||||||
|
; addsd %xmm6, %xmm1, %xmm6
|
||||||
|
; movdqu rsp(16 + virtual offset), %xmm1
|
||||||
|
; addsd %xmm14, %xmm1, %xmm14
|
||||||
|
; movdqu rsp(0 + virtual offset), %xmm1
|
||||||
|
; addsd %xmm8, %xmm1, %xmm8
|
||||||
|
; addsd %xmm13, %xmm3, %xmm13
|
||||||
|
; addsd %xmm10, %xmm5, %xmm10
|
||||||
|
; addsd %xmm4, %xmm9, %xmm4
|
||||||
|
; addsd %xmm12, %xmm11, %xmm12
|
||||||
|
; addsd %xmm7, %xmm15, %xmm7
|
||||||
|
; addsd %xmm2, 152(%rcx), %xmm2
|
||||||
; addsd %xmm0, %xmm6, %xmm0
|
; addsd %xmm0, %xmm6, %xmm0
|
||||||
; movdqu rsp(0 + virtual offset), %xmm6
|
; addsd %xmm14, %xmm8, %xmm14
|
||||||
; movdqu rsp(64 + virtual offset), %xmm7
|
; addsd %xmm13, %xmm10, %xmm13
|
||||||
; addsd %xmm6, %xmm7, %xmm6
|
; addsd %xmm4, %xmm12, %xmm4
|
||||||
; movdqu rsp(48 + virtual offset), %xmm7
|
; addsd %xmm7, %xmm2, %xmm7
|
||||||
; addsd %xmm14, %xmm7, %xmm14
|
|
||||||
; movdqu rsp(32 + virtual offset), %xmm7
|
|
||||||
; addsd %xmm9, %xmm7, %xmm9
|
|
||||||
; movdqu rsp(16 + virtual offset), %xmm7
|
|
||||||
; addsd %xmm13, %xmm7, %xmm13
|
|
||||||
; addsd %xmm11, %xmm10, %xmm11
|
|
||||||
; addsd %xmm5, %xmm12, %xmm5
|
|
||||||
; addsd %xmm1, %xmm2, %xmm1
|
|
||||||
; addsd %xmm8, %xmm3, %xmm8
|
|
||||||
; addsd %xmm4, 152(%rcx), %xmm4
|
|
||||||
; addsd %xmm0, %xmm6, %xmm0
|
|
||||||
; addsd %xmm14, %xmm9, %xmm14
|
|
||||||
; addsd %xmm13, %xmm11, %xmm13
|
|
||||||
; addsd %xmm5, %xmm1, %xmm5
|
|
||||||
; addsd %xmm8, %xmm4, %xmm8
|
|
||||||
; addsd %xmm0, %xmm14, %xmm0
|
; addsd %xmm0, %xmm14, %xmm0
|
||||||
; addsd %xmm13, %xmm5, %xmm13
|
; addsd %xmm13, %xmm4, %xmm13
|
||||||
; addsd %xmm0, %xmm13, %xmm0
|
; addsd %xmm0, %xmm13, %xmm0
|
||||||
; addsd %xmm0, %xmm8, %xmm0
|
; addsd %xmm0, %xmm7, %xmm0
|
||||||
; movdqu 96(%rsp), %xmm6
|
; movdqu 64(%rsp), %xmm6
|
||||||
; movdqu 112(%rsp), %xmm7
|
; movdqu 80(%rsp), %xmm7
|
||||||
; movdqu 128(%rsp), %xmm8
|
; movdqu 96(%rsp), %xmm8
|
||||||
; movdqu 144(%rsp), %xmm9
|
; movdqu 112(%rsp), %xmm9
|
||||||
; movdqu 160(%rsp), %xmm10
|
; movdqu 128(%rsp), %xmm10
|
||||||
; movdqu 176(%rsp), %xmm11
|
; movdqu 144(%rsp), %xmm11
|
||||||
; movdqu 192(%rsp), %xmm12
|
; movdqu 160(%rsp), %xmm12
|
||||||
; movdqu 208(%rsp), %xmm13
|
; movdqu 176(%rsp), %xmm13
|
||||||
; movdqu 224(%rsp), %xmm14
|
; movdqu 192(%rsp), %xmm14
|
||||||
; addq %rsp, $240, %rsp
|
; movdqu 208(%rsp), %xmm15
|
||||||
|
; addq %rsp, $224, %rsp
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
|
|||||||
@@ -17,17 +17,17 @@ block0(v0: i32, v1: i64):
|
|||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movl %edi, %eax
|
; movl %edi, %eax
|
||||||
; movq 8(%rsi), %rcx
|
; movq 8(%rsi), %rdi
|
||||||
; movq %rax, %rdx
|
; movq %rax, %rcx
|
||||||
; addq %rdx, $32768, %rdx
|
; addq %rcx, $32768, %rcx
|
||||||
; jnb ; ud2 heap_oob ;
|
; jnb ; ud2 heap_oob ;
|
||||||
; cmpq %rcx, %rdx
|
; cmpq %rdi, %rcx
|
||||||
; jbe label1; j label2
|
; jbe label1; j label2
|
||||||
; block1:
|
; block1:
|
||||||
; addq %rax, 0(%rsi), %rax
|
; addq %rax, 0(%rsi), %rax
|
||||||
; xorq %r8, %r8, %r8
|
; xorq %rdx, %rdx, %rdx
|
||||||
; cmpq %rcx, %rdx
|
; cmpq %rdi, %rcx
|
||||||
; cmovnbeq %r8, %rax, %rax
|
; cmovnbeq %rdx, %rax, %rax
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
|
|||||||
@@ -113,18 +113,16 @@ block0(v0: i128, v1: i128):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdi, %r11
|
; movq %rdi, %r9
|
||||||
; imulq %r11, %rcx, %r11
|
; imulq %r9, %rcx, %r9
|
||||||
; movq %rdi, %rax
|
; movq %rdi, %rax
|
||||||
; imulq %rsi, %rdx, %rsi
|
; imulq %rsi, %rdx, %rsi
|
||||||
; movq %r11, %rdi
|
; addq %r9, %rsi, %r9
|
||||||
; addq %rdi, %rsi, %rdi
|
|
||||||
; movq %rdi, %r11
|
|
||||||
; mul %rax, %rdx, %rax, %rdx
|
; mul %rax, %rdx, %rax, %rdx
|
||||||
; movq %r11, %r8
|
; movq %r9, %rdi
|
||||||
; addq %r8, %rdx, %r8
|
; addq %rdi, %rdx, %rdi
|
||||||
; movq %r8, %r11
|
; movq %rdi, %r9
|
||||||
; movq %r11, %rdx
|
; movq %r9, %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
@@ -193,48 +191,47 @@ block0(v0: i128, v1: i128):
|
|||||||
; movq %r15, 48(%rsp)
|
; movq %r15, 48(%rsp)
|
||||||
; block0:
|
; block0:
|
||||||
; cmpq %rdx, %rdi
|
; cmpq %rdx, %rdi
|
||||||
; setz %al
|
|
||||||
; cmpq %rcx, %rsi
|
|
||||||
; setz %r8b
|
; setz %r8b
|
||||||
; andq %rax, %r8, %rax
|
; cmpq %rcx, %rsi
|
||||||
; testq $1, %rax
|
; setz %r9b
|
||||||
|
; andq %r8, %r9, %r8
|
||||||
|
; testq $1, %r8
|
||||||
; setnz %al
|
; setnz %al
|
||||||
; cmpq %rdx, %rdi
|
; cmpq %rdx, %rdi
|
||||||
; setnz %r8b
|
|
||||||
; cmpq %rcx, %rsi
|
|
||||||
; setnz %r9b
|
|
||||||
; orq %r8, %r9, %r8
|
|
||||||
; testq $1, %r8
|
|
||||||
; setnz %r8b
|
|
||||||
; movq %r8, rsp(8 + virtual offset)
|
|
||||||
; cmpq %rcx, %rsi
|
|
||||||
; setl %r9b
|
|
||||||
; setz %r15b
|
|
||||||
; cmpq %rdx, %rdi
|
|
||||||
; setb %r11b
|
|
||||||
; andq %r11, %r15, %r11
|
|
||||||
; orq %r11, %r9, %r11
|
|
||||||
; andq %r11, $1, %r11
|
|
||||||
; setnz %r9b
|
; setnz %r9b
|
||||||
; cmpq %rcx, %rsi
|
; cmpq %rcx, %rsi
|
||||||
; setl %r11b
|
; setnz %r10b
|
||||||
; setz %bl
|
; orq %r9, %r10, %r9
|
||||||
; cmpq %rdx, %rdi
|
; testq $1, %r9
|
||||||
; setbe %r14b
|
|
||||||
; andq %r14, %rbx, %r14
|
|
||||||
; orq %r14, %r11, %r14
|
|
||||||
; andq %r14, $1, %r14
|
|
||||||
; setnz %r8b
|
; setnz %r8b
|
||||||
; movq %r8, rsp(0 + virtual offset)
|
; movq %r8, rsp(0 + virtual offset)
|
||||||
; cmpq %rcx, %rsi
|
; cmpq %rcx, %rsi
|
||||||
; setnle %r15b
|
; setl %r11b
|
||||||
|
; setz %r10b
|
||||||
|
; cmpq %rdx, %rdi
|
||||||
|
; setb %r9b
|
||||||
|
; andq %r9, %r10, %r9
|
||||||
|
; orq %r9, %r11, %r9
|
||||||
|
; andq %r9, $1, %r9
|
||||||
|
; setnz %r9b
|
||||||
|
; cmpq %rcx, %rsi
|
||||||
|
; setl %r10b
|
||||||
|
; setz %bl
|
||||||
|
; cmpq %rdx, %rdi
|
||||||
|
; setbe %r11b
|
||||||
|
; andq %r11, %rbx, %r11
|
||||||
|
; orq %r11, %r10, %r11
|
||||||
|
; andq %r11, $1, %r11
|
||||||
|
; setnz %r10b
|
||||||
|
; cmpq %rcx, %rsi
|
||||||
|
; setnle %r11b
|
||||||
; setz %r12b
|
; setz %r12b
|
||||||
; cmpq %rdx, %rdi
|
; cmpq %rdx, %rdi
|
||||||
; setnbe %bl
|
; setnbe %r15b
|
||||||
; andq %rbx, %r12, %rbx
|
; andq %r15, %r12, %r15
|
||||||
; orq %rbx, %r15, %rbx
|
; orq %r15, %r11, %r15
|
||||||
; andq %rbx, $1, %rbx
|
; andq %r15, $1, %r15
|
||||||
; setnz %r15b
|
; setnz %r11b
|
||||||
; cmpq %rcx, %rsi
|
; cmpq %rcx, %rsi
|
||||||
; setnle %bl
|
; setnle %bl
|
||||||
; setz %r13b
|
; setz %r13b
|
||||||
@@ -255,41 +252,40 @@ block0(v0: i128, v1: i128):
|
|||||||
; setnz %r12b
|
; setnz %r12b
|
||||||
; cmpq %rcx, %rsi
|
; cmpq %rcx, %rsi
|
||||||
; setb %r13b
|
; setb %r13b
|
||||||
; setz %r8b
|
; setz %r15b
|
||||||
; cmpq %rdx, %rdi
|
; cmpq %rdx, %rdi
|
||||||
; setbe %r14b
|
; setbe %r14b
|
||||||
; andq %r14, %r8, %r14
|
; andq %r14, %r15, %r14
|
||||||
; orq %r14, %r13, %r14
|
; orq %r14, %r13, %r14
|
||||||
; andq %r14, $1, %r14
|
; andq %r14, $1, %r14
|
||||||
; setnz %r13b
|
; setnz %r13b
|
||||||
; cmpq %rcx, %rsi
|
; cmpq %rcx, %rsi
|
||||||
; setnbe %r14b
|
; setnbe %r14b
|
||||||
; setz %r11b
|
; setz %r8b
|
||||||
; cmpq %rdx, %rdi
|
; cmpq %rdx, %rdi
|
||||||
; setnbe %r8b
|
; setnbe %r15b
|
||||||
; andq %r8, %r11, %r8
|
; andq %r15, %r8, %r15
|
||||||
; orq %r8, %r14, %r8
|
; orq %r15, %r14, %r15
|
||||||
; andq %r8, $1, %r8
|
; andq %r15, $1, %r15
|
||||||
; setnz %r14b
|
; setnz %r14b
|
||||||
; cmpq %rcx, %rsi
|
; cmpq %rcx, %rsi
|
||||||
; setnbe %sil
|
; setnbe %sil
|
||||||
; setz %cl
|
; setz %cl
|
||||||
; cmpq %rdx, %rdi
|
; cmpq %rdx, %rdi
|
||||||
; setnb %r8b
|
; setnb %dil
|
||||||
; andq %r8, %rcx, %r8
|
; andq %rdi, %rcx, %rdi
|
||||||
; orq %r8, %rsi, %r8
|
; orq %rdi, %rsi, %rdi
|
||||||
; andq %r8, $1, %r8
|
; andq %rdi, $1, %rdi
|
||||||
; setnz %dl
|
; setnz %dil
|
||||||
; movq rsp(8 + virtual offset), %r11
|
; movq rsp(0 + virtual offset), %rsi
|
||||||
; andl %eax, %r11d, %eax
|
; andl %eax, %esi, %eax
|
||||||
; movq rsp(0 + virtual offset), %rdi
|
; andl %r9d, %r10d, %r9d
|
||||||
; andl %r9d, %edi, %r9d
|
; andl %r11d, %ebx, %r11d
|
||||||
; andl %r15d, %ebx, %r15d
|
|
||||||
; andl %r12d, %r13d, %r12d
|
; andl %r12d, %r13d, %r12d
|
||||||
; andl %r14d, %edx, %r14d
|
; andl %r14d, %edi, %r14d
|
||||||
; andl %eax, %r9d, %eax
|
; andl %eax, %r9d, %eax
|
||||||
; andl %r15d, %r12d, %r15d
|
; andl %r11d, %r12d, %r11d
|
||||||
; andl %eax, %r15d, %eax
|
; andl %eax, %r11d, %eax
|
||||||
; andl %eax, %r14d, %eax
|
; andl %eax, %r14d, %eax
|
||||||
; movq 16(%rsp), %rbx
|
; movq 16(%rsp), %rbx
|
||||||
; movq 24(%rsp), %r12
|
; movq 24(%rsp), %r12
|
||||||
@@ -319,10 +315,10 @@ block2:
|
|||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; cmpq $0, %rdi
|
; cmpq $0, %rdi
|
||||||
; setz %dil
|
; setz %r11b
|
||||||
; cmpq $0, %rsi
|
; cmpq $0, %rsi
|
||||||
; setz %cl
|
; setz %al
|
||||||
; andb %cl, %dil, %cl
|
; andb %al, %r11b, %al
|
||||||
; jnz label1; j label2
|
; jnz label1; j label2
|
||||||
; block1:
|
; block1:
|
||||||
; movl $1, %eax
|
; movl $1, %eax
|
||||||
@@ -353,10 +349,10 @@ block2:
|
|||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; cmpq $0, %rdi
|
; cmpq $0, %rdi
|
||||||
; setnz %dil
|
; setnz %r11b
|
||||||
; cmpq $0, %rsi
|
; cmpq $0, %rsi
|
||||||
; setnz %cl
|
; setnz %al
|
||||||
; orb %cl, %dil, %cl
|
; orb %al, %r11b, %al
|
||||||
; jnz label1; j label2
|
; jnz label1; j label2
|
||||||
; block1:
|
; block1:
|
||||||
; movl $1, %eax
|
; movl $1, %eax
|
||||||
@@ -484,43 +480,43 @@ block0(v0: i128):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdi, %r9
|
; movq %rdi, %r8
|
||||||
; shrq $1, %r9, %r9
|
; shrq $1, %r8, %r8
|
||||||
; movabsq $8608480567731124087, %rax
|
; movabsq $8608480567731124087, %r11
|
||||||
; andq %r9, %rax, %r9
|
; andq %r8, %r11, %r8
|
||||||
; subq %rdi, %r9, %rdi
|
; subq %rdi, %r8, %rdi
|
||||||
; shrq $1, %r9, %r9
|
; shrq $1, %r8, %r8
|
||||||
; andq %r9, %rax, %r9
|
; andq %r8, %r11, %r8
|
||||||
; subq %rdi, %r9, %rdi
|
; subq %rdi, %r8, %rdi
|
||||||
; shrq $1, %r9, %r9
|
; shrq $1, %r8, %r8
|
||||||
; andq %r9, %rax, %r9
|
; andq %r8, %r11, %r8
|
||||||
; subq %rdi, %r9, %rdi
|
; subq %rdi, %r8, %rdi
|
||||||
; movq %rdi, %rax
|
; movq %rdi, %rax
|
||||||
; shrq $4, %rax, %rax
|
; shrq $4, %rax, %rax
|
||||||
; addq %rax, %rdi, %rax
|
; addq %rax, %rdi, %rax
|
||||||
; movabsq $1085102592571150095, %r9
|
; movabsq $1085102592571150095, %rcx
|
||||||
; andq %rax, %r9, %rax
|
; andq %rax, %rcx, %rax
|
||||||
; movabsq $72340172838076673, %rcx
|
; movabsq $72340172838076673, %r10
|
||||||
; imulq %rax, %rcx, %rax
|
; imulq %rax, %r10, %rax
|
||||||
; shrq $56, %rax, %rax
|
; shrq $56, %rax, %rax
|
||||||
; movq %rsi, %rdi
|
; movq %rsi, %rcx
|
||||||
; shrq $1, %rdi, %rdi
|
; shrq $1, %rcx, %rcx
|
||||||
; movabsq $8608480567731124087, %rcx
|
; movabsq $8608480567731124087, %r9
|
||||||
; andq %rdi, %rcx, %rdi
|
; andq %rcx, %r9, %rcx
|
||||||
; subq %rsi, %rdi, %rsi
|
; subq %rsi, %rcx, %rsi
|
||||||
; shrq $1, %rdi, %rdi
|
; shrq $1, %rcx, %rcx
|
||||||
; andq %rdi, %rcx, %rdi
|
; andq %rcx, %r9, %rcx
|
||||||
; subq %rsi, %rdi, %rsi
|
; subq %rsi, %rcx, %rsi
|
||||||
; shrq $1, %rdi, %rdi
|
; shrq $1, %rcx, %rcx
|
||||||
; andq %rdi, %rcx, %rdi
|
; andq %rcx, %r9, %rcx
|
||||||
; subq %rsi, %rdi, %rsi
|
; subq %rsi, %rcx, %rsi
|
||||||
; movq %rsi, %rcx
|
; movq %rsi, %rcx
|
||||||
; shrq $4, %rcx, %rcx
|
; shrq $4, %rcx, %rcx
|
||||||
; addq %rcx, %rsi, %rcx
|
; addq %rcx, %rsi, %rcx
|
||||||
; movabsq $1085102592571150095, %rsi
|
; movabsq $1085102592571150095, %rdi
|
||||||
; andq %rcx, %rsi, %rcx
|
; andq %rcx, %rdi, %rcx
|
||||||
; movabsq $72340172838076673, %rdx
|
; movabsq $72340172838076673, %r8
|
||||||
; imulq %rcx, %rdx, %rcx
|
; imulq %rcx, %r8, %rcx
|
||||||
; shrq $56, %rcx, %rcx
|
; shrq $56, %rcx, %rcx
|
||||||
; addq %rax, %rcx, %rax
|
; addq %rax, %rcx, %rax
|
||||||
; xorq %rdx, %rdx, %rdx
|
; xorq %rdx, %rdx, %rdx
|
||||||
@@ -538,87 +534,87 @@ block0(v0: i128):
|
|||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movabsq $6148914691236517205, %r9
|
; movabsq $6148914691236517205, %r9
|
||||||
; movq %rsi, %rax
|
; movq %rsi, %r10
|
||||||
; andq %rax, %r9, %rax
|
; andq %r10, %r9, %r10
|
||||||
; shrq $1, %rsi, %rsi
|
; shrq $1, %rsi, %rsi
|
||||||
; andq %rsi, %r9, %rsi
|
; andq %rsi, %r9, %rsi
|
||||||
; shlq $1, %rax, %rax
|
; shlq $1, %r10, %r10
|
||||||
; orq %rax, %rsi, %rax
|
; orq %r10, %rsi, %r10
|
||||||
; movabsq $3689348814741910323, %rcx
|
; movabsq $3689348814741910323, %rsi
|
||||||
|
; movq %r10, %rax
|
||||||
|
; andq %rax, %rsi, %rax
|
||||||
|
; shrq $2, %r10, %r10
|
||||||
|
; andq %r10, %rsi, %r10
|
||||||
|
; shlq $2, %rax, %rax
|
||||||
|
; orq %rax, %r10, %rax
|
||||||
|
; movabsq $1085102592571150095, %rcx
|
||||||
; movq %rax, %rdx
|
; movq %rax, %rdx
|
||||||
; andq %rdx, %rcx, %rdx
|
; andq %rdx, %rcx, %rdx
|
||||||
; shrq $2, %rax, %rax
|
; shrq $4, %rax, %rax
|
||||||
; andq %rax, %rcx, %rax
|
; andq %rax, %rcx, %rax
|
||||||
; shlq $2, %rdx, %rdx
|
; shlq $4, %rdx, %rdx
|
||||||
; orq %rdx, %rax, %rdx
|
; orq %rdx, %rax, %rdx
|
||||||
; movabsq $1085102592571150095, %r9
|
; movabsq $71777214294589695, %r9
|
||||||
; movq %rdx, %rsi
|
; movq %rdx, %r10
|
||||||
; andq %rsi, %r9, %rsi
|
; andq %r10, %r9, %r10
|
||||||
; shrq $4, %rdx, %rdx
|
; shrq $8, %rdx, %rdx
|
||||||
; andq %rdx, %r9, %rdx
|
; andq %rdx, %r9, %rdx
|
||||||
; shlq $4, %rsi, %rsi
|
; shlq $8, %r10, %r10
|
||||||
; orq %rsi, %rdx, %rsi
|
; orq %r10, %rdx, %r10
|
||||||
; movabsq $71777214294589695, %rax
|
; movabsq $281470681808895, %rax
|
||||||
; movq %rsi, %rdx
|
; movq %r10, %rsi
|
||||||
; andq %rdx, %rax, %rdx
|
|
||||||
; shrq $8, %rsi, %rsi
|
|
||||||
; andq %rsi, %rax, %rsi
|
; andq %rsi, %rax, %rsi
|
||||||
; shlq $8, %rdx, %rdx
|
; shrq $16, %r10, %r10
|
||||||
; orq %rdx, %rsi, %rdx
|
; andq %r10, %rax, %r10
|
||||||
; movabsq $281470681808895, %r9
|
; shlq $16, %rsi, %rsi
|
||||||
; movq %rdx, %r11
|
; orq %rsi, %r10, %rsi
|
||||||
; andq %r11, %r9, %r11
|
|
||||||
; shrq $16, %rdx, %rdx
|
|
||||||
; andq %rdx, %r9, %rdx
|
|
||||||
; shlq $16, %r11, %r11
|
|
||||||
; orq %r11, %rdx, %r11
|
|
||||||
; movabsq $4294967295, %rcx
|
; movabsq $4294967295, %rcx
|
||||||
; movq %r11, %rax
|
; movq %rsi, %rax
|
||||||
; andq %rax, %rcx, %rax
|
; andq %rax, %rcx, %rax
|
||||||
; shrq $32, %r11, %r11
|
; shrq $32, %rsi, %rsi
|
||||||
; shlq $32, %rax, %rax
|
; shlq $32, %rax, %rax
|
||||||
; orq %rax, %r11, %rax
|
; orq %rax, %rsi, %rax
|
||||||
; movabsq $6148914691236517205, %rdx
|
; movabsq $6148914691236517205, %rdx
|
||||||
; movq %rdi, %r9
|
; movq %rdi, %r8
|
||||||
; andq %r9, %rdx, %r9
|
; andq %r8, %rdx, %r8
|
||||||
; shrq $1, %rdi, %rdi
|
; shrq $1, %rdi, %rdi
|
||||||
; andq %rdi, %rdx, %rdi
|
; andq %rdi, %rdx, %rdi
|
||||||
; shlq $1, %r9, %r9
|
; shlq $1, %r8, %r8
|
||||||
; orq %r9, %rdi, %r9
|
; orq %r8, %rdi, %r8
|
||||||
; movabsq $3689348814741910323, %rsi
|
; movabsq $3689348814741910323, %r10
|
||||||
; movq %r9, %rcx
|
; movq %r8, %r11
|
||||||
; andq %rcx, %rsi, %rcx
|
; andq %r11, %r10, %r11
|
||||||
; shrq $2, %r9, %r9
|
; shrq $2, %r8, %r8
|
||||||
; andq %r9, %rsi, %r9
|
; andq %r8, %r10, %r8
|
||||||
; shlq $2, %rcx, %rcx
|
; shlq $2, %r11, %r11
|
||||||
; orq %rcx, %r9, %rcx
|
; orq %r11, %r8, %r11
|
||||||
; movabsq $1085102592571150095, %rdx
|
; movabsq $1085102592571150095, %rdi
|
||||||
; movq %rcx, %r9
|
; movq %r11, %rcx
|
||||||
; andq %r9, %rdx, %r9
|
; andq %rcx, %rdi, %rcx
|
||||||
; shrq $4, %rcx, %rcx
|
; shrq $4, %r11, %r11
|
||||||
; andq %rcx, %rdx, %rcx
|
; andq %r11, %rdi, %r11
|
||||||
; shlq $4, %r9, %r9
|
; shlq $4, %rcx, %rcx
|
||||||
; orq %r9, %rcx, %r9
|
; orq %rcx, %r11, %rcx
|
||||||
; movabsq $71777214294589695, %rsi
|
; movabsq $71777214294589695, %rdx
|
||||||
; movq %r9, %rcx
|
|
||||||
; andq %rcx, %rsi, %rcx
|
|
||||||
; shrq $8, %r9, %r9
|
|
||||||
; andq %r9, %rsi, %r9
|
|
||||||
; shlq $8, %rcx, %rcx
|
|
||||||
; orq %rcx, %r9, %rcx
|
|
||||||
; movabsq $281470681808895, %rdx
|
|
||||||
; movq %rcx, %r8
|
; movq %rcx, %r8
|
||||||
; andq %r8, %rdx, %r8
|
; andq %r8, %rdx, %r8
|
||||||
; shrq $16, %rcx, %rcx
|
; shrq $8, %rcx, %rcx
|
||||||
; andq %rcx, %rdx, %rcx
|
; andq %rcx, %rdx, %rcx
|
||||||
; shlq $16, %r8, %r8
|
; shlq $8, %r8, %r8
|
||||||
; orq %r8, %rcx, %r8
|
; orq %r8, %rcx, %r8
|
||||||
; movabsq $4294967295, %rsi
|
; movabsq $281470681808895, %r11
|
||||||
; movq %r8, %rdx
|
; movq %r8, %r10
|
||||||
; andq %rdx, %rsi, %rdx
|
; andq %r10, %r11, %r10
|
||||||
; shrq $32, %r8, %r8
|
; shrq $16, %r8, %r8
|
||||||
|
; andq %r8, %r11, %r8
|
||||||
|
; shlq $16, %r10, %r10
|
||||||
|
; orq %r10, %r8, %r10
|
||||||
|
; movabsq $4294967295, %rdi
|
||||||
|
; movq %r10, %rdx
|
||||||
|
; andq %rdx, %rdi, %rdx
|
||||||
|
; shrq $32, %r10, %r10
|
||||||
; shlq $32, %rdx, %rdx
|
; shlq $32, %rdx, %rdx
|
||||||
; orq %rdx, %r8, %rdx
|
; orq %rdx, %r10, %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
@@ -678,20 +674,20 @@ block2(v6: i128):
|
|||||||
; block1:
|
; block1:
|
||||||
; xorq %rax, %rax, %rax
|
; xorq %rax, %rax, %rax
|
||||||
; xorq %rdx, %rdx, %rdx
|
; xorq %rdx, %rdx, %rdx
|
||||||
; movl $1, %r8d
|
; movl $1, %ecx
|
||||||
; xorq %r9, %r9, %r9
|
; xorq %r8, %r8, %r8
|
||||||
; addq %rax, %r8, %rax
|
; addq %rax, %rcx, %rax
|
||||||
; adcq %rdx, %r9, %rdx
|
; adcq %rdx, %r8, %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
; block2:
|
; block2:
|
||||||
; xorq %rax, %rax, %rax
|
; xorq %rax, %rax, %rax
|
||||||
; xorq %rdx, %rdx, %rdx
|
; xorq %rdx, %rdx, %rdx
|
||||||
; movl $2, %edi
|
; movl $2, %r10d
|
||||||
; xorq %rcx, %rcx, %rcx
|
; xorq %rsi, %rsi, %rsi
|
||||||
; addq %rax, %rdi, %rax
|
; addq %rax, %r10, %rax
|
||||||
; adcq %rdx, %rcx, %rdx
|
; adcq %rdx, %rsi, %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
@@ -710,33 +706,31 @@ block0(v0: i128, v1: i128, v2: i64, v3: i128, v4: i128, v5: i128):
|
|||||||
|
|
||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; subq %rsp, $64, %rsp
|
; subq %rsp, $32, %rsp
|
||||||
; movq %rbx, 32(%rsp)
|
; movq %r13, 16(%rsp)
|
||||||
; movq %r13, 40(%rsp)
|
; movq %r15, 24(%rsp)
|
||||||
; movq %r15, 48(%rsp)
|
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdx, rsp(0 + virtual offset)
|
; movq %rdx, rsp(0 + virtual offset)
|
||||||
; movq 16(%rbp), %r11
|
; movq 16(%rbp), %r10
|
||||||
; movq 24(%rbp), %rax
|
; movq 24(%rbp), %rax
|
||||||
; movq 32(%rbp), %rdx
|
; movq 32(%rbp), %rdx
|
||||||
; movq 40(%rbp), %r15
|
; movq 40(%rbp), %r15
|
||||||
; movq 48(%rbp), %rbx
|
; movq 48(%rbp), %r11
|
||||||
; movq rsp(0 + virtual offset), %r13
|
; movq rsp(0 + virtual offset), %r13
|
||||||
; addq %rdi, %r13, %rdi
|
; addq %rdi, %r13, %rdi
|
||||||
; adcq %rsi, %rcx, %rsi
|
; adcq %rsi, %rcx, %rsi
|
||||||
; xorq %rcx, %rcx, %rcx
|
; xorq %rcx, %rcx, %rcx
|
||||||
; addq %r9, %r8, %r9
|
; addq %r9, %r8, %r9
|
||||||
; adcq %r11, %rcx, %r11
|
; adcq %r10, %rcx, %r10
|
||||||
; addq %rax, %r15, %rax
|
; addq %rax, %r15, %rax
|
||||||
; adcq %rdx, %rbx, %rdx
|
; adcq %rdx, %r11, %rdx
|
||||||
; addq %rdi, %r9, %rdi
|
; addq %rdi, %r9, %rdi
|
||||||
; adcq %rsi, %r11, %rsi
|
; adcq %rsi, %r10, %rsi
|
||||||
; addq %rax, %rdi, %rax
|
; addq %rax, %rdi, %rax
|
||||||
; adcq %rdx, %rsi, %rdx
|
; adcq %rdx, %rsi, %rdx
|
||||||
; movq 32(%rsp), %rbx
|
; movq 16(%rsp), %r13
|
||||||
; movq 40(%rsp), %r13
|
; movq 24(%rsp), %r15
|
||||||
; movq 48(%rsp), %r15
|
; addq %rsp, $32, %rsp
|
||||||
; addq %rsp, $64, %rsp
|
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
@@ -753,31 +747,29 @@ block0(v0: i128):
|
|||||||
; movq %rbx, 0(%rsp)
|
; movq %rbx, 0(%rsp)
|
||||||
; movq %r13, 8(%rsp)
|
; movq %r13, 8(%rsp)
|
||||||
; movq %r14, 16(%rsp)
|
; movq %r14, 16(%rsp)
|
||||||
; movq %r15, 24(%rsp)
|
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdx, %r14
|
; movq %rdx, %r14
|
||||||
; movq %rdi, %rax
|
; movq %rdi, %rax
|
||||||
; movq %rsi, %rdx
|
; movq %rsi, %rdx
|
||||||
; movq %rdi, %rbx
|
; movq %rdi, %rbx
|
||||||
; movq %rsi, %r13
|
; movq %rsi, %r13
|
||||||
; movq %rdi, %r15
|
; movq %rdi, %r11
|
||||||
; movq %rsi, %r11
|
; movq %rsi, %r10
|
||||||
|
; movq %rdi, %r9
|
||||||
; movq %rdi, %rcx
|
; movq %rdi, %rcx
|
||||||
; movq %rdi, %r8
|
; movq %rsi, %r8
|
||||||
; movq %rsi, %r9
|
|
||||||
; movq %rbx, 0(%r14)
|
; movq %rbx, 0(%r14)
|
||||||
; movq %r13, 8(%r14)
|
; movq %r13, 8(%r14)
|
||||||
; movq %r15, 16(%r14)
|
; movq %r11, 16(%r14)
|
||||||
; movq %r11, 24(%r14)
|
; movq %r10, 24(%r14)
|
||||||
; movq %rcx, 32(%r14)
|
; movq %r9, 32(%r14)
|
||||||
; movq %r8, 40(%r14)
|
; movq %rcx, 40(%r14)
|
||||||
; movq %r9, 48(%r14)
|
; movq %r8, 48(%r14)
|
||||||
; movq %rdi, 56(%r14)
|
; movq %rdi, 56(%r14)
|
||||||
; movq %rsi, 64(%r14)
|
; movq %rsi, 64(%r14)
|
||||||
; movq 0(%rsp), %rbx
|
; movq 0(%rsp), %rbx
|
||||||
; movq 8(%rsp), %r13
|
; movq 8(%rsp), %r13
|
||||||
; movq 16(%rsp), %r14
|
; movq 16(%rsp), %r14
|
||||||
; movq 24(%rsp), %r15
|
|
||||||
; addq %rsp, $32, %rsp
|
; addq %rsp, $32, %rsp
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
@@ -799,15 +791,15 @@ block0(v0: i128, v1: i128):
|
|||||||
; subq %rsp, $16, %rsp
|
; subq %rsp, $16, %rsp
|
||||||
; virtual_sp_offset_adjust 16
|
; virtual_sp_offset_adjust 16
|
||||||
; lea 0(%rsp), %r8
|
; lea 0(%rsp), %r8
|
||||||
; load_ext_name %g+0, %r9
|
; load_ext_name %g+0, %rax
|
||||||
; call *%r9
|
; call *%rax
|
||||||
; movq 0(%rsp), %r11
|
; movq 0(%rsp), %r8
|
||||||
; movq 8(%rsp), %rdi
|
; movq 8(%rsp), %r10
|
||||||
; addq %rsp, $16, %rsp
|
; addq %rsp, $16, %rsp
|
||||||
; virtual_sp_offset_adjust -16
|
; virtual_sp_offset_adjust -16
|
||||||
; movq %r12, %r8
|
; movq %r12, %r9
|
||||||
; movq %r11, 0(%r8)
|
; movq %r8, 0(%r9)
|
||||||
; movq %rdi, 8(%r8)
|
; movq %r10, 8(%r9)
|
||||||
; movq 0(%rsp), %r12
|
; movq 0(%rsp), %r12
|
||||||
; addq %rsp, $16, %rsp
|
; addq %rsp, $16, %rsp
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
@@ -824,18 +816,18 @@ block0(v0: i128):
|
|||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movabsq $-1, %r9
|
; movabsq $-1, %r9
|
||||||
; bsrq %rsi, %rax
|
; bsrq %rsi, %rsi
|
||||||
; cmovzq %r9, %rax, %rax
|
; cmovzq %r9, %rsi, %rsi
|
||||||
; movl $63, %r8d
|
; movl $63, %edx
|
||||||
; subq %r8, %rax, %r8
|
; subq %rdx, %rsi, %rdx
|
||||||
; movabsq $-1, %rsi
|
; movabsq $-1, %r10
|
||||||
; bsrq %rdi, %rcx
|
; bsrq %rdi, %rdi
|
||||||
; cmovzq %rsi, %rcx, %rcx
|
; cmovzq %r10, %rdi, %rdi
|
||||||
; movl $63, %eax
|
; movl $63, %eax
|
||||||
; subq %rax, %rcx, %rax
|
; subq %rax, %rdi, %rax
|
||||||
; addq %rax, $64, %rax
|
; addq %rax, $64, %rax
|
||||||
; cmpq $64, %r8
|
; cmpq $64, %rdx
|
||||||
; cmovnzq %r8, %rax, %rax
|
; cmovnzq %rdx, %rax, %rax
|
||||||
; xorq %rdx, %rdx, %rdx
|
; xorq %rdx, %rdx, %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
@@ -853,12 +845,12 @@ block0(v0: i128):
|
|||||||
; movl $64, %r9d
|
; movl $64, %r9d
|
||||||
; bsfq %rdi, %rax
|
; bsfq %rdi, %rax
|
||||||
; cmovzq %r9, %rax, %rax
|
; cmovzq %r9, %rax, %rax
|
||||||
; movl $64, %edx
|
; movl $64, %ecx
|
||||||
; bsfq %rsi, %rsi
|
; bsfq %rsi, %r10
|
||||||
; cmovzq %rdx, %rsi, %rsi
|
; cmovzq %rcx, %r10, %r10
|
||||||
; addq %rsi, $64, %rsi
|
; addq %r10, $64, %r10
|
||||||
; cmpq $64, %rax
|
; cmpq $64, %rax
|
||||||
; cmovzq %rsi, %rax, %rax
|
; cmovzq %r10, %rax, %rax
|
||||||
; xorq %rdx, %rdx, %rdx
|
; xorq %rdx, %rdx, %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
@@ -890,19 +882,20 @@ block0(v0: i128, v1: i128):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdx, %r8
|
; movq %rdx, %rax
|
||||||
; movq %r8, %rcx
|
; movq %rax, %rcx
|
||||||
; movq %rdi, %rdx
|
; movq %rdi, %rdx
|
||||||
; shlq %cl, %rdx, %rdx
|
; shlq %cl, %rdx, %rdx
|
||||||
; shlq %cl, %rsi, %rsi
|
; shlq %cl, %rsi, %rsi
|
||||||
; movl $64, %ecx
|
; movl $64, %ecx
|
||||||
; subq %rcx, %r8, %rcx
|
; movq %rax, %r11
|
||||||
|
; subq %rcx, %r11, %rcx
|
||||||
; shrq %cl, %rdi, %rdi
|
; shrq %cl, %rdi, %rdi
|
||||||
; xorq %rax, %rax, %rax
|
; xorq %rax, %rax, %rax
|
||||||
; testq $127, %r8
|
; testq $127, %r11
|
||||||
; cmovzq %rax, %rdi, %rdi
|
; cmovzq %rax, %rdi, %rdi
|
||||||
; orq %rdi, %rsi, %rdi
|
; orq %rdi, %rsi, %rdi
|
||||||
; testq $64, %r8
|
; testq $64, %r11
|
||||||
; cmovzq %rdx, %rax, %rax
|
; cmovzq %rdx, %rax, %rax
|
||||||
; cmovzq %rdi, %rdx, %rdx
|
; cmovzq %rdi, %rdx, %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
@@ -926,9 +919,9 @@ block0(v0: i128, v1: i128):
|
|||||||
; movl $64, %ecx
|
; movl $64, %ecx
|
||||||
; subq %rcx, %r9, %rcx
|
; subq %rcx, %r9, %rcx
|
||||||
; shlq %cl, %rsi, %rsi
|
; shlq %cl, %rsi, %rsi
|
||||||
; xorq %rdx, %rdx, %rdx
|
; xorq %rax, %rax, %rax
|
||||||
; testq $127, %r9
|
; testq $127, %r9
|
||||||
; cmovzq %rdx, %rsi, %rsi
|
; cmovzq %rax, %rsi, %rsi
|
||||||
; orq %rsi, %rdi, %rsi
|
; orq %rsi, %rdi, %rsi
|
||||||
; xorq %rdx, %rdx, %rdx
|
; xorq %rdx, %rdx, %rdx
|
||||||
; testq $64, %r9
|
; testq $64, %r9
|
||||||
@@ -954,16 +947,16 @@ block0(v0: i128, v1: i128):
|
|||||||
; movq %rsi, %rdx
|
; movq %rsi, %rdx
|
||||||
; sarq %cl, %rdx, %rdx
|
; sarq %cl, %rdx, %rdx
|
||||||
; movl $64, %ecx
|
; movl $64, %ecx
|
||||||
; movq %r8, %r11
|
; movq %r8, %r9
|
||||||
; subq %rcx, %r11, %rcx
|
; subq %rcx, %r9, %rcx
|
||||||
; movq %rsi, %r8
|
; movq %rsi, %rax
|
||||||
; shlq %cl, %r8, %r8
|
; shlq %cl, %rax, %rax
|
||||||
; xorq %r9, %r9, %r9
|
; xorq %r8, %r8, %r8
|
||||||
; testq $127, %r11
|
; testq $127, %r9
|
||||||
; cmovzq %r9, %r8, %r8
|
; cmovzq %r8, %rax, %rax
|
||||||
; orq %rdi, %r8, %rdi
|
; orq %rdi, %rax, %rdi
|
||||||
; sarq $63, %rsi, %rsi
|
; sarq $63, %rsi, %rsi
|
||||||
; testq $64, %r11
|
; testq $64, %r9
|
||||||
; movq %rdx, %rax
|
; movq %rdx, %rax
|
||||||
; cmovzq %rdi, %rax, %rax
|
; cmovzq %rdi, %rax, %rax
|
||||||
; cmovzq %rdx, %rsi, %rsi
|
; cmovzq %rdx, %rsi, %rsi
|
||||||
@@ -988,37 +981,39 @@ block0(v0: i128, v1: i128):
|
|||||||
; movq %rsi, %r9
|
; movq %rsi, %r9
|
||||||
; shlq %cl, %r9, %r9
|
; shlq %cl, %r9, %r9
|
||||||
; movl $64, %ecx
|
; movl $64, %ecx
|
||||||
; subq %rcx, %r11, %rcx
|
; movq %r11, %r10
|
||||||
|
; subq %rcx, %r10, %rcx
|
||||||
; movq %rdi, %r8
|
; movq %rdi, %r8
|
||||||
; shrq %cl, %r8, %r8
|
; shrq %cl, %r8, %r8
|
||||||
; xorq %rax, %rax, %rax
|
; xorq %rax, %rax, %rax
|
||||||
; testq $127, %r11
|
; testq $127, %r10
|
||||||
; cmovzq %rax, %r8, %r8
|
; cmovzq %rax, %r8, %r8
|
||||||
; orq %r8, %r9, %r8
|
; orq %r8, %r9, %r8
|
||||||
; testq $64, %r11
|
; testq $64, %r10
|
||||||
; cmovzq %rdx, %rax, %rax
|
; cmovzq %rdx, %rax, %rax
|
||||||
; cmovzq %r8, %rdx, %rdx
|
; cmovzq %r8, %rdx, %rdx
|
||||||
; movl $128, %ecx
|
; movl $128, %ecx
|
||||||
; movq %r11, %r8
|
; movq %r11, %r9
|
||||||
; subq %rcx, %r8, %rcx
|
; subq %rcx, %r9, %rcx
|
||||||
; shrq %cl, %rdi, %rdi
|
; shrq %cl, %rdi, %rdi
|
||||||
; movq %rsi, %r9
|
; movq %rsi, %r8
|
||||||
; shrq %cl, %r9, %r9
|
; shrq %cl, %r8, %r8
|
||||||
; movq %rcx, %r8
|
; movq %rcx, %r9
|
||||||
; movl $64, %ecx
|
; movl $64, %ecx
|
||||||
; subq %rcx, %r8, %rcx
|
; movq %r9, %r10
|
||||||
|
; subq %rcx, %r10, %rcx
|
||||||
; shlq %cl, %rsi, %rsi
|
; shlq %cl, %rsi, %rsi
|
||||||
; xorq %r11, %r11, %r11
|
; xorq %r9, %r9, %r9
|
||||||
; testq $127, %r8
|
; testq $127, %r10
|
||||||
; cmovzq %r11, %rsi, %rsi
|
; cmovzq %r9, %rsi, %rsi
|
||||||
; orq %rsi, %rdi, %rsi
|
; orq %rsi, %rdi, %rsi
|
||||||
; xorq %r11, %r11, %r11
|
; xorq %rdi, %rdi, %rdi
|
||||||
; testq $64, %r8
|
; testq $64, %r10
|
||||||
; movq %r9, %rdi
|
; movq %r8, %rcx
|
||||||
; cmovzq %rsi, %rdi, %rdi
|
; cmovzq %rsi, %rcx, %rcx
|
||||||
; cmovzq %r9, %r11, %r11
|
; cmovzq %r8, %rdi, %rdi
|
||||||
; orq %rax, %rdi, %rax
|
; orq %rax, %rcx, %rax
|
||||||
; orq %rdx, %r11, %rdx
|
; orq %rdx, %rdi, %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
@@ -1039,38 +1034,38 @@ block0(v0: i128, v1: i128):
|
|||||||
; movq %rsi, %r8
|
; movq %rsi, %r8
|
||||||
; shrq %cl, %r8, %r8
|
; shrq %cl, %r8, %r8
|
||||||
; movl $64, %ecx
|
; movl $64, %ecx
|
||||||
; subq %rcx, %r11, %rcx
|
; movq %r11, %r10
|
||||||
|
; subq %rcx, %r10, %rcx
|
||||||
; movq %rsi, %r9
|
; movq %rsi, %r9
|
||||||
; shlq %cl, %r9, %r9
|
; shlq %cl, %r9, %r9
|
||||||
; xorq %rdx, %rdx, %rdx
|
; xorq %rdx, %rdx, %rdx
|
||||||
; testq $127, %r11
|
; testq $127, %r10
|
||||||
; cmovzq %rdx, %r9, %r9
|
; cmovzq %rdx, %r9, %r9
|
||||||
; orq %r9, %rax, %r9
|
; orq %r9, %rax, %r9
|
||||||
; xorq %rdx, %rdx, %rdx
|
; xorq %rdx, %rdx, %rdx
|
||||||
; testq $64, %r11
|
; testq $64, %r10
|
||||||
; movq %r8, %rax
|
; movq %r8, %rax
|
||||||
; cmovzq %r9, %rax, %rax
|
; cmovzq %r9, %rax, %rax
|
||||||
; cmovzq %r8, %rdx, %rdx
|
; cmovzq %r8, %rdx, %rdx
|
||||||
; movl $128, %ecx
|
; movl $128, %ecx
|
||||||
; movq %r11, %r8
|
; subq %rcx, %r10, %rcx
|
||||||
; subq %rcx, %r8, %rcx
|
; movq %rdi, %r8
|
||||||
; movq %rdi, %r11
|
; shlq %cl, %r8, %r8
|
||||||
; shlq %cl, %r11, %r11
|
|
||||||
; shlq %cl, %rsi, %rsi
|
; shlq %cl, %rsi, %rsi
|
||||||
; movq %rcx, %r8
|
; movq %rcx, %r9
|
||||||
; movl $64, %ecx
|
; movl $64, %ecx
|
||||||
; movq %r8, %r9
|
; movq %r9, %r10
|
||||||
; subq %rcx, %r9, %rcx
|
; subq %rcx, %r10, %rcx
|
||||||
; shrq %cl, %rdi, %rdi
|
; shrq %cl, %rdi, %rdi
|
||||||
; xorq %r8, %r8, %r8
|
; xorq %r9, %r9, %r9
|
||||||
; testq $127, %r9
|
; testq $127, %r10
|
||||||
; cmovzq %r8, %rdi, %rdi
|
; cmovzq %r9, %rdi, %rdi
|
||||||
; orq %rdi, %rsi, %rdi
|
; orq %rdi, %rsi, %rdi
|
||||||
; testq $64, %r9
|
; testq $64, %r10
|
||||||
; cmovzq %r11, %r8, %r8
|
; cmovzq %r8, %r9, %r9
|
||||||
; cmovzq %rdi, %r11, %r11
|
; cmovzq %rdi, %r8, %r8
|
||||||
; orq %rax, %r8, %rax
|
; orq %rax, %r9, %rax
|
||||||
; orq %rdx, %r11, %rdx
|
; orq %rdx, %r8, %rdx
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ block0(v0: i64, v1: i64):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
|
; movq %rdi, %r10
|
||||||
|
; addq %r10, const(VCodeConstant(0)), %r10
|
||||||
|
; movq %r10, 0(%rsi)
|
||||||
; movq %rdi, %r11
|
; movq %rdi, %r11
|
||||||
; addq %r11, const(VCodeConstant(0)), %r11
|
; subq %r11, const(VCodeConstant(0)), %r11
|
||||||
; movq %r11, 0(%rsi)
|
; movq %r11, 0(%rsi)
|
||||||
; movq %rdi, %rax
|
; movq %rdi, %rax
|
||||||
; subq %rax, const(VCodeConstant(0)), %rax
|
|
||||||
; movq %rax, 0(%rsi)
|
|
||||||
; movq %rdi, %rax
|
|
||||||
; andq %rax, const(VCodeConstant(0)), %rax
|
; andq %rax, const(VCodeConstant(0)), %rax
|
||||||
; movq %rax, 0(%rsi)
|
; movq %rax, 0(%rsi)
|
||||||
; orq %rdi, const(VCodeConstant(0)), %rdi
|
; orq %rdi, const(VCodeConstant(0)), %rdi
|
||||||
|
|||||||
@@ -51,11 +51,11 @@ block0(v0: i64, v1: i64):
|
|||||||
store.i64 v3, v1
|
store.i64 v3, v1
|
||||||
v4 = load.i64 v3
|
v4 = load.i64 v3
|
||||||
return v4
|
return v4
|
||||||
; check: movq 0(%rdi), %r11
|
; check: movq 0(%rdi), %r10
|
||||||
; nextln: movq %r11, %rax
|
; nextln: movq %r10, %r11
|
||||||
; nextln: addq %rax, %rdi, %rax
|
; nextln: addq %r11, %rdi, %r11
|
||||||
; nextln: movq %rax, 0(%rsi)
|
; nextln: movq %r11, 0(%rsi)
|
||||||
; nextln: movq 0(%r11,%rdi,1), %rax
|
; nextln: movq 0(%r10,%rdi,1), %rax
|
||||||
}
|
}
|
||||||
|
|
||||||
function %merge_scalar_to_vector(i64) -> i32x4 {
|
function %merge_scalar_to_vector(i64) -> i32x4 {
|
||||||
|
|||||||
@@ -10,24 +10,24 @@ block0(v0: i64):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdi, %rcx
|
; movq %rdi, %rax
|
||||||
; shrq $1, %rcx, %rcx
|
; shrq $1, %rax, %rax
|
||||||
; movabsq $8608480567731124087, %r8
|
; movabsq $8608480567731124087, %r8
|
||||||
; andq %rcx, %r8, %rcx
|
; andq %rax, %r8, %rax
|
||||||
; subq %rdi, %rcx, %rdi
|
; subq %rdi, %rax, %rdi
|
||||||
; shrq $1, %rcx, %rcx
|
; shrq $1, %rax, %rax
|
||||||
; andq %rcx, %r8, %rcx
|
; andq %rax, %r8, %rax
|
||||||
; subq %rdi, %rcx, %rdi
|
; subq %rdi, %rax, %rdi
|
||||||
; shrq $1, %rcx, %rcx
|
; shrq $1, %rax, %rax
|
||||||
; andq %rcx, %r8, %rcx
|
; andq %rax, %r8, %rax
|
||||||
; subq %rdi, %rcx, %rdi
|
; subq %rdi, %rax, %rdi
|
||||||
; movq %rdi, %rax
|
; movq %rdi, %rax
|
||||||
; shrq $4, %rax, %rax
|
; shrq $4, %rax, %rax
|
||||||
; addq %rax, %rdi, %rax
|
; addq %rax, %rdi, %rax
|
||||||
; movabsq $1085102592571150095, %rcx
|
; movabsq $1085102592571150095, %rsi
|
||||||
; andq %rax, %rcx, %rax
|
; andq %rax, %rsi, %rax
|
||||||
; movabsq $72340172838076673, %r11
|
; movabsq $72340172838076673, %rdx
|
||||||
; imulq %rax, %r11, %rax
|
; imulq %rax, %rdx, %rax
|
||||||
; shrq $56, %rax, %rax
|
; shrq $56, %rax, %rax
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
@@ -43,25 +43,25 @@ block0(v0: i64):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movq 0(%rdi), %rdx
|
; movq 0(%rdi), %rcx
|
||||||
; movq %rdx, %r8
|
; movq %rcx, %rdx
|
||||||
; shrq $1, %r8, %r8
|
; shrq $1, %rdx, %rdx
|
||||||
; movabsq $8608480567731124087, %r9
|
; movabsq $8608480567731124087, %r9
|
||||||
; andq %r8, %r9, %r8
|
; andq %rdx, %r9, %rdx
|
||||||
; subq %rdx, %r8, %rdx
|
; subq %rcx, %rdx, %rcx
|
||||||
; shrq $1, %r8, %r8
|
; shrq $1, %rdx, %rdx
|
||||||
; andq %r8, %r9, %r8
|
; andq %rdx, %r9, %rdx
|
||||||
; subq %rdx, %r8, %rdx
|
; subq %rcx, %rdx, %rcx
|
||||||
; shrq $1, %r8, %r8
|
; shrq $1, %rdx, %rdx
|
||||||
; andq %r8, %r9, %r8
|
; andq %rdx, %r9, %rdx
|
||||||
; subq %rdx, %r8, %rdx
|
; subq %rcx, %rdx, %rcx
|
||||||
; movq %rdx, %rax
|
; movq %rcx, %rax
|
||||||
; shrq $4, %rax, %rax
|
; shrq $4, %rax, %rax
|
||||||
; addq %rax, %rdx, %rax
|
; addq %rax, %rcx, %rax
|
||||||
; movabsq $1085102592571150095, %rdx
|
; movabsq $1085102592571150095, %rdi
|
||||||
; andq %rax, %rdx, %rax
|
; andq %rax, %rdi, %rax
|
||||||
; movabsq $72340172838076673, %rsi
|
; movabsq $72340172838076673, %r8
|
||||||
; imulq %rax, %rsi, %rax
|
; imulq %rax, %r8, %rax
|
||||||
; shrq $56, %rax, %rax
|
; shrq $56, %rax, %rax
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
@@ -76,17 +76,17 @@ block0(v0: i32):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdi, %rcx
|
; movq %rdi, %rax
|
||||||
; shrl $1, %ecx, %ecx
|
; shrl $1, %eax, %eax
|
||||||
; movl $2004318071, %r8d
|
; movl $2004318071, %r8d
|
||||||
; andl %ecx, %r8d, %ecx
|
; andl %eax, %r8d, %eax
|
||||||
; subl %edi, %ecx, %edi
|
; subl %edi, %eax, %edi
|
||||||
; shrl $1, %ecx, %ecx
|
; shrl $1, %eax, %eax
|
||||||
; andl %ecx, %r8d, %ecx
|
; andl %eax, %r8d, %eax
|
||||||
; subl %edi, %ecx, %edi
|
; subl %edi, %eax, %edi
|
||||||
; shrl $1, %ecx, %ecx
|
; shrl $1, %eax, %eax
|
||||||
; andl %ecx, %r8d, %ecx
|
; andl %eax, %r8d, %eax
|
||||||
; subl %edi, %ecx, %edi
|
; subl %edi, %eax, %edi
|
||||||
; movq %rdi, %rax
|
; movq %rdi, %rax
|
||||||
; shrl $4, %eax, %eax
|
; shrl $4, %eax, %eax
|
||||||
; addl %eax, %edi, %eax
|
; addl %eax, %edi, %eax
|
||||||
@@ -107,21 +107,21 @@ block0(v0: i64):
|
|||||||
; pushq %rbp
|
; pushq %rbp
|
||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movl 0(%rdi), %edx
|
; movl 0(%rdi), %ecx
|
||||||
; movq %rdx, %r8
|
; movq %rcx, %rdx
|
||||||
; shrl $1, %r8d, %r8d
|
; shrl $1, %edx, %edx
|
||||||
; movl $2004318071, %r9d
|
; movl $2004318071, %r9d
|
||||||
; andl %r8d, %r9d, %r8d
|
; andl %edx, %r9d, %edx
|
||||||
; subl %edx, %r8d, %edx
|
; subl %ecx, %edx, %ecx
|
||||||
; shrl $1, %r8d, %r8d
|
; shrl $1, %edx, %edx
|
||||||
; andl %r8d, %r9d, %r8d
|
; andl %edx, %r9d, %edx
|
||||||
; subl %edx, %r8d, %edx
|
; subl %ecx, %edx, %ecx
|
||||||
; shrl $1, %r8d, %r8d
|
; shrl $1, %edx, %edx
|
||||||
; andl %r8d, %r9d, %r8d
|
; andl %edx, %r9d, %edx
|
||||||
; subl %edx, %r8d, %edx
|
; subl %ecx, %edx, %ecx
|
||||||
; movq %rdx, %rax
|
; movq %rcx, %rax
|
||||||
; shrl $4, %eax, %eax
|
; shrl $4, %eax, %eax
|
||||||
; addl %eax, %edx, %eax
|
; addl %eax, %ecx, %eax
|
||||||
; andl %eax, $252645135, %eax
|
; andl %eax, $252645135, %eax
|
||||||
; imull %eax, $16843009, %eax
|
; imull %eax, $16843009, %eax
|
||||||
; shrl $24, %eax, %eax
|
; shrl $24, %eax, %eax
|
||||||
|
|||||||
@@ -208,9 +208,9 @@ block0(v0: i32):
|
|||||||
; load_const VCodeConstant(1), %xmm0
|
; load_const VCodeConstant(1), %xmm0
|
||||||
; movd %edi, %xmm5
|
; movd %edi, %xmm5
|
||||||
; psllw %xmm0, %xmm5, %xmm0
|
; psllw %xmm0, %xmm5, %xmm0
|
||||||
; lea const(VCodeConstant(0)), %rax
|
; lea const(VCodeConstant(0)), %rsi
|
||||||
; shlq $4, %rdi, %rdi
|
; shlq $4, %rdi, %rdi
|
||||||
; movdqu 0(%rax,%rdi,1), %xmm13
|
; movdqu 0(%rsi,%rdi,1), %xmm13
|
||||||
; pand %xmm0, %xmm13, %xmm0
|
; pand %xmm0, %xmm13, %xmm0
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
@@ -292,14 +292,14 @@ block0(v0: i64x2, v1: i32):
|
|||||||
; movq %rsp, %rbp
|
; movq %rsp, %rbp
|
||||||
; block0:
|
; block0:
|
||||||
; movq %rdi, %rax
|
; movq %rdi, %rax
|
||||||
; pextrd.w $0, %xmm0, %r11
|
; pextrd.w $0, %xmm0, %r10
|
||||||
; pextrd.w $1, %xmm0, %rdi
|
; pextrd.w $1, %xmm0, %rsi
|
||||||
; movq %rax, %rcx
|
; movq %rax, %rcx
|
||||||
; sarq %cl, %r11, %r11
|
; sarq %cl, %r10, %r10
|
||||||
; sarq %cl, %rdi, %rdi
|
; sarq %cl, %rsi, %rsi
|
||||||
; uninit %xmm0
|
; uninit %xmm0
|
||||||
; pinsrd.w $0, %xmm0, %r11, %xmm0
|
; pinsrd.w $0, %xmm0, %r10, %xmm0
|
||||||
; pinsrd.w $1, %xmm0, %rdi, %xmm0
|
; pinsrd.w $1, %xmm0, %rsi, %xmm0
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ block0(v0: i64, v1: i64):
|
|||||||
; block0:
|
; block0:
|
||||||
; lea 16(%rbp), %rsi
|
; lea 16(%rbp), %rsi
|
||||||
; movzbq 0(%rdi), %rax
|
; movzbq 0(%rdi), %rax
|
||||||
; movzbq 0(%rsi), %r11
|
; movzbq 0(%rsi), %r10
|
||||||
; addl %eax, %r11d, %eax
|
; addl %eax, %r10d, %eax
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
@@ -105,8 +105,8 @@ block0(v0: i64, v1: i64):
|
|||||||
; lea 16(%rbp), %rsi
|
; lea 16(%rbp), %rsi
|
||||||
; lea 144(%rbp), %rdi
|
; lea 144(%rbp), %rdi
|
||||||
; movzbq 0(%rsi), %rax
|
; movzbq 0(%rsi), %rax
|
||||||
; movzbq 0(%rdi), %r11
|
; movzbq 0(%rdi), %r10
|
||||||
; addl %eax, %r11d, %eax
|
; addl %eax, %r10d, %eax
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
|
|||||||
@@ -23,13 +23,13 @@ block0(v0: i32, v1: r64, v2: i64):
|
|||||||
; cmpl %eax, %edi
|
; cmpl %eax, %edi
|
||||||
; jb label1; j label2
|
; jb label1; j label2
|
||||||
; block1:
|
; block1:
|
||||||
; movl %edi, %r9d
|
; movl %edi, %r8d
|
||||||
; movq 0(%rdx), %rdx
|
; movq 0(%rdx), %rcx
|
||||||
; movq %rdx, %r8
|
; movq %rcx, %rdx
|
||||||
; addq %r8, %r9, %r8
|
; addq %rdx, %r8, %rdx
|
||||||
; cmpl %eax, %edi
|
; cmpl %eax, %edi
|
||||||
; cmovnbq %rdx, %r8, %r8
|
; cmovnbq %rcx, %rdx, %rdx
|
||||||
; movq %rsi, 0(%r8)
|
; movq %rsi, 0(%rdx)
|
||||||
; movq %rbp, %rsp
|
; movq %rbp, %rsp
|
||||||
; popq %rbp
|
; popq %rbp
|
||||||
; ret
|
; ret
|
||||||
|
|||||||
Reference in New Issue
Block a user