#![allow(non_upper_case_globals, unused_macros, unused_imports)]
use crate::low::macros::*;
macro_rules! NUMSIZE {
() => {
"32"
};
}
macro_rules! res {
() => {
"x19"
};
}
macro_rules! blocksize {
() => {
"x20"
};
}
macro_rules! table {
() => {
"x21"
};
}
macro_rules! i {
() => {
"x22"
};
}
macro_rules! bf {
() => {
"x23"
};
}
macro_rules! cf {
() => {
"x24"
};
}
macro_rules! j {
() => {
"x25"
};
}
macro_rules! rscalar { () => { Q!("sp, # (0 * " NUMSIZE!() ")") } }
macro_rules! acc { () => { Q!("sp, # (1 * " NUMSIZE!() ")") } }
macro_rules! nacc { () => { Q!("sp, # (4 * " NUMSIZE!() ")") } }
macro_rules! tabent { () => { Q!("sp, # (7 * " NUMSIZE!() ")") } }
macro_rules! z2 { () => { Q!("sp, # (4 * " NUMSIZE!() ")") } }
macro_rules! z3 { () => { Q!("sp, # (5 * " NUMSIZE!() ")") } }
macro_rules! NSPACE { () => { Q!("9 * " NUMSIZE!()) } }
macro_rules! movbig {
($nn:expr, $n3:expr, $n2:expr, $n1:expr, $n0:expr) => { Q!(
"movz " $nn ", " $n0 ";\n"
"movk " $nn ", " $n1 ", lsl #16;\n"
"movk " $nn ", " $n2 ", lsl #32;\n"
"movk " $nn ", " $n3 ", lsl #48"
)}
}
pub(crate) fn p256_scalarmulbase(res: &mut [u64; 8], scalar: &[u64; 4], table: &[[u64; 256]; 43]) {
unsafe {
core::arch::asm!(
Q!(" stp " "x19, x20, [sp, #-16] !"),
Q!(" stp " "x21, x22, [sp, #-16] !"),
Q!(" stp " "x23, x24, [sp, #-16] !"),
Q!(" stp " "x25, x30, [sp, #-16] !"),
Q!(" sub " "sp, sp, # (" NSPACE!() "+ 0)"),
Q!(" mov " res!() ", x0"),
Q!(" mov " blocksize!() ", x2"),
Q!(" mov " table!() ", x3"),
movbig!("x12", "#0xf3b9", "#0xcac2", "#0xfc63", "#0x2551"),
movbig!("x13", "#0xbce6", "#0xfaad", "#0xa717", "#0x9e84"),
Q!(" mov " "x14, #0xffffffffffffffff"),
Q!(" mov " "x15, #0xffffffff00000000"),
Q!(" ldp " "x2, x3, [x1]"),
Q!(" ldp " "x4, x5, [x1, #16]"),
Q!(" subs " "x6, x2, x12"),
Q!(" sbcs " "x7, x3, x13"),
Q!(" sbcs " "x8, x4, x14"),
Q!(" sbcs " "x9, x5, x15"),
Q!(" csel " "x2, x2, x6, cc"),
Q!(" csel " "x3, x3, x7, cc"),
Q!(" csel " "x4, x4, x8, cc"),
Q!(" csel " "x5, x5, x9, cc"),
Q!(" stp " "x2, x3, [" rscalar!() "]"),
Q!(" stp " "x4, x5, [" rscalar!() "+ 16]"),
Q!(" stp " "xzr, xzr, [" acc!() "]"),
Q!(" stp " "xzr, xzr, [" acc!() "+ 16]"),
Q!(" stp " "xzr, xzr, [" acc!() "+ 32]"),
Q!(" stp " "xzr, xzr, [" acc!() "+ 48]"),
Q!(" stp " "xzr, xzr, [" acc!() "+ 64]"),
Q!(" stp " "xzr, xzr, [" acc!() "+ 80]"),
Q!(" mov " cf!() ", xzr"),
Q!(" mov " i!() ", xzr"),
Q!(Label!("Lp256_scalarmulbase_alt_loop", 2) ":"),
Q!(" ldp " "x0, x1, [" rscalar!() "]"),
Q!(" ldp " "x2, x3, [" rscalar!() "+ 16]"),
Q!(" mov " "x4, #1"),
Q!(" lsl " "x4, x4, " blocksize!()),
Q!(" sub " "x4, x4, #1"),
Q!(" and " "x4, x4, x0"),
Q!(" add " bf!() ", x4, " cf!()),
Q!(" neg " "x8, " blocksize!()),
Q!(" lsl " "x5, x1, x8"),
Q!(" lsr " "x0, x0, " blocksize!()),
Q!(" orr " "x0, x0, x5"),
Q!(" lsl " "x6, x2, x8"),
Q!(" lsr " "x1, x1, " blocksize!()),
Q!(" orr " "x1, x1, x6"),
Q!(" lsl " "x7, x3, x8"),
Q!(" lsr " "x2, x2, " blocksize!()),
Q!(" orr " "x2, x2, x7"),
Q!(" lsr " "x3, x3, " blocksize!()),
Q!(" stp " "x0, x1, [" rscalar!() "]"),
Q!(" stp " "x2, x3, [" rscalar!() "+ 16]"),
Q!(" mov " "x0, #1"),
Q!(" lsl " "x1, x0, " blocksize!()),
Q!(" lsr " "x0, x1, #1"),
Q!(" sub " "x2, x1, " bf!()),
Q!(" cmp " "x0, " bf!()),
Q!(" cset " cf!() ", cc"),
Q!(" csel " j!() ", x2, " bf!() ", cc"),
Q!(" mov " "x16, #1"),
Q!(" lsl " "x16, x16, " blocksize!()),
Q!(" lsr " "x16, x16, #1"),
Q!(" mov " "x17, " j!()),
Q!(Label!("Lp256_scalarmulbase_alt_tabloop", 3) ":"),
Q!(" ldp " "x8, x9, [" table!() "]"),
Q!(" ldp " "x10, x11, [" table!() ", #16]"),
Q!(" ldp " "x12, x13, [" table!() ", #32]"),
Q!(" ldp " "x14, x15, [" table!() ", #48]"),
Q!(" subs " "x17, x17, #1"),
Q!(" csel " "x0, x8, x0, eq"),
Q!(" csel " "x1, x9, x1, eq"),
Q!(" csel " "x2, x10, x2, eq"),
Q!(" csel " "x3, x11, x3, eq"),
Q!(" csel " "x4, x12, x4, eq"),
Q!(" csel " "x5, x13, x5, eq"),
Q!(" csel " "x6, x14, x6, eq"),
Q!(" csel " "x7, x15, x7, eq"),
Q!(" add " table!() ", " table!() ", #64"),
Q!(" sub " "x16, x16, #1"),
Q!(" cbnz " "x16, " Label!("Lp256_scalarmulbase_alt_tabloop", 3, Before)),
Q!(" stp " "x0, x1, [" tabent!() "]"),
Q!(" stp " "x2, x3, [" tabent!() "+ 16]"),
Q!(" mov " "x0, 0xffffffffffffffff"),
Q!(" subs " "x0, x0, x4"),
Q!(" mov " "x1, 0x00000000ffffffff"),
Q!(" sbcs " "x1, x1, x5"),
Q!(" mov " "x3, 0xffffffff00000001"),
Q!(" sbcs " "x2, xzr, x6"),
Q!(" sbc " "x3, x3, x7"),
Q!(" cmp " cf!() ", xzr"),
Q!(" csel " "x4, x0, x4, ne"),
Q!(" csel " "x5, x1, x5, ne"),
Q!(" csel " "x6, x2, x6, ne"),
Q!(" csel " "x7, x3, x7, ne"),
Q!(" stp " "x4, x5, [" tabent!() "+ 32]"),
Q!(" stp " "x6, x7, [" tabent!() "+ 48]"),
Q!(" add " "x0, " nacc!()),
Q!(" add " "x1, " acc!()),
Q!(" add " "x2, " tabent!()),
Q!(" bl " Label!("Lp256_scalarmulbase_alt_local_p256_montjmixadd", 4, After)),
Q!(" cmp " j!() ", xzr"),
Q!(" ldp " "x0, x1, [" acc!() "]"),
Q!(" ldp " "x12, x13, [" nacc!() "]"),
Q!(" csel " "x0, x12, x0, ne"),
Q!(" csel " "x1, x13, x1, ne"),
Q!(" ldp " "x2, x3, [" acc!() "+ 16]"),
Q!(" ldp " "x12, x13, [" nacc!() "+ 16]"),
Q!(" csel " "x2, x12, x2, ne"),
Q!(" csel " "x3, x13, x3, ne"),
Q!(" ldp " "x4, x5, [" acc!() "+ 32]"),
Q!(" ldp " "x12, x13, [" nacc!() "+ 32]"),
Q!(" csel " "x4, x12, x4, ne"),
Q!(" csel " "x5, x13, x5, ne"),
Q!(" ldp " "x6, x7, [" acc!() "+ 48]"),
Q!(" ldp " "x12, x13, [" nacc!() "+ 48]"),
Q!(" csel " "x6, x12, x6, ne"),
Q!(" csel " "x7, x13, x7, ne"),
Q!(" ldp " "x8, x9, [" acc!() "+ 64]"),
Q!(" ldp " "x12, x13, [" nacc!() "+ 64]"),
Q!(" csel " "x8, x12, x8, ne"),
Q!(" csel " "x9, x13, x9, ne"),
Q!(" ldp " "x10, x11, [" acc!() "+ 80]"),
Q!(" ldp " "x12, x13, [" nacc!() "+ 80]"),
Q!(" csel " "x10, x12, x10, ne"),
Q!(" csel " "x11, x13, x11, ne"),
Q!(" stp " "x0, x1, [" acc!() "]"),
Q!(" stp " "x2, x3, [" acc!() "+ 16]"),
Q!(" stp " "x4, x5, [" acc!() "+ 32]"),
Q!(" stp " "x6, x7, [" acc!() "+ 48]"),
Q!(" stp " "x8, x9, [" acc!() "+ 64]"),
Q!(" stp " "x10, x11, [" acc!() "+ 80]"),
Q!(" add " i!() ", " i!() ", #1"),
Q!(" mul " "x0, " blocksize!() ", " i!()),
Q!(" cmp " "x0, #257"),
Q!(" bcc " Label!("Lp256_scalarmulbase_alt_loop", 2, Before)),
Q!(" add " "x0, " z2!()),
Q!(" add " "x1, " acc!() "+ 64"),
Q!(" bl " Label!("Lp256_scalarmulbase_alt_local_montsqr_p256", 5, After)),
Q!(" add " "x0, " z3!()),
Q!(" add " "x1, " acc!() "+ 64"),
Q!(" add " "x2, " z2!()),
Q!(" bl " Label!("Lp256_scalarmulbase_alt_local_montmul_p256", 6, After)),
Q!(" add " "x0, " z2!()),
Q!(" add " "x1, " z3!()),
Q!(" bl " Label!("Lp256_scalarmulbase_alt_local_demont_p256", 7, After)),
Q!(" add " "x0, " z3!()),
Q!(" add " "x1, " z2!()),
Q!(" bl " Label!("Lp256_scalarmulbase_alt_local_inv_p256", 8, After)),
Q!(" add " "x0, " z2!()),
Q!(" add " "x1, " acc!() "+ 64"),
Q!(" add " "x2, " z3!()),
Q!(" bl " Label!("Lp256_scalarmulbase_alt_local_montmul_p256", 6, After)),
Q!(" mov " "x0, " res!()),
Q!(" add " "x1, " acc!()),
Q!(" add " "x2, " z2!()),
Q!(" bl " Label!("Lp256_scalarmulbase_alt_local_montmul_p256", 6, After)),
Q!(" add " "x0, " res!() ", #32"),
Q!(" add " "x1, " acc!() "+ 32"),
Q!(" add " "x2, " z3!()),
Q!(" bl " Label!("Lp256_scalarmulbase_alt_local_montmul_p256", 6, After)),
Q!(" add " "sp, sp, # (" NSPACE!() "+ 0)"),
Q!(" ldp " "x25, x30, [sp], #16"),
Q!(" ldp " "x23, x24, [sp], #16"),
Q!(" ldp " "x21, x22, [sp], #16"),
Q!(" ldp " "x19, x20, [sp], #16"),
Q!(" b " Label!("hoist_finish", 9, After)),
Q!(Label!("Lp256_scalarmulbase_alt_local_demont_p256", 7) ":"),
Q!(" ldp " "x2, x3, [x1]"),
Q!(" ldp " "x4, x5, [x1, #16]"),
Q!(" lsl " "x7, x2, #32"),
Q!(" subs " "x8, x2, x7"),
Q!(" lsr " "x6, x2, #32"),
Q!(" sbc " "x2, x2, x6"),
Q!(" adds " "x3, x3, x7"),
Q!(" adcs " "x4, x4, x6"),
Q!(" adcs " "x5, x5, x8"),
Q!(" adc " "x2, x2, xzr"),
Q!(" lsl " "x7, x3, #32"),
Q!(" subs " "x8, x3, x7"),
Q!(" lsr " "x6, x3, #32"),
Q!(" sbc " "x3, x3, x6"),
Q!(" adds " "x4, x4, x7"),
Q!(" adcs " "x5, x5, x6"),
Q!(" adcs " "x2, x2, x8"),
Q!(" adc " "x3, x3, xzr"),
Q!(" lsl " "x7, x4, #32"),
Q!(" subs " "x8, x4, x7"),
Q!(" lsr " "x6, x4, #32"),
Q!(" sbc " "x4, x4, x6"),
Q!(" adds " "x5, x5, x7"),
Q!(" adcs " "x2, x2, x6"),
Q!(" adcs " "x3, x3, x8"),
Q!(" adc " "x4, x4, xzr"),
Q!(" lsl " "x7, x5, #32"),
Q!(" subs " "x8, x5, x7"),
Q!(" lsr " "x6, x5, #32"),
Q!(" sbc " "x5, x5, x6"),
Q!(" adds " "x2, x2, x7"),
Q!(" adcs " "x3, x3, x6"),
Q!(" adcs " "x4, x4, x8"),
Q!(" adc " "x5, x5, xzr"),
Q!(" stp " "x2, x3, [x0]"),
Q!(" stp " "x4, x5, [x0, #16]"),
Q!(" ret " ),
Q!(Label!("Lp256_scalarmulbase_alt_local_inv_p256", 8) ":"),
Q!(" stp " "x19, x20, [sp, #-16] !"),
Q!(" stp " "x21, x22, [sp, #-16] !"),
Q!(" stp " "x23, x24, [sp, #-16] !"),
Q!(" sub " "sp, sp, # (160 + 0)"),
Q!(" mov " "x20, x0"),
Q!(" mov " "x10, #0xffffffffffffffff"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" mov " "x13, #0xffffffff00000001"),
Q!(" stp " "x10, x11, [sp]"),
Q!(" stp " "xzr, x13, [sp, #16]"),
Q!(" str " "xzr, [sp, #32]"),
Q!(" ldp " "x2, x3, [x1]"),
Q!(" subs " "x10, x2, x10"),
Q!(" sbcs " "x11, x3, x11"),
Q!(" ldp " "x4, x5, [x1, #16]"),
Q!(" sbcs " "x12, x4, xzr"),
Q!(" sbcs " "x13, x5, x13"),
Q!(" csel " "x2, x2, x10, cc"),
Q!(" csel " "x3, x3, x11, cc"),
Q!(" csel " "x4, x4, x12, cc"),
Q!(" csel " "x5, x5, x13, cc"),
Q!(" stp " "x2, x3, [sp, #48]"),
Q!(" stp " "x4, x5, [sp, #64]"),
Q!(" str " "xzr, [sp, #80]"),
Q!(" stp " "xzr, xzr, [sp, #96]"),
Q!(" stp " "xzr, xzr, [sp, #112]"),
Q!(" mov " "x10, #0x4000000000000"),
Q!(" stp " "x10, xzr, [sp, #128]"),
Q!(" stp " "xzr, xzr, [sp, #144]"),
Q!(" mov " "x21, #0xa"),
Q!(" mov " "x22, #0x1"),
Q!(" b " Label!("Lp256_scalarmulbase_alt_inv_midloop", 12, After)),
Q!(Label!("Lp256_scalarmulbase_alt_inv_loop", 13) ":"),
Q!(" cmp " "x10, xzr"),
Q!(" csetm " "x14, mi"),
Q!(" cneg " "x10, x10, mi"),
Q!(" cmp " "x11, xzr"),
Q!(" csetm " "x15, mi"),
Q!(" cneg " "x11, x11, mi"),
Q!(" cmp " "x12, xzr"),
Q!(" csetm " "x16, mi"),
Q!(" cneg " "x12, x12, mi"),
Q!(" cmp " "x13, xzr"),
Q!(" csetm " "x17, mi"),
Q!(" cneg " "x13, x13, mi"),
Q!(" and " "x0, x10, x14"),
Q!(" and " "x1, x11, x15"),
Q!(" add " "x9, x0, x1"),
Q!(" and " "x0, x12, x16"),
Q!(" and " "x1, x13, x17"),
Q!(" add " "x19, x0, x1"),
Q!(" ldr " "x7, [sp]"),
Q!(" eor " "x1, x7, x14"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x4, x9, x0"),
Q!(" adc " "x2, xzr, x1"),
Q!(" ldr " "x8, [sp, #48]"),
Q!(" eor " "x1, x8, x15"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x4, x4, x0"),
Q!(" adc " "x2, x2, x1"),
Q!(" eor " "x1, x7, x16"),
Q!(" mul " "x0, x1, x12"),
Q!(" umulh " "x1, x1, x12"),
Q!(" adds " "x5, x19, x0"),
Q!(" adc " "x3, xzr, x1"),
Q!(" eor " "x1, x8, x17"),
Q!(" mul " "x0, x1, x13"),
Q!(" umulh " "x1, x1, x13"),
Q!(" adds " "x5, x5, x0"),
Q!(" adc " "x3, x3, x1"),
Q!(" ldr " "x7, [sp, #8]"),
Q!(" eor " "x1, x7, x14"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x2, x2, x0"),
Q!(" adc " "x6, xzr, x1"),
Q!(" ldr " "x8, [sp, #56]"),
Q!(" eor " "x1, x8, x15"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x2, x2, x0"),
Q!(" adc " "x6, x6, x1"),
Q!(" extr " "x4, x2, x4, #59"),
Q!(" str " "x4, [sp]"),
Q!(" eor " "x1, x7, x16"),
Q!(" mul " "x0, x1, x12"),
Q!(" umulh " "x1, x1, x12"),
Q!(" adds " "x3, x3, x0"),
Q!(" adc " "x4, xzr, x1"),
Q!(" eor " "x1, x8, x17"),
Q!(" mul " "x0, x1, x13"),
Q!(" umulh " "x1, x1, x13"),
Q!(" adds " "x3, x3, x0"),
Q!(" adc " "x4, x4, x1"),
Q!(" extr " "x5, x3, x5, #59"),
Q!(" str " "x5, [sp, #48]"),
Q!(" ldr " "x7, [sp, #16]"),
Q!(" eor " "x1, x7, x14"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x6, x6, x0"),
Q!(" adc " "x5, xzr, x1"),
Q!(" ldr " "x8, [sp, #64]"),
Q!(" eor " "x1, x8, x15"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x6, x6, x0"),
Q!(" adc " "x5, x5, x1"),
Q!(" extr " "x2, x6, x2, #59"),
Q!(" str " "x2, [sp, #8]"),
Q!(" eor " "x1, x7, x16"),
Q!(" mul " "x0, x1, x12"),
Q!(" umulh " "x1, x1, x12"),
Q!(" adds " "x4, x4, x0"),
Q!(" adc " "x2, xzr, x1"),
Q!(" eor " "x1, x8, x17"),
Q!(" mul " "x0, x1, x13"),
Q!(" umulh " "x1, x1, x13"),
Q!(" adds " "x4, x4, x0"),
Q!(" adc " "x2, x2, x1"),
Q!(" extr " "x3, x4, x3, #59"),
Q!(" str " "x3, [sp, #56]"),
Q!(" ldr " "x7, [sp, #24]"),
Q!(" eor " "x1, x7, x14"),
Q!(" ldr " "x23, [sp, #32]"),
Q!(" eor " "x3, x23, x14"),
Q!(" and " "x3, x3, x10"),
Q!(" neg " "x3, x3"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x5, x5, x0"),
Q!(" adc " "x3, x3, x1"),
Q!(" ldr " "x8, [sp, #72]"),
Q!(" eor " "x1, x8, x15"),
Q!(" ldr " "x24, [sp, #80]"),
Q!(" eor " "x0, x24, x15"),
Q!(" and " "x0, x0, x11"),
Q!(" sub " "x3, x3, x0"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x5, x5, x0"),
Q!(" adc " "x3, x3, x1"),
Q!(" extr " "x6, x5, x6, #59"),
Q!(" str " "x6, [sp, #16]"),
Q!(" extr " "x5, x3, x5, #59"),
Q!(" str " "x5, [sp, #24]"),
Q!(" asr " "x3, x3, #59"),
Q!(" str " "x3, [sp, #32]"),
Q!(" eor " "x1, x7, x16"),
Q!(" eor " "x5, x23, x16"),
Q!(" and " "x5, x5, x12"),
Q!(" neg " "x5, x5"),
Q!(" mul " "x0, x1, x12"),
Q!(" umulh " "x1, x1, x12"),
Q!(" adds " "x2, x2, x0"),
Q!(" adc " "x5, x5, x1"),
Q!(" eor " "x1, x8, x17"),
Q!(" eor " "x0, x24, x17"),
Q!(" and " "x0, x0, x13"),
Q!(" sub " "x5, x5, x0"),
Q!(" mul " "x0, x1, x13"),
Q!(" umulh " "x1, x1, x13"),
Q!(" adds " "x2, x2, x0"),
Q!(" adc " "x5, x5, x1"),
Q!(" extr " "x4, x2, x4, #59"),
Q!(" str " "x4, [sp, #64]"),
Q!(" extr " "x2, x5, x2, #59"),
Q!(" str " "x2, [sp, #72]"),
Q!(" asr " "x5, x5, #59"),
Q!(" str " "x5, [sp, #80]"),
Q!(" ldr " "x7, [sp, #96]"),
Q!(" eor " "x1, x7, x14"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x4, x9, x0"),
Q!(" adc " "x2, xzr, x1"),
Q!(" ldr " "x8, [sp, #128]"),
Q!(" eor " "x1, x8, x15"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x4, x4, x0"),
Q!(" str " "x4, [sp, #96]"),
Q!(" adc " "x2, x2, x1"),
Q!(" eor " "x1, x7, x16"),
Q!(" mul " "x0, x1, x12"),
Q!(" umulh " "x1, x1, x12"),
Q!(" adds " "x5, x19, x0"),
Q!(" adc " "x3, xzr, x1"),
Q!(" eor " "x1, x8, x17"),
Q!(" mul " "x0, x1, x13"),
Q!(" umulh " "x1, x1, x13"),
Q!(" adds " "x5, x5, x0"),
Q!(" str " "x5, [sp, #128]"),
Q!(" adc " "x3, x3, x1"),
Q!(" ldr " "x7, [sp, #104]"),
Q!(" eor " "x1, x7, x14"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x2, x2, x0"),
Q!(" adc " "x6, xzr, x1"),
Q!(" ldr " "x8, [sp, #136]"),
Q!(" eor " "x1, x8, x15"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x2, x2, x0"),
Q!(" str " "x2, [sp, #104]"),
Q!(" adc " "x6, x6, x1"),
Q!(" eor " "x1, x7, x16"),
Q!(" mul " "x0, x1, x12"),
Q!(" umulh " "x1, x1, x12"),
Q!(" adds " "x3, x3, x0"),
Q!(" adc " "x4, xzr, x1"),
Q!(" eor " "x1, x8, x17"),
Q!(" mul " "x0, x1, x13"),
Q!(" umulh " "x1, x1, x13"),
Q!(" adds " "x3, x3, x0"),
Q!(" str " "x3, [sp, #136]"),
Q!(" adc " "x4, x4, x1"),
Q!(" ldr " "x7, [sp, #112]"),
Q!(" eor " "x1, x7, x14"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x6, x6, x0"),
Q!(" adc " "x5, xzr, x1"),
Q!(" ldr " "x8, [sp, #144]"),
Q!(" eor " "x1, x8, x15"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x6, x6, x0"),
Q!(" str " "x6, [sp, #112]"),
Q!(" adc " "x5, x5, x1"),
Q!(" eor " "x1, x7, x16"),
Q!(" mul " "x0, x1, x12"),
Q!(" umulh " "x1, x1, x12"),
Q!(" adds " "x4, x4, x0"),
Q!(" adc " "x2, xzr, x1"),
Q!(" eor " "x1, x8, x17"),
Q!(" mul " "x0, x1, x13"),
Q!(" umulh " "x1, x1, x13"),
Q!(" adds " "x4, x4, x0"),
Q!(" str " "x4, [sp, #144]"),
Q!(" adc " "x2, x2, x1"),
Q!(" ldr " "x7, [sp, #120]"),
Q!(" eor " "x1, x7, x14"),
Q!(" and " "x3, x14, x10"),
Q!(" neg " "x3, x3"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x5, x5, x0"),
Q!(" adc " "x3, x3, x1"),
Q!(" ldr " "x8, [sp, #152]"),
Q!(" eor " "x1, x8, x15"),
Q!(" and " "x0, x15, x11"),
Q!(" sub " "x3, x3, x0"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x5, x5, x0"),
Q!(" adc " "x3, x3, x1"),
Q!(" ldp " "x0, x1, [sp, #96]"),
Q!(" ldr " "x6, [sp, #112]"),
Q!(" mov " "x14, #0xe000000000000000"),
Q!(" adds " "x0, x0, x14"),
Q!(" sbcs " "x1, x1, xzr"),
Q!(" mov " "x11, #0x1fffffff"),
Q!(" adcs " "x6, x6, x11"),
Q!(" mov " "x10, #0x2000000000000000"),
Q!(" adcs " "x5, x5, x10"),
Q!(" mov " "x14, #0x1fffffffe0000000"),
Q!(" adc " "x3, x3, x14"),
Q!(" lsl " "x11, x0, #32"),
Q!(" subs " "x14, x0, x11"),
Q!(" lsr " "x10, x0, #32"),
Q!(" sbc " "x0, x0, x10"),
Q!(" adds " "x1, x1, x11"),
Q!(" adcs " "x6, x6, x10"),
Q!(" adcs " "x5, x5, x14"),
Q!(" adcs " "x3, x3, x0"),
Q!(" mov " "x14, #0xffffffffffffffff"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" csel " "x14, x14, xzr, cs"),
Q!(" csel " "x11, x11, xzr, cs"),
Q!(" csel " "x10, x10, xzr, cs"),
Q!(" subs " "x1, x1, x14"),
Q!(" sbcs " "x6, x6, x11"),
Q!(" sbcs " "x5, x5, xzr"),
Q!(" sbc " "x3, x3, x10"),
Q!(" stp " "x1, x6, [sp, #96]"),
Q!(" stp " "x5, x3, [sp, #112]"),
Q!(" eor " "x1, x7, x16"),
Q!(" and " "x5, x16, x12"),
Q!(" neg " "x5, x5"),
Q!(" mul " "x0, x1, x12"),
Q!(" umulh " "x1, x1, x12"),
Q!(" adds " "x2, x2, x0"),
Q!(" adc " "x5, x5, x1"),
Q!(" eor " "x1, x8, x17"),
Q!(" and " "x0, x17, x13"),
Q!(" sub " "x5, x5, x0"),
Q!(" mul " "x0, x1, x13"),
Q!(" umulh " "x1, x1, x13"),
Q!(" adds " "x2, x2, x0"),
Q!(" adc " "x5, x5, x1"),
Q!(" ldp " "x0, x1, [sp, #128]"),
Q!(" ldr " "x3, [sp, #144]"),
Q!(" mov " "x14, #0xe000000000000000"),
Q!(" adds " "x0, x0, x14"),
Q!(" sbcs " "x1, x1, xzr"),
Q!(" mov " "x11, #0x1fffffff"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mov " "x10, #0x2000000000000000"),
Q!(" adcs " "x2, x2, x10"),
Q!(" mov " "x14, #0x1fffffffe0000000"),
Q!(" adc " "x5, x5, x14"),
Q!(" lsl " "x11, x0, #32"),
Q!(" subs " "x14, x0, x11"),
Q!(" lsr " "x10, x0, #32"),
Q!(" sbc " "x0, x0, x10"),
Q!(" adds " "x1, x1, x11"),
Q!(" adcs " "x3, x3, x10"),
Q!(" adcs " "x2, x2, x14"),
Q!(" adcs " "x5, x5, x0"),
Q!(" mov " "x14, #0xffffffffffffffff"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" csel " "x14, x14, xzr, cs"),
Q!(" csel " "x11, x11, xzr, cs"),
Q!(" csel " "x10, x10, xzr, cs"),
Q!(" subs " "x1, x1, x14"),
Q!(" sbcs " "x3, x3, x11"),
Q!(" sbcs " "x2, x2, xzr"),
Q!(" sbc " "x5, x5, x10"),
Q!(" stp " "x1, x3, [sp, #128]"),
Q!(" stp " "x2, x5, [sp, #144]"),
Q!(Label!("Lp256_scalarmulbase_alt_inv_midloop", 12) ":"),
Q!(" mov " "x1, x22"),
Q!(" ldr " "x2, [sp]"),
Q!(" ldr " "x3, [sp, #48]"),
Q!(" and " "x4, x2, #0xfffff"),
Q!(" orr " "x4, x4, #0xfffffe0000000000"),
Q!(" and " "x5, x3, #0xfffff"),
Q!(" orr " "x5, x5, #0xc000000000000000"),
Q!(" tst " "x5, #0x1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" add " "x8, x4, #0x100, lsl #12"),
Q!(" sbfx " "x8, x8, #21, #21"),
Q!(" mov " "x11, #0x100000"),
Q!(" add " "x11, x11, x11, lsl #21"),
Q!(" add " "x9, x4, x11"),
Q!(" asr " "x9, x9, #42"),
Q!(" add " "x10, x5, #0x100, lsl #12"),
Q!(" sbfx " "x10, x10, #21, #21"),
Q!(" add " "x11, x5, x11"),
Q!(" asr " "x11, x11, #42"),
Q!(" mul " "x6, x8, x2"),
Q!(" mul " "x7, x9, x3"),
Q!(" mul " "x2, x10, x2"),
Q!(" mul " "x3, x11, x3"),
Q!(" add " "x4, x6, x7"),
Q!(" add " "x5, x2, x3"),
Q!(" asr " "x2, x4, #20"),
Q!(" asr " "x3, x5, #20"),
Q!(" and " "x4, x2, #0xfffff"),
Q!(" orr " "x4, x4, #0xfffffe0000000000"),
Q!(" and " "x5, x3, #0xfffff"),
Q!(" orr " "x5, x5, #0xc000000000000000"),
Q!(" tst " "x5, #0x1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" add " "x12, x4, #0x100, lsl #12"),
Q!(" sbfx " "x12, x12, #21, #21"),
Q!(" mov " "x15, #0x100000"),
Q!(" add " "x15, x15, x15, lsl #21"),
Q!(" add " "x13, x4, x15"),
Q!(" asr " "x13, x13, #42"),
Q!(" add " "x14, x5, #0x100, lsl #12"),
Q!(" sbfx " "x14, x14, #21, #21"),
Q!(" add " "x15, x5, x15"),
Q!(" asr " "x15, x15, #42"),
Q!(" mul " "x6, x12, x2"),
Q!(" mul " "x7, x13, x3"),
Q!(" mul " "x2, x14, x2"),
Q!(" mul " "x3, x15, x3"),
Q!(" add " "x4, x6, x7"),
Q!(" add " "x5, x2, x3"),
Q!(" asr " "x2, x4, #20"),
Q!(" asr " "x3, x5, #20"),
Q!(" and " "x4, x2, #0xfffff"),
Q!(" orr " "x4, x4, #0xfffffe0000000000"),
Q!(" and " "x5, x3, #0xfffff"),
Q!(" orr " "x5, x5, #0xc000000000000000"),
Q!(" tst " "x5, #0x1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" mul " "x2, x12, x8"),
Q!(" mul " "x3, x12, x9"),
Q!(" mul " "x6, x14, x8"),
Q!(" mul " "x7, x14, x9"),
Q!(" madd " "x8, x13, x10, x2"),
Q!(" madd " "x9, x13, x11, x3"),
Q!(" madd " "x16, x15, x10, x6"),
Q!(" madd " "x17, x15, x11, x7"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" tst " "x5, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" csel " "x6, x4, xzr, ne"),
Q!(" ccmp " "x1, xzr, #0x8, ne"),
Q!(" cneg " "x1, x1, ge"),
Q!(" cneg " "x6, x6, ge"),
Q!(" csel " "x4, x5, x4, ge"),
Q!(" add " "x5, x5, x6"),
Q!(" add " "x1, x1, #0x2"),
Q!(" asr " "x5, x5, #1"),
Q!(" add " "x12, x4, #0x100, lsl #12"),
Q!(" sbfx " "x12, x12, #22, #21"),
Q!(" mov " "x15, #0x100000"),
Q!(" add " "x15, x15, x15, lsl #21"),
Q!(" add " "x13, x4, x15"),
Q!(" asr " "x13, x13, #43"),
Q!(" add " "x14, x5, #0x100, lsl #12"),
Q!(" sbfx " "x14, x14, #22, #21"),
Q!(" add " "x15, x5, x15"),
Q!(" asr " "x15, x15, #43"),
Q!(" mneg " "x2, x12, x8"),
Q!(" mneg " "x3, x12, x9"),
Q!(" mneg " "x4, x14, x8"),
Q!(" mneg " "x5, x14, x9"),
Q!(" msub " "x10, x13, x16, x2"),
Q!(" msub " "x11, x13, x17, x3"),
Q!(" msub " "x12, x15, x16, x4"),
Q!(" msub " "x13, x15, x17, x5"),
Q!(" mov " "x22, x1"),
Q!(" subs " "x21, x21, #0x1"),
Q!(" bne " Label!("Lp256_scalarmulbase_alt_inv_loop", 13, Before)),
Q!(" ldr " "x0, [sp]"),
Q!(" ldr " "x1, [sp, #48]"),
Q!(" mul " "x0, x0, x10"),
Q!(" madd " "x1, x1, x11, x0"),
Q!(" asr " "x0, x1, #63"),
Q!(" cmp " "x10, xzr"),
Q!(" csetm " "x14, mi"),
Q!(" cneg " "x10, x10, mi"),
Q!(" eor " "x14, x14, x0"),
Q!(" cmp " "x11, xzr"),
Q!(" csetm " "x15, mi"),
Q!(" cneg " "x11, x11, mi"),
Q!(" eor " "x15, x15, x0"),
Q!(" cmp " "x12, xzr"),
Q!(" csetm " "x16, mi"),
Q!(" cneg " "x12, x12, mi"),
Q!(" eor " "x16, x16, x0"),
Q!(" cmp " "x13, xzr"),
Q!(" csetm " "x17, mi"),
Q!(" cneg " "x13, x13, mi"),
Q!(" eor " "x17, x17, x0"),
Q!(" and " "x0, x10, x14"),
Q!(" and " "x1, x11, x15"),
Q!(" add " "x9, x0, x1"),
Q!(" ldr " "x7, [sp, #96]"),
Q!(" eor " "x1, x7, x14"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x4, x9, x0"),
Q!(" adc " "x2, xzr, x1"),
Q!(" ldr " "x8, [sp, #128]"),
Q!(" eor " "x1, x8, x15"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x4, x4, x0"),
Q!(" str " "x4, [sp, #96]"),
Q!(" adc " "x2, x2, x1"),
Q!(" ldr " "x7, [sp, #104]"),
Q!(" eor " "x1, x7, x14"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x2, x2, x0"),
Q!(" adc " "x6, xzr, x1"),
Q!(" ldr " "x8, [sp, #136]"),
Q!(" eor " "x1, x8, x15"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x2, x2, x0"),
Q!(" str " "x2, [sp, #104]"),
Q!(" adc " "x6, x6, x1"),
Q!(" ldr " "x7, [sp, #112]"),
Q!(" eor " "x1, x7, x14"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x6, x6, x0"),
Q!(" adc " "x5, xzr, x1"),
Q!(" ldr " "x8, [sp, #144]"),
Q!(" eor " "x1, x8, x15"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x6, x6, x0"),
Q!(" str " "x6, [sp, #112]"),
Q!(" adc " "x5, x5, x1"),
Q!(" ldr " "x7, [sp, #120]"),
Q!(" eor " "x1, x7, x14"),
Q!(" and " "x3, x14, x10"),
Q!(" neg " "x3, x3"),
Q!(" mul " "x0, x1, x10"),
Q!(" umulh " "x1, x1, x10"),
Q!(" adds " "x5, x5, x0"),
Q!(" adc " "x3, x3, x1"),
Q!(" ldr " "x8, [sp, #152]"),
Q!(" eor " "x1, x8, x15"),
Q!(" and " "x0, x15, x11"),
Q!(" sub " "x3, x3, x0"),
Q!(" mul " "x0, x1, x11"),
Q!(" umulh " "x1, x1, x11"),
Q!(" adds " "x5, x5, x0"),
Q!(" adc " "x3, x3, x1"),
Q!(" ldp " "x0, x1, [sp, #96]"),
Q!(" ldr " "x2, [sp, #112]"),
Q!(" mov " "x14, #0xe000000000000000"),
Q!(" adds " "x0, x0, x14"),
Q!(" sbcs " "x1, x1, xzr"),
Q!(" mov " "x11, #0x1fffffff"),
Q!(" adcs " "x2, x2, x11"),
Q!(" mov " "x10, #0x2000000000000000"),
Q!(" adcs " "x5, x5, x10"),
Q!(" mov " "x14, #0x1fffffffe0000000"),
Q!(" adc " "x3, x3, x14"),
Q!(" lsl " "x11, x0, #32"),
Q!(" subs " "x14, x0, x11"),
Q!(" lsr " "x10, x0, #32"),
Q!(" sbc " "x0, x0, x10"),
Q!(" adds " "x1, x1, x11"),
Q!(" adcs " "x2, x2, x10"),
Q!(" adcs " "x5, x5, x14"),
Q!(" adcs " "x3, x3, x0"),
Q!(" mov " "x14, #0xffffffffffffffff"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" csel " "x14, x14, xzr, cs"),
Q!(" csel " "x11, x11, xzr, cs"),
Q!(" csel " "x10, x10, xzr, cs"),
Q!(" subs " "x1, x1, x14"),
Q!(" sbcs " "x2, x2, x11"),
Q!(" sbcs " "x5, x5, xzr"),
Q!(" sbc " "x3, x3, x10"),
Q!(" mov " "x10, #0xffffffffffffffff"),
Q!(" subs " "x10, x1, x10"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" sbcs " "x11, x2, x11"),
Q!(" mov " "x13, #0xffffffff00000001"),
Q!(" sbcs " "x12, x5, xzr"),
Q!(" sbcs " "x13, x3, x13"),
Q!(" csel " "x10, x1, x10, cc"),
Q!(" csel " "x11, x2, x11, cc"),
Q!(" csel " "x12, x5, x12, cc"),
Q!(" csel " "x13, x3, x13, cc"),
Q!(" stp " "x10, x11, [x20]"),
Q!(" stp " "x12, x13, [x20, #16]"),
Q!(" add " "sp, sp, # (160 + 0)"),
Q!(" ldp " "x23, x24, [sp], #16"),
Q!(" ldp " "x21, x22, [sp], #16"),
Q!(" ldp " "x19, x20, [sp], #16"),
Q!(" ret " ),
Q!(Label!("Lp256_scalarmulbase_alt_local_montmul_p256", 6) ":"),
Q!(" ldp " "x3, x4, [x1]"),
Q!(" ldp " "x7, x8, [x2]"),
Q!(" mul " "x12, x3, x7"),
Q!(" umulh " "x13, x3, x7"),
Q!(" mul " "x11, x3, x8"),
Q!(" umulh " "x14, x3, x8"),
Q!(" adds " "x13, x13, x11"),
Q!(" ldp " "x9, x10, [x2, #16]"),
Q!(" mul " "x11, x3, x9"),
Q!(" umulh " "x15, x3, x9"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x3, x10"),
Q!(" umulh " "x16, x3, x10"),
Q!(" adcs " "x15, x15, x11"),
Q!(" adc " "x16, x16, xzr"),
Q!(" ldp " "x5, x6, [x1, #16]"),
Q!(" mul " "x11, x4, x7"),
Q!(" adds " "x13, x13, x11"),
Q!(" mul " "x11, x4, x8"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x4, x9"),
Q!(" adcs " "x15, x15, x11"),
Q!(" mul " "x11, x4, x10"),
Q!(" adcs " "x16, x16, x11"),
Q!(" umulh " "x3, x4, x10"),
Q!(" adc " "x3, x3, xzr"),
Q!(" umulh " "x11, x4, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" umulh " "x11, x4, x8"),
Q!(" adcs " "x15, x15, x11"),
Q!(" umulh " "x11, x4, x9"),
Q!(" adcs " "x16, x16, x11"),
Q!(" adc " "x3, x3, xzr"),
Q!(" mul " "x11, x5, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" mul " "x11, x5, x8"),
Q!(" adcs " "x15, x15, x11"),
Q!(" mul " "x11, x5, x9"),
Q!(" adcs " "x16, x16, x11"),
Q!(" mul " "x11, x5, x10"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x4, x5, x10"),
Q!(" adc " "x4, x4, xzr"),
Q!(" umulh " "x11, x5, x7"),
Q!(" adds " "x15, x15, x11"),
Q!(" umulh " "x11, x5, x8"),
Q!(" adcs " "x16, x16, x11"),
Q!(" umulh " "x11, x5, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" adc " "x4, x4, xzr"),
Q!(" mul " "x11, x6, x7"),
Q!(" adds " "x15, x15, x11"),
Q!(" mul " "x11, x6, x8"),
Q!(" adcs " "x16, x16, x11"),
Q!(" mul " "x11, x6, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mul " "x11, x6, x10"),
Q!(" adcs " "x4, x4, x11"),
Q!(" umulh " "x5, x6, x10"),
Q!(" adc " "x5, x5, xzr"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" adds " "x13, x13, x12, lsl #32"),
Q!(" lsr " "x11, x12, #32"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x12, x10"),
Q!(" umulh " "x12, x12, x10"),
Q!(" adcs " "x15, x15, x11"),
Q!(" adc " "x12, x12, xzr"),
Q!(" umulh " "x11, x6, x7"),
Q!(" adds " "x16, x16, x11"),
Q!(" umulh " "x11, x6, x8"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x11, x6, x9"),
Q!(" adcs " "x4, x4, x11"),
Q!(" adc " "x5, x5, xzr"),
Q!(" adds " "x14, x14, x13, lsl #32"),
Q!(" lsr " "x11, x13, #32"),
Q!(" adcs " "x15, x15, x11"),
Q!(" mul " "x11, x13, x10"),
Q!(" umulh " "x13, x13, x10"),
Q!(" adcs " "x12, x12, x11"),
Q!(" adc " "x13, x13, xzr"),
Q!(" adds " "x15, x15, x14, lsl #32"),
Q!(" lsr " "x11, x14, #32"),
Q!(" adcs " "x12, x12, x11"),
Q!(" mul " "x11, x14, x10"),
Q!(" umulh " "x14, x14, x10"),
Q!(" adcs " "x13, x13, x11"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x12, x12, x15, lsl #32"),
Q!(" lsr " "x11, x15, #32"),
Q!(" adcs " "x13, x13, x11"),
Q!(" mul " "x11, x15, x10"),
Q!(" umulh " "x15, x15, x10"),
Q!(" adcs " "x14, x14, x11"),
Q!(" adc " "x15, x15, xzr"),
Q!(" adds " "x12, x12, x16"),
Q!(" adcs " "x13, x13, x3"),
Q!(" adcs " "x14, x14, x4"),
Q!(" adcs " "x15, x15, x5"),
Q!(" cset " "x8, cs"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" adds " "x16, x12, #0x1"),
Q!(" sbcs " "x3, x13, x11"),
Q!(" sbcs " "x4, x14, xzr"),
Q!(" sbcs " "x5, x15, x10"),
Q!(" sbcs " "xzr, x8, xzr"),
Q!(" csel " "x12, x12, x16, cc"),
Q!(" csel " "x13, x13, x3, cc"),
Q!(" csel " "x14, x14, x4, cc"),
Q!(" csel " "x15, x15, x5, cc"),
Q!(" stp " "x12, x13, [x0]"),
Q!(" stp " "x14, x15, [x0, #16]"),
Q!(" ret " ),
Q!(Label!("Lp256_scalarmulbase_alt_local_montsqr_p256", 5) ":"),
Q!(" ldp " "x2, x3, [x1]"),
Q!(" mul " "x9, x2, x3"),
Q!(" umulh " "x10, x2, x3"),
Q!(" ldp " "x4, x5, [x1, #16]"),
Q!(" mul " "x11, x2, x5"),
Q!(" umulh " "x12, x2, x5"),
Q!(" mul " "x6, x2, x4"),
Q!(" umulh " "x7, x2, x4"),
Q!(" adds " "x10, x10, x6"),
Q!(" adcs " "x11, x11, x7"),
Q!(" mul " "x6, x3, x4"),
Q!(" umulh " "x7, x3, x4"),
Q!(" adc " "x7, x7, xzr"),
Q!(" adds " "x11, x11, x6"),
Q!(" mul " "x13, x4, x5"),
Q!(" umulh " "x14, x4, x5"),
Q!(" adcs " "x12, x12, x7"),
Q!(" mul " "x6, x3, x5"),
Q!(" umulh " "x7, x3, x5"),
Q!(" adc " "x7, x7, xzr"),
Q!(" adds " "x12, x12, x6"),
Q!(" adcs " "x13, x13, x7"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x9, x9, x9"),
Q!(" adcs " "x10, x10, x10"),
Q!(" adcs " "x11, x11, x11"),
Q!(" adcs " "x12, x12, x12"),
Q!(" adcs " "x13, x13, x13"),
Q!(" adcs " "x14, x14, x14"),
Q!(" cset " "x7, cs"),
Q!(" umulh " "x6, x2, x2"),
Q!(" mul " "x8, x2, x2"),
Q!(" adds " "x9, x9, x6"),
Q!(" mul " "x6, x3, x3"),
Q!(" adcs " "x10, x10, x6"),
Q!(" umulh " "x6, x3, x3"),
Q!(" adcs " "x11, x11, x6"),
Q!(" mul " "x6, x4, x4"),
Q!(" adcs " "x12, x12, x6"),
Q!(" umulh " "x6, x4, x4"),
Q!(" adcs " "x13, x13, x6"),
Q!(" mul " "x6, x5, x5"),
Q!(" adcs " "x14, x14, x6"),
Q!(" umulh " "x6, x5, x5"),
Q!(" adc " "x7, x7, x6"),
Q!(" mov " "x5, #0xffffffff00000001"),
Q!(" adds " "x9, x9, x8, lsl #32"),
Q!(" lsr " "x2, x8, #32"),
Q!(" adcs " "x10, x10, x2"),
Q!(" mul " "x2, x8, x5"),
Q!(" umulh " "x8, x8, x5"),
Q!(" adcs " "x11, x11, x2"),
Q!(" adc " "x8, x8, xzr"),
Q!(" adds " "x10, x10, x9, lsl #32"),
Q!(" lsr " "x2, x9, #32"),
Q!(" adcs " "x11, x11, x2"),
Q!(" mul " "x2, x9, x5"),
Q!(" umulh " "x9, x9, x5"),
Q!(" adcs " "x8, x8, x2"),
Q!(" adc " "x9, x9, xzr"),
Q!(" adds " "x11, x11, x10, lsl #32"),
Q!(" lsr " "x2, x10, #32"),
Q!(" adcs " "x8, x8, x2"),
Q!(" mul " "x2, x10, x5"),
Q!(" umulh " "x10, x10, x5"),
Q!(" adcs " "x9, x9, x2"),
Q!(" adc " "x10, x10, xzr"),
Q!(" adds " "x8, x8, x11, lsl #32"),
Q!(" lsr " "x2, x11, #32"),
Q!(" adcs " "x9, x9, x2"),
Q!(" mul " "x2, x11, x5"),
Q!(" umulh " "x11, x11, x5"),
Q!(" adcs " "x10, x10, x2"),
Q!(" adc " "x11, x11, xzr"),
Q!(" adds " "x8, x8, x12"),
Q!(" adcs " "x9, x9, x13"),
Q!(" adcs " "x10, x10, x14"),
Q!(" adcs " "x11, x11, x7"),
Q!(" cset " "x2, cs"),
Q!(" mov " "x3, #0xffffffff"),
Q!(" adds " "x12, x8, #0x1"),
Q!(" sbcs " "x13, x9, x3"),
Q!(" sbcs " "x14, x10, xzr"),
Q!(" sbcs " "x7, x11, x5"),
Q!(" sbcs " "xzr, x2, xzr"),
Q!(" csel " "x8, x8, x12, cc"),
Q!(" csel " "x9, x9, x13, cc"),
Q!(" csel " "x10, x10, x14, cc"),
Q!(" csel " "x11, x11, x7, cc"),
Q!(" stp " "x8, x9, [x0]"),
Q!(" stp " "x10, x11, [x0, #16]"),
Q!(" ret " ),
Q!(Label!("Lp256_scalarmulbase_alt_local_p256_montjmixadd", 4) ":"),
Q!(" sub " "sp, sp, # (192 + 0)"),
Q!(" mov " "x15, x0"),
Q!(" mov " "x16, x1"),
Q!(" mov " "x17, x2"),
Q!(" ldp " "x2, x3, [x16, #64]"),
Q!(" mul " "x9, x2, x3"),
Q!(" umulh " "x10, x2, x3"),
Q!(" ldp " "x4, x5, [x16, #80]"),
Q!(" mul " "x11, x2, x5"),
Q!(" umulh " "x12, x2, x5"),
Q!(" mul " "x6, x2, x4"),
Q!(" umulh " "x7, x2, x4"),
Q!(" adds " "x10, x10, x6"),
Q!(" adcs " "x11, x11, x7"),
Q!(" mul " "x6, x3, x4"),
Q!(" umulh " "x7, x3, x4"),
Q!(" adc " "x7, x7, xzr"),
Q!(" adds " "x11, x11, x6"),
Q!(" mul " "x13, x4, x5"),
Q!(" umulh " "x14, x4, x5"),
Q!(" adcs " "x12, x12, x7"),
Q!(" mul " "x6, x3, x5"),
Q!(" umulh " "x7, x3, x5"),
Q!(" adc " "x7, x7, xzr"),
Q!(" adds " "x12, x12, x6"),
Q!(" adcs " "x13, x13, x7"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x9, x9, x9"),
Q!(" adcs " "x10, x10, x10"),
Q!(" adcs " "x11, x11, x11"),
Q!(" adcs " "x12, x12, x12"),
Q!(" adcs " "x13, x13, x13"),
Q!(" adcs " "x14, x14, x14"),
Q!(" cset " "x7, cs"),
Q!(" umulh " "x6, x2, x2"),
Q!(" mul " "x8, x2, x2"),
Q!(" adds " "x9, x9, x6"),
Q!(" mul " "x6, x3, x3"),
Q!(" adcs " "x10, x10, x6"),
Q!(" umulh " "x6, x3, x3"),
Q!(" adcs " "x11, x11, x6"),
Q!(" mul " "x6, x4, x4"),
Q!(" adcs " "x12, x12, x6"),
Q!(" umulh " "x6, x4, x4"),
Q!(" adcs " "x13, x13, x6"),
Q!(" mul " "x6, x5, x5"),
Q!(" adcs " "x14, x14, x6"),
Q!(" umulh " "x6, x5, x5"),
Q!(" adc " "x7, x7, x6"),
Q!(" adds " "x9, x9, x8, lsl #32"),
Q!(" lsr " "x3, x8, #32"),
Q!(" adcs " "x10, x10, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x8, x3"),
Q!(" umulh " "x8, x8, x3"),
Q!(" adcs " "x11, x11, x2"),
Q!(" adc " "x8, x8, xzr"),
Q!(" adds " "x10, x10, x9, lsl #32"),
Q!(" lsr " "x3, x9, #32"),
Q!(" adcs " "x11, x11, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x9, x3"),
Q!(" umulh " "x9, x9, x3"),
Q!(" adcs " "x8, x8, x2"),
Q!(" adc " "x9, x9, xzr"),
Q!(" adds " "x11, x11, x10, lsl #32"),
Q!(" lsr " "x3, x10, #32"),
Q!(" adcs " "x8, x8, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x10, x3"),
Q!(" umulh " "x10, x10, x3"),
Q!(" adcs " "x9, x9, x2"),
Q!(" adc " "x10, x10, xzr"),
Q!(" adds " "x8, x8, x11, lsl #32"),
Q!(" lsr " "x3, x11, #32"),
Q!(" adcs " "x9, x9, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x11, x3"),
Q!(" umulh " "x11, x11, x3"),
Q!(" adcs " "x10, x10, x2"),
Q!(" adc " "x11, x11, xzr"),
Q!(" adds " "x8, x8, x12"),
Q!(" adcs " "x9, x9, x13"),
Q!(" adcs " "x10, x10, x14"),
Q!(" adcs " "x11, x11, x7"),
Q!(" mov " "x2, #0xffffffffffffffff"),
Q!(" csel " "x2, xzr, x2, cc"),
Q!(" mov " "x3, #0xffffffff"),
Q!(" csel " "x3, xzr, x3, cc"),
Q!(" mov " "x5, #0xffffffff00000001"),
Q!(" csel " "x5, xzr, x5, cc"),
Q!(" subs " "x8, x8, x2"),
Q!(" sbcs " "x9, x9, x3"),
Q!(" sbcs " "x10, x10, xzr"),
Q!(" sbc " "x11, x11, x5"),
Q!(" stp " "x8, x9, [sp]"),
Q!(" stp " "x10, x11, [sp, #16]"),
Q!(" ldp " "x3, x4, [x16, #64]"),
Q!(" ldp " "x7, x8, [x17, #32]"),
Q!(" mul " "x12, x3, x7"),
Q!(" umulh " "x13, x3, x7"),
Q!(" mul " "x11, x3, x8"),
Q!(" umulh " "x14, x3, x8"),
Q!(" adds " "x13, x13, x11"),
Q!(" ldp " "x9, x10, [x17, #48]"),
Q!(" mul " "x11, x3, x9"),
Q!(" umulh " "x0, x3, x9"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x3, x10"),
Q!(" umulh " "x1, x3, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x1, x1, xzr"),
Q!(" ldp " "x5, x6, [x16, #80]"),
Q!(" mul " "x11, x4, x7"),
Q!(" adds " "x13, x13, x11"),
Q!(" mul " "x11, x4, x8"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x4, x9"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x4, x10"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x3, x4, x10"),
Q!(" adc " "x3, x3, xzr"),
Q!(" umulh " "x11, x4, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" umulh " "x11, x4, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" umulh " "x11, x4, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" adc " "x3, x3, xzr"),
Q!(" mul " "x11, x5, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" mul " "x11, x5, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x5, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x5, x10"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x4, x5, x10"),
Q!(" adc " "x4, x4, xzr"),
Q!(" umulh " "x11, x5, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" umulh " "x11, x5, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x11, x5, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" adc " "x4, x4, xzr"),
Q!(" mul " "x11, x6, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" mul " "x11, x6, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x6, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mul " "x11, x6, x10"),
Q!(" adcs " "x4, x4, x11"),
Q!(" umulh " "x5, x6, x10"),
Q!(" adc " "x5, x5, xzr"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" adds " "x13, x13, x12, lsl #32"),
Q!(" lsr " "x11, x12, #32"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x12, x10"),
Q!(" umulh " "x12, x12, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x12, x12, xzr"),
Q!(" umulh " "x11, x6, x7"),
Q!(" adds " "x1, x1, x11"),
Q!(" umulh " "x11, x6, x8"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x11, x6, x9"),
Q!(" adcs " "x4, x4, x11"),
Q!(" adc " "x5, x5, xzr"),
Q!(" adds " "x14, x14, x13, lsl #32"),
Q!(" lsr " "x11, x13, #32"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x13, x10"),
Q!(" umulh " "x13, x13, x10"),
Q!(" adcs " "x12, x12, x11"),
Q!(" adc " "x13, x13, xzr"),
Q!(" adds " "x0, x0, x14, lsl #32"),
Q!(" lsr " "x11, x14, #32"),
Q!(" adcs " "x12, x12, x11"),
Q!(" mul " "x11, x14, x10"),
Q!(" umulh " "x14, x14, x10"),
Q!(" adcs " "x13, x13, x11"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x12, x12, x0, lsl #32"),
Q!(" lsr " "x11, x0, #32"),
Q!(" adcs " "x13, x13, x11"),
Q!(" mul " "x11, x0, x10"),
Q!(" umulh " "x0, x0, x10"),
Q!(" adcs " "x14, x14, x11"),
Q!(" adc " "x0, x0, xzr"),
Q!(" adds " "x12, x12, x1"),
Q!(" adcs " "x13, x13, x3"),
Q!(" adcs " "x14, x14, x4"),
Q!(" adcs " "x0, x0, x5"),
Q!(" cset " "x8, cs"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" adds " "x1, x12, #0x1"),
Q!(" sbcs " "x3, x13, x11"),
Q!(" sbcs " "x4, x14, xzr"),
Q!(" sbcs " "x5, x0, x10"),
Q!(" sbcs " "xzr, x8, xzr"),
Q!(" csel " "x12, x12, x1, cc"),
Q!(" csel " "x13, x13, x3, cc"),
Q!(" csel " "x14, x14, x4, cc"),
Q!(" csel " "x0, x0, x5, cc"),
Q!(" stp " "x12, x13, [sp, #32]"),
Q!(" stp " "x14, x0, [sp, #48]"),
Q!(" ldp " "x3, x4, [sp]"),
Q!(" ldp " "x7, x8, [x17]"),
Q!(" mul " "x12, x3, x7"),
Q!(" umulh " "x13, x3, x7"),
Q!(" mul " "x11, x3, x8"),
Q!(" umulh " "x14, x3, x8"),
Q!(" adds " "x13, x13, x11"),
Q!(" ldp " "x9, x10, [x17, #16]"),
Q!(" mul " "x11, x3, x9"),
Q!(" umulh " "x0, x3, x9"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x3, x10"),
Q!(" umulh " "x1, x3, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x1, x1, xzr"),
Q!(" ldp " "x5, x6, [sp, #16]"),
Q!(" mul " "x11, x4, x7"),
Q!(" adds " "x13, x13, x11"),
Q!(" mul " "x11, x4, x8"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x4, x9"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x4, x10"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x3, x4, x10"),
Q!(" adc " "x3, x3, xzr"),
Q!(" umulh " "x11, x4, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" umulh " "x11, x4, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" umulh " "x11, x4, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" adc " "x3, x3, xzr"),
Q!(" mul " "x11, x5, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" mul " "x11, x5, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x5, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x5, x10"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x4, x5, x10"),
Q!(" adc " "x4, x4, xzr"),
Q!(" umulh " "x11, x5, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" umulh " "x11, x5, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x11, x5, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" adc " "x4, x4, xzr"),
Q!(" mul " "x11, x6, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" mul " "x11, x6, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x6, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mul " "x11, x6, x10"),
Q!(" adcs " "x4, x4, x11"),
Q!(" umulh " "x5, x6, x10"),
Q!(" adc " "x5, x5, xzr"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" adds " "x13, x13, x12, lsl #32"),
Q!(" lsr " "x11, x12, #32"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x12, x10"),
Q!(" umulh " "x12, x12, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x12, x12, xzr"),
Q!(" umulh " "x11, x6, x7"),
Q!(" adds " "x1, x1, x11"),
Q!(" umulh " "x11, x6, x8"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x11, x6, x9"),
Q!(" adcs " "x4, x4, x11"),
Q!(" adc " "x5, x5, xzr"),
Q!(" adds " "x14, x14, x13, lsl #32"),
Q!(" lsr " "x11, x13, #32"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x13, x10"),
Q!(" umulh " "x13, x13, x10"),
Q!(" adcs " "x12, x12, x11"),
Q!(" adc " "x13, x13, xzr"),
Q!(" adds " "x0, x0, x14, lsl #32"),
Q!(" lsr " "x11, x14, #32"),
Q!(" adcs " "x12, x12, x11"),
Q!(" mul " "x11, x14, x10"),
Q!(" umulh " "x14, x14, x10"),
Q!(" adcs " "x13, x13, x11"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x12, x12, x0, lsl #32"),
Q!(" lsr " "x11, x0, #32"),
Q!(" adcs " "x13, x13, x11"),
Q!(" mul " "x11, x0, x10"),
Q!(" umulh " "x0, x0, x10"),
Q!(" adcs " "x14, x14, x11"),
Q!(" adc " "x0, x0, xzr"),
Q!(" adds " "x12, x12, x1"),
Q!(" adcs " "x13, x13, x3"),
Q!(" adcs " "x14, x14, x4"),
Q!(" adcs " "x0, x0, x5"),
Q!(" cset " "x8, cs"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" adds " "x1, x12, #0x1"),
Q!(" sbcs " "x3, x13, x11"),
Q!(" sbcs " "x4, x14, xzr"),
Q!(" sbcs " "x5, x0, x10"),
Q!(" sbcs " "xzr, x8, xzr"),
Q!(" csel " "x12, x12, x1, cc"),
Q!(" csel " "x13, x13, x3, cc"),
Q!(" csel " "x14, x14, x4, cc"),
Q!(" csel " "x0, x0, x5, cc"),
Q!(" stp " "x12, x13, [sp, #64]"),
Q!(" stp " "x14, x0, [sp, #80]"),
Q!(" ldp " "x3, x4, [sp]"),
Q!(" ldp " "x7, x8, [sp, #32]"),
Q!(" mul " "x12, x3, x7"),
Q!(" umulh " "x13, x3, x7"),
Q!(" mul " "x11, x3, x8"),
Q!(" umulh " "x14, x3, x8"),
Q!(" adds " "x13, x13, x11"),
Q!(" ldp " "x9, x10, [sp, #48]"),
Q!(" mul " "x11, x3, x9"),
Q!(" umulh " "x0, x3, x9"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x3, x10"),
Q!(" umulh " "x1, x3, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x1, x1, xzr"),
Q!(" ldp " "x5, x6, [sp, #16]"),
Q!(" mul " "x11, x4, x7"),
Q!(" adds " "x13, x13, x11"),
Q!(" mul " "x11, x4, x8"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x4, x9"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x4, x10"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x3, x4, x10"),
Q!(" adc " "x3, x3, xzr"),
Q!(" umulh " "x11, x4, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" umulh " "x11, x4, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" umulh " "x11, x4, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" adc " "x3, x3, xzr"),
Q!(" mul " "x11, x5, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" mul " "x11, x5, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x5, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x5, x10"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x4, x5, x10"),
Q!(" adc " "x4, x4, xzr"),
Q!(" umulh " "x11, x5, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" umulh " "x11, x5, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x11, x5, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" adc " "x4, x4, xzr"),
Q!(" mul " "x11, x6, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" mul " "x11, x6, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x6, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mul " "x11, x6, x10"),
Q!(" adcs " "x4, x4, x11"),
Q!(" umulh " "x5, x6, x10"),
Q!(" adc " "x5, x5, xzr"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" adds " "x13, x13, x12, lsl #32"),
Q!(" lsr " "x11, x12, #32"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x12, x10"),
Q!(" umulh " "x12, x12, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x12, x12, xzr"),
Q!(" umulh " "x11, x6, x7"),
Q!(" adds " "x1, x1, x11"),
Q!(" umulh " "x11, x6, x8"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x11, x6, x9"),
Q!(" adcs " "x4, x4, x11"),
Q!(" adc " "x5, x5, xzr"),
Q!(" adds " "x14, x14, x13, lsl #32"),
Q!(" lsr " "x11, x13, #32"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x13, x10"),
Q!(" umulh " "x13, x13, x10"),
Q!(" adcs " "x12, x12, x11"),
Q!(" adc " "x13, x13, xzr"),
Q!(" adds " "x0, x0, x14, lsl #32"),
Q!(" lsr " "x11, x14, #32"),
Q!(" adcs " "x12, x12, x11"),
Q!(" mul " "x11, x14, x10"),
Q!(" umulh " "x14, x14, x10"),
Q!(" adcs " "x13, x13, x11"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x12, x12, x0, lsl #32"),
Q!(" lsr " "x11, x0, #32"),
Q!(" adcs " "x13, x13, x11"),
Q!(" mul " "x11, x0, x10"),
Q!(" umulh " "x0, x0, x10"),
Q!(" adcs " "x14, x14, x11"),
Q!(" adc " "x0, x0, xzr"),
Q!(" adds " "x12, x12, x1"),
Q!(" adcs " "x13, x13, x3"),
Q!(" adcs " "x14, x14, x4"),
Q!(" adcs " "x0, x0, x5"),
Q!(" cset " "x8, cs"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" adds " "x1, x12, #0x1"),
Q!(" sbcs " "x3, x13, x11"),
Q!(" sbcs " "x4, x14, xzr"),
Q!(" sbcs " "x5, x0, x10"),
Q!(" sbcs " "xzr, x8, xzr"),
Q!(" csel " "x12, x12, x1, cc"),
Q!(" csel " "x13, x13, x3, cc"),
Q!(" csel " "x14, x14, x4, cc"),
Q!(" csel " "x0, x0, x5, cc"),
Q!(" stp " "x12, x13, [sp, #32]"),
Q!(" stp " "x14, x0, [sp, #48]"),
Q!(" ldp " "x5, x6, [sp, #64]"),
Q!(" ldp " "x4, x3, [x16]"),
Q!(" subs " "x5, x5, x4"),
Q!(" sbcs " "x6, x6, x3"),
Q!(" ldp " "x7, x8, [sp, #80]"),
Q!(" ldp " "x4, x3, [x16, #16]"),
Q!(" sbcs " "x7, x7, x4"),
Q!(" sbcs " "x8, x8, x3"),
Q!(" csetm " "x3, cc"),
Q!(" adds " "x5, x5, x3"),
Q!(" mov " "x4, #0xffffffff"),
Q!(" and " "x4, x4, x3"),
Q!(" adcs " "x6, x6, x4"),
Q!(" adcs " "x7, x7, xzr"),
Q!(" mov " "x4, #0xffffffff00000001"),
Q!(" and " "x4, x4, x3"),
Q!(" adc " "x8, x8, x4"),
Q!(" stp " "x5, x6, [sp, #160]"),
Q!(" stp " "x7, x8, [sp, #176]"),
Q!(" ldp " "x5, x6, [sp, #32]"),
Q!(" ldp " "x4, x3, [x16, #32]"),
Q!(" subs " "x5, x5, x4"),
Q!(" sbcs " "x6, x6, x3"),
Q!(" ldp " "x7, x8, [sp, #48]"),
Q!(" ldp " "x4, x3, [x16, #48]"),
Q!(" sbcs " "x7, x7, x4"),
Q!(" sbcs " "x8, x8, x3"),
Q!(" csetm " "x3, cc"),
Q!(" adds " "x5, x5, x3"),
Q!(" mov " "x4, #0xffffffff"),
Q!(" and " "x4, x4, x3"),
Q!(" adcs " "x6, x6, x4"),
Q!(" adcs " "x7, x7, xzr"),
Q!(" mov " "x4, #0xffffffff00000001"),
Q!(" and " "x4, x4, x3"),
Q!(" adc " "x8, x8, x4"),
Q!(" stp " "x5, x6, [sp, #32]"),
Q!(" stp " "x7, x8, [sp, #48]"),
Q!(" ldp " "x2, x3, [sp, #160]"),
Q!(" mul " "x9, x2, x3"),
Q!(" umulh " "x10, x2, x3"),
Q!(" ldp " "x4, x5, [sp, #176]"),
Q!(" mul " "x11, x2, x5"),
Q!(" umulh " "x12, x2, x5"),
Q!(" mul " "x6, x2, x4"),
Q!(" umulh " "x7, x2, x4"),
Q!(" adds " "x10, x10, x6"),
Q!(" adcs " "x11, x11, x7"),
Q!(" mul " "x6, x3, x4"),
Q!(" umulh " "x7, x3, x4"),
Q!(" adc " "x7, x7, xzr"),
Q!(" adds " "x11, x11, x6"),
Q!(" mul " "x13, x4, x5"),
Q!(" umulh " "x14, x4, x5"),
Q!(" adcs " "x12, x12, x7"),
Q!(" mul " "x6, x3, x5"),
Q!(" umulh " "x7, x3, x5"),
Q!(" adc " "x7, x7, xzr"),
Q!(" adds " "x12, x12, x6"),
Q!(" adcs " "x13, x13, x7"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x9, x9, x9"),
Q!(" adcs " "x10, x10, x10"),
Q!(" adcs " "x11, x11, x11"),
Q!(" adcs " "x12, x12, x12"),
Q!(" adcs " "x13, x13, x13"),
Q!(" adcs " "x14, x14, x14"),
Q!(" cset " "x7, cs"),
Q!(" umulh " "x6, x2, x2"),
Q!(" mul " "x8, x2, x2"),
Q!(" adds " "x9, x9, x6"),
Q!(" mul " "x6, x3, x3"),
Q!(" adcs " "x10, x10, x6"),
Q!(" umulh " "x6, x3, x3"),
Q!(" adcs " "x11, x11, x6"),
Q!(" mul " "x6, x4, x4"),
Q!(" adcs " "x12, x12, x6"),
Q!(" umulh " "x6, x4, x4"),
Q!(" adcs " "x13, x13, x6"),
Q!(" mul " "x6, x5, x5"),
Q!(" adcs " "x14, x14, x6"),
Q!(" umulh " "x6, x5, x5"),
Q!(" adc " "x7, x7, x6"),
Q!(" adds " "x9, x9, x8, lsl #32"),
Q!(" lsr " "x3, x8, #32"),
Q!(" adcs " "x10, x10, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x8, x3"),
Q!(" umulh " "x8, x8, x3"),
Q!(" adcs " "x11, x11, x2"),
Q!(" adc " "x8, x8, xzr"),
Q!(" adds " "x10, x10, x9, lsl #32"),
Q!(" lsr " "x3, x9, #32"),
Q!(" adcs " "x11, x11, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x9, x3"),
Q!(" umulh " "x9, x9, x3"),
Q!(" adcs " "x8, x8, x2"),
Q!(" adc " "x9, x9, xzr"),
Q!(" adds " "x11, x11, x10, lsl #32"),
Q!(" lsr " "x3, x10, #32"),
Q!(" adcs " "x8, x8, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x10, x3"),
Q!(" umulh " "x10, x10, x3"),
Q!(" adcs " "x9, x9, x2"),
Q!(" adc " "x10, x10, xzr"),
Q!(" adds " "x8, x8, x11, lsl #32"),
Q!(" lsr " "x3, x11, #32"),
Q!(" adcs " "x9, x9, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x11, x3"),
Q!(" umulh " "x11, x11, x3"),
Q!(" adcs " "x10, x10, x2"),
Q!(" adc " "x11, x11, xzr"),
Q!(" adds " "x8, x8, x12"),
Q!(" adcs " "x9, x9, x13"),
Q!(" adcs " "x10, x10, x14"),
Q!(" adcs " "x11, x11, x7"),
Q!(" mov " "x2, #0xffffffffffffffff"),
Q!(" csel " "x2, xzr, x2, cc"),
Q!(" mov " "x3, #0xffffffff"),
Q!(" csel " "x3, xzr, x3, cc"),
Q!(" mov " "x5, #0xffffffff00000001"),
Q!(" csel " "x5, xzr, x5, cc"),
Q!(" subs " "x8, x8, x2"),
Q!(" sbcs " "x9, x9, x3"),
Q!(" sbcs " "x10, x10, xzr"),
Q!(" sbc " "x11, x11, x5"),
Q!(" stp " "x8, x9, [sp, #96]"),
Q!(" stp " "x10, x11, [sp, #112]"),
Q!(" ldp " "x2, x3, [sp, #32]"),
Q!(" mul " "x9, x2, x3"),
Q!(" umulh " "x10, x2, x3"),
Q!(" ldp " "x4, x5, [sp, #48]"),
Q!(" mul " "x11, x2, x5"),
Q!(" umulh " "x12, x2, x5"),
Q!(" mul " "x6, x2, x4"),
Q!(" umulh " "x7, x2, x4"),
Q!(" adds " "x10, x10, x6"),
Q!(" adcs " "x11, x11, x7"),
Q!(" mul " "x6, x3, x4"),
Q!(" umulh " "x7, x3, x4"),
Q!(" adc " "x7, x7, xzr"),
Q!(" adds " "x11, x11, x6"),
Q!(" mul " "x13, x4, x5"),
Q!(" umulh " "x14, x4, x5"),
Q!(" adcs " "x12, x12, x7"),
Q!(" mul " "x6, x3, x5"),
Q!(" umulh " "x7, x3, x5"),
Q!(" adc " "x7, x7, xzr"),
Q!(" adds " "x12, x12, x6"),
Q!(" adcs " "x13, x13, x7"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x9, x9, x9"),
Q!(" adcs " "x10, x10, x10"),
Q!(" adcs " "x11, x11, x11"),
Q!(" adcs " "x12, x12, x12"),
Q!(" adcs " "x13, x13, x13"),
Q!(" adcs " "x14, x14, x14"),
Q!(" cset " "x7, cs"),
Q!(" umulh " "x6, x2, x2"),
Q!(" mul " "x8, x2, x2"),
Q!(" adds " "x9, x9, x6"),
Q!(" mul " "x6, x3, x3"),
Q!(" adcs " "x10, x10, x6"),
Q!(" umulh " "x6, x3, x3"),
Q!(" adcs " "x11, x11, x6"),
Q!(" mul " "x6, x4, x4"),
Q!(" adcs " "x12, x12, x6"),
Q!(" umulh " "x6, x4, x4"),
Q!(" adcs " "x13, x13, x6"),
Q!(" mul " "x6, x5, x5"),
Q!(" adcs " "x14, x14, x6"),
Q!(" umulh " "x6, x5, x5"),
Q!(" adc " "x7, x7, x6"),
Q!(" adds " "x9, x9, x8, lsl #32"),
Q!(" lsr " "x3, x8, #32"),
Q!(" adcs " "x10, x10, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x8, x3"),
Q!(" umulh " "x8, x8, x3"),
Q!(" adcs " "x11, x11, x2"),
Q!(" adc " "x8, x8, xzr"),
Q!(" adds " "x10, x10, x9, lsl #32"),
Q!(" lsr " "x3, x9, #32"),
Q!(" adcs " "x11, x11, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x9, x3"),
Q!(" umulh " "x9, x9, x3"),
Q!(" adcs " "x8, x8, x2"),
Q!(" adc " "x9, x9, xzr"),
Q!(" adds " "x11, x11, x10, lsl #32"),
Q!(" lsr " "x3, x10, #32"),
Q!(" adcs " "x8, x8, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x10, x3"),
Q!(" umulh " "x10, x10, x3"),
Q!(" adcs " "x9, x9, x2"),
Q!(" adc " "x10, x10, xzr"),
Q!(" adds " "x8, x8, x11, lsl #32"),
Q!(" lsr " "x3, x11, #32"),
Q!(" adcs " "x9, x9, x3"),
Q!(" mov " "x3, #0xffffffff00000001"),
Q!(" mul " "x2, x11, x3"),
Q!(" umulh " "x11, x11, x3"),
Q!(" adcs " "x10, x10, x2"),
Q!(" adc " "x11, x11, xzr"),
Q!(" adds " "x8, x8, x12"),
Q!(" adcs " "x9, x9, x13"),
Q!(" adcs " "x10, x10, x14"),
Q!(" adcs " "x11, x11, x7"),
Q!(" cset " "x2, cs"),
Q!(" mov " "x3, #0xffffffff"),
Q!(" mov " "x5, #0xffffffff00000001"),
Q!(" adds " "x12, x8, #0x1"),
Q!(" sbcs " "x13, x9, x3"),
Q!(" sbcs " "x14, x10, xzr"),
Q!(" sbcs " "x7, x11, x5"),
Q!(" sbcs " "xzr, x2, xzr"),
Q!(" csel " "x8, x8, x12, cc"),
Q!(" csel " "x9, x9, x13, cc"),
Q!(" csel " "x10, x10, x14, cc"),
Q!(" csel " "x11, x11, x7, cc"),
Q!(" stp " "x8, x9, [sp]"),
Q!(" stp " "x10, x11, [sp, #16]"),
Q!(" ldp " "x3, x4, [sp, #96]"),
Q!(" ldp " "x7, x8, [x16]"),
Q!(" mul " "x12, x3, x7"),
Q!(" umulh " "x13, x3, x7"),
Q!(" mul " "x11, x3, x8"),
Q!(" umulh " "x14, x3, x8"),
Q!(" adds " "x13, x13, x11"),
Q!(" ldp " "x9, x10, [x16, #16]"),
Q!(" mul " "x11, x3, x9"),
Q!(" umulh " "x0, x3, x9"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x3, x10"),
Q!(" umulh " "x1, x3, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x1, x1, xzr"),
Q!(" ldp " "x5, x6, [sp, #112]"),
Q!(" mul " "x11, x4, x7"),
Q!(" adds " "x13, x13, x11"),
Q!(" mul " "x11, x4, x8"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x4, x9"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x4, x10"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x3, x4, x10"),
Q!(" adc " "x3, x3, xzr"),
Q!(" umulh " "x11, x4, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" umulh " "x11, x4, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" umulh " "x11, x4, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" adc " "x3, x3, xzr"),
Q!(" mul " "x11, x5, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" mul " "x11, x5, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x5, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x5, x10"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x4, x5, x10"),
Q!(" adc " "x4, x4, xzr"),
Q!(" umulh " "x11, x5, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" umulh " "x11, x5, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x11, x5, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" adc " "x4, x4, xzr"),
Q!(" mul " "x11, x6, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" mul " "x11, x6, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x6, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mul " "x11, x6, x10"),
Q!(" adcs " "x4, x4, x11"),
Q!(" umulh " "x5, x6, x10"),
Q!(" adc " "x5, x5, xzr"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" adds " "x13, x13, x12, lsl #32"),
Q!(" lsr " "x11, x12, #32"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x12, x10"),
Q!(" umulh " "x12, x12, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x12, x12, xzr"),
Q!(" umulh " "x11, x6, x7"),
Q!(" adds " "x1, x1, x11"),
Q!(" umulh " "x11, x6, x8"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x11, x6, x9"),
Q!(" adcs " "x4, x4, x11"),
Q!(" adc " "x5, x5, xzr"),
Q!(" adds " "x14, x14, x13, lsl #32"),
Q!(" lsr " "x11, x13, #32"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x13, x10"),
Q!(" umulh " "x13, x13, x10"),
Q!(" adcs " "x12, x12, x11"),
Q!(" adc " "x13, x13, xzr"),
Q!(" adds " "x0, x0, x14, lsl #32"),
Q!(" lsr " "x11, x14, #32"),
Q!(" adcs " "x12, x12, x11"),
Q!(" mul " "x11, x14, x10"),
Q!(" umulh " "x14, x14, x10"),
Q!(" adcs " "x13, x13, x11"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x12, x12, x0, lsl #32"),
Q!(" lsr " "x11, x0, #32"),
Q!(" adcs " "x13, x13, x11"),
Q!(" mul " "x11, x0, x10"),
Q!(" umulh " "x0, x0, x10"),
Q!(" adcs " "x14, x14, x11"),
Q!(" adc " "x0, x0, xzr"),
Q!(" adds " "x12, x12, x1"),
Q!(" adcs " "x13, x13, x3"),
Q!(" adcs " "x14, x14, x4"),
Q!(" adcs " "x0, x0, x5"),
Q!(" cset " "x8, cs"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" adds " "x1, x12, #0x1"),
Q!(" sbcs " "x3, x13, x11"),
Q!(" sbcs " "x4, x14, xzr"),
Q!(" sbcs " "x5, x0, x10"),
Q!(" sbcs " "xzr, x8, xzr"),
Q!(" csel " "x12, x12, x1, cc"),
Q!(" csel " "x13, x13, x3, cc"),
Q!(" csel " "x14, x14, x4, cc"),
Q!(" csel " "x0, x0, x5, cc"),
Q!(" stp " "x12, x13, [sp, #128]"),
Q!(" stp " "x14, x0, [sp, #144]"),
Q!(" ldp " "x3, x4, [sp, #96]"),
Q!(" ldp " "x7, x8, [sp, #64]"),
Q!(" mul " "x12, x3, x7"),
Q!(" umulh " "x13, x3, x7"),
Q!(" mul " "x11, x3, x8"),
Q!(" umulh " "x14, x3, x8"),
Q!(" adds " "x13, x13, x11"),
Q!(" ldp " "x9, x10, [sp, #80]"),
Q!(" mul " "x11, x3, x9"),
Q!(" umulh " "x0, x3, x9"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x3, x10"),
Q!(" umulh " "x1, x3, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x1, x1, xzr"),
Q!(" ldp " "x5, x6, [sp, #112]"),
Q!(" mul " "x11, x4, x7"),
Q!(" adds " "x13, x13, x11"),
Q!(" mul " "x11, x4, x8"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x4, x9"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x4, x10"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x3, x4, x10"),
Q!(" adc " "x3, x3, xzr"),
Q!(" umulh " "x11, x4, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" umulh " "x11, x4, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" umulh " "x11, x4, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" adc " "x3, x3, xzr"),
Q!(" mul " "x11, x5, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" mul " "x11, x5, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x5, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x5, x10"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x4, x5, x10"),
Q!(" adc " "x4, x4, xzr"),
Q!(" umulh " "x11, x5, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" umulh " "x11, x5, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x11, x5, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" adc " "x4, x4, xzr"),
Q!(" mul " "x11, x6, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" mul " "x11, x6, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x6, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mul " "x11, x6, x10"),
Q!(" adcs " "x4, x4, x11"),
Q!(" umulh " "x5, x6, x10"),
Q!(" adc " "x5, x5, xzr"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" adds " "x13, x13, x12, lsl #32"),
Q!(" lsr " "x11, x12, #32"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x12, x10"),
Q!(" umulh " "x12, x12, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x12, x12, xzr"),
Q!(" umulh " "x11, x6, x7"),
Q!(" adds " "x1, x1, x11"),
Q!(" umulh " "x11, x6, x8"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x11, x6, x9"),
Q!(" adcs " "x4, x4, x11"),
Q!(" adc " "x5, x5, xzr"),
Q!(" adds " "x14, x14, x13, lsl #32"),
Q!(" lsr " "x11, x13, #32"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x13, x10"),
Q!(" umulh " "x13, x13, x10"),
Q!(" adcs " "x12, x12, x11"),
Q!(" adc " "x13, x13, xzr"),
Q!(" adds " "x0, x0, x14, lsl #32"),
Q!(" lsr " "x11, x14, #32"),
Q!(" adcs " "x12, x12, x11"),
Q!(" mul " "x11, x14, x10"),
Q!(" umulh " "x14, x14, x10"),
Q!(" adcs " "x13, x13, x11"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x12, x12, x0, lsl #32"),
Q!(" lsr " "x11, x0, #32"),
Q!(" adcs " "x13, x13, x11"),
Q!(" mul " "x11, x0, x10"),
Q!(" umulh " "x0, x0, x10"),
Q!(" adcs " "x14, x14, x11"),
Q!(" adc " "x0, x0, xzr"),
Q!(" adds " "x12, x12, x1"),
Q!(" adcs " "x13, x13, x3"),
Q!(" adcs " "x14, x14, x4"),
Q!(" adcs " "x0, x0, x5"),
Q!(" cset " "x8, cs"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" adds " "x1, x12, #0x1"),
Q!(" sbcs " "x3, x13, x11"),
Q!(" sbcs " "x4, x14, xzr"),
Q!(" sbcs " "x5, x0, x10"),
Q!(" sbcs " "xzr, x8, xzr"),
Q!(" csel " "x12, x12, x1, cc"),
Q!(" csel " "x13, x13, x3, cc"),
Q!(" csel " "x14, x14, x4, cc"),
Q!(" csel " "x0, x0, x5, cc"),
Q!(" stp " "x12, x13, [sp, #64]"),
Q!(" stp " "x14, x0, [sp, #80]"),
Q!(" ldp " "x5, x6, [sp]"),
Q!(" ldp " "x4, x3, [sp, #128]"),
Q!(" subs " "x5, x5, x4"),
Q!(" sbcs " "x6, x6, x3"),
Q!(" ldp " "x7, x8, [sp, #16]"),
Q!(" ldp " "x4, x3, [sp, #144]"),
Q!(" sbcs " "x7, x7, x4"),
Q!(" sbcs " "x8, x8, x3"),
Q!(" csetm " "x3, cc"),
Q!(" adds " "x5, x5, x3"),
Q!(" mov " "x4, #0xffffffff"),
Q!(" and " "x4, x4, x3"),
Q!(" adcs " "x6, x6, x4"),
Q!(" adcs " "x7, x7, xzr"),
Q!(" mov " "x4, #0xffffffff00000001"),
Q!(" and " "x4, x4, x3"),
Q!(" adc " "x8, x8, x4"),
Q!(" stp " "x5, x6, [sp]"),
Q!(" stp " "x7, x8, [sp, #16]"),
Q!(" ldp " "x5, x6, [sp, #64]"),
Q!(" ldp " "x4, x3, [sp, #128]"),
Q!(" subs " "x5, x5, x4"),
Q!(" sbcs " "x6, x6, x3"),
Q!(" ldp " "x7, x8, [sp, #80]"),
Q!(" ldp " "x4, x3, [sp, #144]"),
Q!(" sbcs " "x7, x7, x4"),
Q!(" sbcs " "x8, x8, x3"),
Q!(" csetm " "x3, cc"),
Q!(" adds " "x5, x5, x3"),
Q!(" mov " "x4, #0xffffffff"),
Q!(" and " "x4, x4, x3"),
Q!(" adcs " "x6, x6, x4"),
Q!(" adcs " "x7, x7, xzr"),
Q!(" mov " "x4, #0xffffffff00000001"),
Q!(" and " "x4, x4, x3"),
Q!(" adc " "x8, x8, x4"),
Q!(" stp " "x5, x6, [sp, #96]"),
Q!(" stp " "x7, x8, [sp, #112]"),
Q!(" ldp " "x3, x4, [sp, #160]"),
Q!(" ldp " "x7, x8, [x16, #64]"),
Q!(" mul " "x12, x3, x7"),
Q!(" umulh " "x13, x3, x7"),
Q!(" mul " "x11, x3, x8"),
Q!(" umulh " "x14, x3, x8"),
Q!(" adds " "x13, x13, x11"),
Q!(" ldp " "x9, x10, [x16, #80]"),
Q!(" mul " "x11, x3, x9"),
Q!(" umulh " "x0, x3, x9"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x3, x10"),
Q!(" umulh " "x1, x3, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x1, x1, xzr"),
Q!(" ldp " "x5, x6, [sp, #176]"),
Q!(" mul " "x11, x4, x7"),
Q!(" adds " "x13, x13, x11"),
Q!(" mul " "x11, x4, x8"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x4, x9"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x4, x10"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x3, x4, x10"),
Q!(" adc " "x3, x3, xzr"),
Q!(" umulh " "x11, x4, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" umulh " "x11, x4, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" umulh " "x11, x4, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" adc " "x3, x3, xzr"),
Q!(" mul " "x11, x5, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" mul " "x11, x5, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x5, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x5, x10"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x4, x5, x10"),
Q!(" adc " "x4, x4, xzr"),
Q!(" umulh " "x11, x5, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" umulh " "x11, x5, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x11, x5, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" adc " "x4, x4, xzr"),
Q!(" mul " "x11, x6, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" mul " "x11, x6, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x6, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mul " "x11, x6, x10"),
Q!(" adcs " "x4, x4, x11"),
Q!(" umulh " "x5, x6, x10"),
Q!(" adc " "x5, x5, xzr"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" adds " "x13, x13, x12, lsl #32"),
Q!(" lsr " "x11, x12, #32"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x12, x10"),
Q!(" umulh " "x12, x12, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x12, x12, xzr"),
Q!(" umulh " "x11, x6, x7"),
Q!(" adds " "x1, x1, x11"),
Q!(" umulh " "x11, x6, x8"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x11, x6, x9"),
Q!(" adcs " "x4, x4, x11"),
Q!(" adc " "x5, x5, xzr"),
Q!(" adds " "x14, x14, x13, lsl #32"),
Q!(" lsr " "x11, x13, #32"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x13, x10"),
Q!(" umulh " "x13, x13, x10"),
Q!(" adcs " "x12, x12, x11"),
Q!(" adc " "x13, x13, xzr"),
Q!(" adds " "x0, x0, x14, lsl #32"),
Q!(" lsr " "x11, x14, #32"),
Q!(" adcs " "x12, x12, x11"),
Q!(" mul " "x11, x14, x10"),
Q!(" umulh " "x14, x14, x10"),
Q!(" adcs " "x13, x13, x11"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x12, x12, x0, lsl #32"),
Q!(" lsr " "x11, x0, #32"),
Q!(" adcs " "x13, x13, x11"),
Q!(" mul " "x11, x0, x10"),
Q!(" umulh " "x0, x0, x10"),
Q!(" adcs " "x14, x14, x11"),
Q!(" adc " "x0, x0, xzr"),
Q!(" adds " "x12, x12, x1"),
Q!(" adcs " "x13, x13, x3"),
Q!(" adcs " "x14, x14, x4"),
Q!(" adcs " "x0, x0, x5"),
Q!(" cset " "x8, cs"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" adds " "x1, x12, #0x1"),
Q!(" sbcs " "x3, x13, x11"),
Q!(" sbcs " "x4, x14, xzr"),
Q!(" sbcs " "x5, x0, x10"),
Q!(" sbcs " "xzr, x8, xzr"),
Q!(" csel " "x12, x12, x1, cc"),
Q!(" csel " "x13, x13, x3, cc"),
Q!(" csel " "x14, x14, x4, cc"),
Q!(" csel " "x0, x0, x5, cc"),
Q!(" stp " "x12, x13, [sp, #160]"),
Q!(" stp " "x14, x0, [sp, #176]"),
Q!(" ldp " "x5, x6, [sp]"),
Q!(" ldp " "x4, x3, [sp, #64]"),
Q!(" subs " "x5, x5, x4"),
Q!(" sbcs " "x6, x6, x3"),
Q!(" ldp " "x7, x8, [sp, #16]"),
Q!(" ldp " "x4, x3, [sp, #80]"),
Q!(" sbcs " "x7, x7, x4"),
Q!(" sbcs " "x8, x8, x3"),
Q!(" csetm " "x3, cc"),
Q!(" adds " "x5, x5, x3"),
Q!(" mov " "x4, #0xffffffff"),
Q!(" and " "x4, x4, x3"),
Q!(" adcs " "x6, x6, x4"),
Q!(" adcs " "x7, x7, xzr"),
Q!(" mov " "x4, #0xffffffff00000001"),
Q!(" and " "x4, x4, x3"),
Q!(" adc " "x8, x8, x4"),
Q!(" stp " "x5, x6, [sp]"),
Q!(" stp " "x7, x8, [sp, #16]"),
Q!(" ldp " "x5, x6, [sp, #128]"),
Q!(" ldp " "x4, x3, [sp]"),
Q!(" subs " "x5, x5, x4"),
Q!(" sbcs " "x6, x6, x3"),
Q!(" ldp " "x7, x8, [sp, #144]"),
Q!(" ldp " "x4, x3, [sp, #16]"),
Q!(" sbcs " "x7, x7, x4"),
Q!(" sbcs " "x8, x8, x3"),
Q!(" csetm " "x3, cc"),
Q!(" adds " "x5, x5, x3"),
Q!(" mov " "x4, #0xffffffff"),
Q!(" and " "x4, x4, x3"),
Q!(" adcs " "x6, x6, x4"),
Q!(" adcs " "x7, x7, xzr"),
Q!(" mov " "x4, #0xffffffff00000001"),
Q!(" and " "x4, x4, x3"),
Q!(" adc " "x8, x8, x4"),
Q!(" stp " "x5, x6, [sp, #128]"),
Q!(" stp " "x7, x8, [sp, #144]"),
Q!(" ldp " "x3, x4, [sp, #96]"),
Q!(" ldp " "x7, x8, [x16, #32]"),
Q!(" mul " "x12, x3, x7"),
Q!(" umulh " "x13, x3, x7"),
Q!(" mul " "x11, x3, x8"),
Q!(" umulh " "x14, x3, x8"),
Q!(" adds " "x13, x13, x11"),
Q!(" ldp " "x9, x10, [x16, #48]"),
Q!(" mul " "x11, x3, x9"),
Q!(" umulh " "x0, x3, x9"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x3, x10"),
Q!(" umulh " "x1, x3, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x1, x1, xzr"),
Q!(" ldp " "x5, x6, [sp, #112]"),
Q!(" mul " "x11, x4, x7"),
Q!(" adds " "x13, x13, x11"),
Q!(" mul " "x11, x4, x8"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x4, x9"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x4, x10"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x3, x4, x10"),
Q!(" adc " "x3, x3, xzr"),
Q!(" umulh " "x11, x4, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" umulh " "x11, x4, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" umulh " "x11, x4, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" adc " "x3, x3, xzr"),
Q!(" mul " "x11, x5, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" mul " "x11, x5, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x5, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x5, x10"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x4, x5, x10"),
Q!(" adc " "x4, x4, xzr"),
Q!(" umulh " "x11, x5, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" umulh " "x11, x5, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x11, x5, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" adc " "x4, x4, xzr"),
Q!(" mul " "x11, x6, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" mul " "x11, x6, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x6, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mul " "x11, x6, x10"),
Q!(" adcs " "x4, x4, x11"),
Q!(" umulh " "x5, x6, x10"),
Q!(" adc " "x5, x5, xzr"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" adds " "x13, x13, x12, lsl #32"),
Q!(" lsr " "x11, x12, #32"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x12, x10"),
Q!(" umulh " "x12, x12, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x12, x12, xzr"),
Q!(" umulh " "x11, x6, x7"),
Q!(" adds " "x1, x1, x11"),
Q!(" umulh " "x11, x6, x8"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x11, x6, x9"),
Q!(" adcs " "x4, x4, x11"),
Q!(" adc " "x5, x5, xzr"),
Q!(" adds " "x14, x14, x13, lsl #32"),
Q!(" lsr " "x11, x13, #32"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x13, x10"),
Q!(" umulh " "x13, x13, x10"),
Q!(" adcs " "x12, x12, x11"),
Q!(" adc " "x13, x13, xzr"),
Q!(" adds " "x0, x0, x14, lsl #32"),
Q!(" lsr " "x11, x14, #32"),
Q!(" adcs " "x12, x12, x11"),
Q!(" mul " "x11, x14, x10"),
Q!(" umulh " "x14, x14, x10"),
Q!(" adcs " "x13, x13, x11"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x12, x12, x0, lsl #32"),
Q!(" lsr " "x11, x0, #32"),
Q!(" adcs " "x13, x13, x11"),
Q!(" mul " "x11, x0, x10"),
Q!(" umulh " "x0, x0, x10"),
Q!(" adcs " "x14, x14, x11"),
Q!(" adc " "x0, x0, xzr"),
Q!(" adds " "x12, x12, x1"),
Q!(" adcs " "x13, x13, x3"),
Q!(" adcs " "x14, x14, x4"),
Q!(" adcs " "x0, x0, x5"),
Q!(" cset " "x8, cs"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" adds " "x1, x12, #0x1"),
Q!(" sbcs " "x3, x13, x11"),
Q!(" sbcs " "x4, x14, xzr"),
Q!(" sbcs " "x5, x0, x10"),
Q!(" sbcs " "xzr, x8, xzr"),
Q!(" csel " "x12, x12, x1, cc"),
Q!(" csel " "x13, x13, x3, cc"),
Q!(" csel " "x14, x14, x4, cc"),
Q!(" csel " "x0, x0, x5, cc"),
Q!(" stp " "x12, x13, [sp, #96]"),
Q!(" stp " "x14, x0, [sp, #112]"),
Q!(" ldp " "x3, x4, [sp, #32]"),
Q!(" ldp " "x7, x8, [sp, #128]"),
Q!(" mul " "x12, x3, x7"),
Q!(" umulh " "x13, x3, x7"),
Q!(" mul " "x11, x3, x8"),
Q!(" umulh " "x14, x3, x8"),
Q!(" adds " "x13, x13, x11"),
Q!(" ldp " "x9, x10, [sp, #144]"),
Q!(" mul " "x11, x3, x9"),
Q!(" umulh " "x0, x3, x9"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x3, x10"),
Q!(" umulh " "x1, x3, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x1, x1, xzr"),
Q!(" ldp " "x5, x6, [sp, #48]"),
Q!(" mul " "x11, x4, x7"),
Q!(" adds " "x13, x13, x11"),
Q!(" mul " "x11, x4, x8"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x4, x9"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x4, x10"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x3, x4, x10"),
Q!(" adc " "x3, x3, xzr"),
Q!(" umulh " "x11, x4, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" umulh " "x11, x4, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" umulh " "x11, x4, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" adc " "x3, x3, xzr"),
Q!(" mul " "x11, x5, x7"),
Q!(" adds " "x14, x14, x11"),
Q!(" mul " "x11, x5, x8"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x5, x9"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x5, x10"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x4, x5, x10"),
Q!(" adc " "x4, x4, xzr"),
Q!(" umulh " "x11, x5, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" umulh " "x11, x5, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" umulh " "x11, x5, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" adc " "x4, x4, xzr"),
Q!(" mul " "x11, x6, x7"),
Q!(" adds " "x0, x0, x11"),
Q!(" mul " "x11, x6, x8"),
Q!(" adcs " "x1, x1, x11"),
Q!(" mul " "x11, x6, x9"),
Q!(" adcs " "x3, x3, x11"),
Q!(" mul " "x11, x6, x10"),
Q!(" adcs " "x4, x4, x11"),
Q!(" umulh " "x5, x6, x10"),
Q!(" adc " "x5, x5, xzr"),
Q!(" mov " "x10, #0xffffffff00000001"),
Q!(" adds " "x13, x13, x12, lsl #32"),
Q!(" lsr " "x11, x12, #32"),
Q!(" adcs " "x14, x14, x11"),
Q!(" mul " "x11, x12, x10"),
Q!(" umulh " "x12, x12, x10"),
Q!(" adcs " "x0, x0, x11"),
Q!(" adc " "x12, x12, xzr"),
Q!(" umulh " "x11, x6, x7"),
Q!(" adds " "x1, x1, x11"),
Q!(" umulh " "x11, x6, x8"),
Q!(" adcs " "x3, x3, x11"),
Q!(" umulh " "x11, x6, x9"),
Q!(" adcs " "x4, x4, x11"),
Q!(" adc " "x5, x5, xzr"),
Q!(" adds " "x14, x14, x13, lsl #32"),
Q!(" lsr " "x11, x13, #32"),
Q!(" adcs " "x0, x0, x11"),
Q!(" mul " "x11, x13, x10"),
Q!(" umulh " "x13, x13, x10"),
Q!(" adcs " "x12, x12, x11"),
Q!(" adc " "x13, x13, xzr"),
Q!(" adds " "x0, x0, x14, lsl #32"),
Q!(" lsr " "x11, x14, #32"),
Q!(" adcs " "x12, x12, x11"),
Q!(" mul " "x11, x14, x10"),
Q!(" umulh " "x14, x14, x10"),
Q!(" adcs " "x13, x13, x11"),
Q!(" adc " "x14, x14, xzr"),
Q!(" adds " "x12, x12, x0, lsl #32"),
Q!(" lsr " "x11, x0, #32"),
Q!(" adcs " "x13, x13, x11"),
Q!(" mul " "x11, x0, x10"),
Q!(" umulh " "x0, x0, x10"),
Q!(" adcs " "x14, x14, x11"),
Q!(" adc " "x0, x0, xzr"),
Q!(" adds " "x12, x12, x1"),
Q!(" adcs " "x13, x13, x3"),
Q!(" adcs " "x14, x14, x4"),
Q!(" adcs " "x0, x0, x5"),
Q!(" cset " "x8, cs"),
Q!(" mov " "x11, #0xffffffff"),
Q!(" adds " "x1, x12, #0x1"),
Q!(" sbcs " "x3, x13, x11"),
Q!(" sbcs " "x4, x14, xzr"),
Q!(" sbcs " "x5, x0, x10"),
Q!(" sbcs " "xzr, x8, xzr"),
Q!(" csel " "x12, x12, x1, cc"),
Q!(" csel " "x13, x13, x3, cc"),
Q!(" csel " "x14, x14, x4, cc"),
Q!(" csel " "x0, x0, x5, cc"),
Q!(" stp " "x12, x13, [sp, #128]"),
Q!(" stp " "x14, x0, [sp, #144]"),
Q!(" ldp " "x5, x6, [sp, #128]"),
Q!(" ldp " "x4, x3, [sp, #96]"),
Q!(" subs " "x5, x5, x4"),
Q!(" sbcs " "x6, x6, x3"),
Q!(" ldp " "x7, x8, [sp, #144]"),
Q!(" ldp " "x4, x3, [sp, #112]"),
Q!(" sbcs " "x7, x7, x4"),
Q!(" sbcs " "x8, x8, x3"),
Q!(" csetm " "x3, cc"),
Q!(" adds " "x5, x5, x3"),
Q!(" mov " "x4, #0xffffffff"),
Q!(" and " "x4, x4, x3"),
Q!(" adcs " "x6, x6, x4"),
Q!(" adcs " "x7, x7, xzr"),
Q!(" mov " "x4, #0xffffffff00000001"),
Q!(" and " "x4, x4, x3"),
Q!(" adc " "x8, x8, x4"),
Q!(" stp " "x5, x6, [sp, #128]"),
Q!(" stp " "x7, x8, [sp, #144]"),
Q!(" ldp " "x0, x1, [x16, #64]"),
Q!(" ldp " "x2, x3, [x16, #80]"),
Q!(" orr " "x4, x0, x1"),
Q!(" orr " "x5, x2, x3"),
Q!(" orr " "x4, x4, x5"),
Q!(" cmp " "x4, xzr"),
Q!(" ldp " "x0, x1, [sp]"),
Q!(" ldp " "x12, x13, [x17]"),
Q!(" csel " "x0, x0, x12, ne"),
Q!(" csel " "x1, x1, x13, ne"),
Q!(" ldp " "x2, x3, [sp, #16]"),
Q!(" ldp " "x12, x13, [x17, #16]"),
Q!(" csel " "x2, x2, x12, ne"),
Q!(" csel " "x3, x3, x13, ne"),
Q!(" ldp " "x4, x5, [sp, #128]"),
Q!(" ldp " "x12, x13, [x17, #32]"),
Q!(" csel " "x4, x4, x12, ne"),
Q!(" csel " "x5, x5, x13, ne"),
Q!(" ldp " "x6, x7, [sp, #144]"),
Q!(" ldp " "x12, x13, [x17, #48]"),
Q!(" csel " "x6, x6, x12, ne"),
Q!(" csel " "x7, x7, x13, ne"),
Q!(" ldp " "x8, x9, [sp, #160]"),
Q!(" mov " "x12, #0x1"),
Q!(" mov " "x13, #0xffffffff00000000"),
Q!(" csel " "x8, x8, x12, ne"),
Q!(" csel " "x9, x9, x13, ne"),
Q!(" ldp " "x10, x11, [sp, #176]"),
Q!(" mov " "x12, #0xffffffffffffffff"),
Q!(" mov " "x13, #0xfffffffe"),
Q!(" csel " "x10, x10, x12, ne"),
Q!(" csel " "x11, x11, x13, ne"),
Q!(" stp " "x0, x1, [x15]"),
Q!(" stp " "x2, x3, [x15, #16]"),
Q!(" stp " "x4, x5, [x15, #32]"),
Q!(" stp " "x6, x7, [x15, #48]"),
Q!(" stp " "x8, x9, [x15, #64]"),
Q!(" stp " "x10, x11, [x15, #80]"),
Q!(" add " "sp, sp, # (192 + 0)"),
Q!(" ret " ),
Q!(Label!("hoist_finish", 9) ":"),
inout("x0") res.as_mut_ptr() => _,
inout("x1") scalar.as_ptr() => _,
inout("x2") 6u64 => _,
inout("x3") table.as_ptr() => _,
out("x10") _,
out("x11") _,
out("x12") _,
out("x13") _,
out("x14") _,
out("x15") _,
out("x16") _,
out("x17") _,
out("x20") _,
out("x21") _,
out("x22") _,
out("x23") _,
out("x24") _,
out("x25") _,
out("x30") _,
out("x4") _,
out("x5") _,
out("x6") _,
out("x7") _,
out("x8") _,
out("x9") _,
)
};
}