Skip to content

Instantly share code, notes, and snippets.

@playXE
Created April 1, 2022 14:02
Show Gist options
  • Save playXE/f2c1a456f4c1c292907c91ad26efd7d1 to your computer and use it in GitHub Desktop.
Save playXE/f2c1a456f4c1c292907c91ad26efd7d1 to your computer and use it in GitHub Desktop.
waffle::val::fadd:
sub sp, sp, #64
stp x22, x21, [sp, #16]
stp x20, x19, [sp, #32]
stp x29, x30, [sp, #48]
add x29, sp, #48
mov x20, x1
mov x19, x0
mov x21, #2
movk x21, #65534, lsl, #48
stp x0, x1, [sp]
mov x8, #-562949953421312
cmp x0, x8
b.lo LBB42_8
cmp x20, x8
b.lo LBB42_8
mov x8, x19
tst x20, x21
b.ne LBB42_6
add x8, x20, #8
mov w9, #-1
ldadd w9, w9, [x8]
mov x8, x19
cmp w9, #1
b.ne LBB42_6
dmb ishld
add x0, sp, #8
bl __ZN6waffle2mm15Handle$LT$T$GT$9drop_slow17h4d321a63be9c41c3E
ldr x8, [sp]
LBB42_6:
add w9, w20, w19
sxtw x9, w9
orr x19, x9, #0xfffe000000000000
tst x8, x21
b.eq LBB42_15
LBB42_7:
mov x0, x19
ldp x29, x30, [sp, #48]
ldp x20, x19, [sp, #32]
ldp x22, x21, [sp, #16]
add sp, sp, #64
ret
LBB42_8:
tst x20, x21
b.ne LBB42_12
add x8, x20, #8
mov w9, #-1
ldadd w9, w8, [x8]
cmp w8, #1
b.ne LBB42_12
dmb ishld
add x0, sp, #8
bl __ZN6waffle2mm15Handle$LT$T$GT$9drop_slow17h4d321a63be9c41c3E
ldr x19, [sp]
LBB42_12:
tst x19, x21
b.eq LBB42_14
mov w19, #2
mov x0, x19
ldp x29, x30, [sp, #48]
ldp x20, x19, [sp, #32]
ldp x22, x21, [sp, #16]
add sp, sp, #64
ret
LBB42_14:
add x8, x19, #8
mov w9, #-1
ldadd w9, w8, [x8]
mov w19, #2
cmp w8, #1
b.ne LBB42_7
b LBB42_16
LBB42_15:
add x8, x8, #8
mov w9, #-1
ldadd w9, w8, [x8]
cmp w8, #1
b.ne LBB42_7
LBB42_16:
dmb ishld
mov x0, sp
bl __ZN6waffle2mm15Handle$LT$T$GT$9drop_slow17h4d321a63be9c41c3E
mov x0, x19
ldp x29, x30, [sp, #48]
ldp x20, x19, [sp, #32]
ldp x22, x21, [sp, #16]
add sp, sp, #64
ret
LBB42_17:
mov x19, x0
mov x0, sp
bl __ZN4core3ptr39drop_in_place$LT$waffle..val..Value$GT$17h68fa1b774c7e5ed9E
mov x0, x19
bl __Unwind_Resume
LBB42_19:
bl __ZN4core9panicking15panic_no_unwind17h89fde12744c671a5E
waffle::value::fadd:
sub sp, sp, #64
stp x20, x19, [sp, #32]
stp x29, x30, [sp, #48]
add x29, sp, #48
ldr q0, [x0]
ldr q1, [x1]
stp q0, q1, [sp]
ldrb w9, [sp]
ldrb w10, [sp, #16]
cmp w9, #1
ccmp w10, #1, #0, eq
b.eq LBB51_2
mov w9, #0
b LBB51_3
LBB51_2:
ldr w9, [sp, #8]
ldr w10, [sp, #24]
add w9, w10, w9
str w9, [x8, #8]
mov w9, #1
LBB51_3:
strb w9, [x8]
mov x19, sp
mov x0, sp
bl __ZN4core3ptr41drop_in_place$LT$waffle..value..Value$GT$17h77048d2180a61fe9E
add x0, x19, #16
bl __ZN4core3ptr41drop_in_place$LT$waffle..value..Value$GT$17h77048d2180a61fe9E
ldp x29, x30, [sp, #48]
ldp x20, x19, [sp, #32]
add sp, sp, #64
ret
LBB51_5:
mov x8, sp
mov x19, x0
add x0, x8, #16
bl __ZN4core3ptr41drop_in_place$LT$waffle..value..Value$GT$17h77048d2180a61fe9E
mov x0, x19
bl __Unwind_Resume
LBB51_7:
bl __ZN4core9panicking15panic_no_unwind17h89fde12744c671a5E
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment