Skip to content

Instantly share code, notes, and snippets.

@tgymnich
Last active December 1, 2021 17:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tgymnich/84f1cfed5038dff435c9cdb28ceb8f10 to your computer and use it in GitHub Desktop.
Save tgymnich/84f1cfed5038dff435c9cdb28ceb8f10 to your computer and use it in GitHub Desktop.
BitwiseRotate on M1 Max (Apple Swift version 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6))
_main:
mov w0, #0
ret
(extension in output):Swift.FixedWidthInteger.rotateLeft(Swift.Int) -> A:
adrp x3, _$ss17FixedWidthIntegerP3alloiyxx_xtFZTj@GOTPAGE
ldr x3, [x3, _$ss17FixedWidthIntegerP3alloiyxx_xtFZTj@GOTPAGEOFF]
adrp x4, _$ss17FixedWidthIntegerP3aggoiyxx_xtFZTj@GOTPAGE
ldr x4, [x4, _$ss17FixedWidthIntegerP3aggoiyxx_xtFZTj@GOTPAGEOFF]
b merged (extension in output):Swift.FixedWidthInteger.rotateLeft(Swift.Int) -> A
lazy protocol witness table accessor for type Swift.Int and conformance Swift.Int : Swift.BinaryInteger in Swift:
stp x29, x30, [sp, #-16]!
adrp x8, lazy protocol witness table cache variable for type Swift.Int and conformance Swift.Int : Swift.BinaryInteger in Swift@PAGE
ldr x0, [x8, lazy protocol witness table cache variable for type Swift.Int and conformance Swift.Int : Swift.BinaryInteger in Swift@PAGEOFF]
cbz x0, LBB2_2
ldp x29, x30, [sp], #16
ret
LBB2_2:
adrp x0, _$sSiSzsMc@GOTPAGE
ldr x0, [x0, _$sSiSzsMc@GOTPAGEOFF]
adrp x1, _$sSiN@GOTPAGE
ldr x1, [x1, _$sSiN@GOTPAGEOFF]
bl _swift_getWitnessTable
adrp x8, lazy protocol witness table cache variable for type Swift.Int and conformance Swift.Int : Swift.BinaryInteger in Swift@PAGE
add x8, x8, lazy protocol witness table cache variable for type Swift.Int and conformance Swift.Int : Swift.BinaryInteger in Swift@PAGEOFF
stlr x0, [x8]
ldp x29, x30, [sp], #16
ret
(extension in output):Swift.FixedWidthInteger.rotateRight(Swift.Int) -> A:
adrp x3, _$ss17FixedWidthIntegerP3aggoiyxx_xtFZTj@GOTPAGE
ldr x3, [x3, _$ss17FixedWidthIntegerP3aggoiyxx_xtFZTj@GOTPAGEOFF]
adrp x4, _$ss17FixedWidthIntegerP3alloiyxx_xtFZTj@GOTPAGE
ldr x4, [x4, _$ss17FixedWidthIntegerP3alloiyxx_xtFZTj@GOTPAGEOFF]
b merged (extension in output):Swift.FixedWidthInteger.rotateLeft(Swift.Int) -> A
merged (extension in output):Swift.FixedWidthInteger.rotateLeft(Swift.Int) -> A:
stp x28, x27, [sp, #-96]!
stp x26, x25, [sp, #16]
stp x24, x23, [sp, #32]
stp x22, x21, [sp, #48]
stp x20, x19, [sp, #64]
stp x29, x30, [sp, #80]
add x29, sp, #80
sub sp, sp, #80
mov x19, x1
ldur x21, [x1, #-8]
ldr x13, [x21, #64]
mov x9, x13
adrp x16, ___chkstk_darwin@GOTPAGE
ldr x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
blr x16
mov x9, sp
add x10, x13, #15
and x12, x10, #0xfffffffffffffff0
sub x14, x9, x12
mov sp, x14
mov x9, x13
adrp x16, ___chkstk_darwin@GOTPAGE
ldr x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
blr x16
mov x9, sp
sub x28, x9, x12
mov sp, x28
mov x9, x13
adrp x16, ___chkstk_darwin@GOTPAGE
ldr x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
blr x16
mov x9, sp
sub x15, x9, x12
mov sp, x15
mov x9, x13
adrp x16, ___chkstk_darwin@GOTPAGE
ldr x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
blr x16
mov x9, sp
sub x25, x9, x12
mov sp, x25
mov x9, x13
adrp x16, ___chkstk_darwin@GOTPAGE
ldr x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
blr x16
mov x9, sp
sub x22, x9, x12
mov sp, x22
cbz x0, LBB4_2
stp x8, x0, [x29, #-96]
ldr x23, [x2, #8]
stp x22, x4, [x29, #-112]
mov x27, x2
stp x3, x0, [x29, #-152]
stp x14, x15, [x29, #-128]
bl lazy protocol witness table accessor for type Swift.Int and conformance Swift.Int : Swift.BinaryInteger in Swift
mov x24, x0
adrp x1, _$sSiN@GOTPAGE
ldr x1, [x1, _$sSiN@GOTPAGEOFF]
sub x0, x29, #88
mov x8, x25
mov x2, x24
mov x26, x20
mov x20, x19
mov x3, x19
mov x4, x23
bl dispatch thunk of Swift.BinaryInteger.init<A where A1: Swift.BinaryInteger>(truncatingIfNeeded: A1) -> A
mov x8, x22
mov x0, x26
stur x26, [x29, #-136]
mov x1, x25
mov x2, x19
mov x3, x27
ldur x9, [x29, #-152]
blr x9
ldr x21, [x21, #8]
mov x0, x25
mov x1, x19
blr x21
mov x20, x26
mov x0, x19
mov x1, x23
bl dispatch thunk of Swift.BinaryInteger.bitWidth.getter : Swift.Int
stur x0, [x29, #-88]
sub x0, x29, #88
mov x8, x28
adrp x22, _$sSiN@GOTPAGE
ldr x22, [x22, _$sSiN@GOTPAGEOFF]
mov x1, x22
mov x2, x24
mov x20, x19
mov x3, x19
mov x4, x23
bl dispatch thunk of Swift.BinaryInteger.init<A where A1: Swift.BinaryInteger>(truncatingIfNeeded: A1) -> A
ldur x8, [x29, #-144]
stur x8, [x29, #-88]
sub x0, x29, #88
ldur x26, [x29, #-128]
mov x8, x26
mov x1, x22
mov x2, x24
mov x20, x19
mov x3, x19
mov x4, x23
bl dispatch thunk of Swift.BinaryInteger.init<A where A1: Swift.BinaryInteger>(truncatingIfNeeded: A1) -> A
ldur x22, [x29, #-120]
mov x0, x22
mov x1, x26
mov x20, x28
mov x2, x19
mov x3, x27
bl dispatch thunk of Swift.FixedWidthInteger.subtractingReportingOverflow(A) -> (partialValue: A, overflow: Swift.Bool)
mov x0, x28
mov x1, x19
blr x21
mov x0, x26
mov x1, x19
blr x21
mov x8, x25
ldur x0, [x29, #-136]
mov x1, x22
mov x20, x19
mov x2, x19
mov x3, x27
ldur x9, [x29, #-104]
blr x9
mov x0, x22
mov x1, x19
blr x21
ldur x8, [x29, #-96]
ldur x22, [x29, #-112]
mov x0, x22
mov x1, x25
mov x2, x19
mov x3, x23
bl dispatch thunk of static Swift.BinaryInteger.| infix(A, A) -> A
mov x0, x22
mov x1, x19
blr x21
mov x0, x25
mov x1, x19
blr x21
b LBB4_3
LBB4_2:
ldr x9, [x21, #16]
mov x0, x8
mov x1, x20
mov x2, x19
blr x9
LBB4_3:
sub sp, x29, #80
ldp x29, x30, [sp, #80]
ldp x20, x19, [sp, #64]
ldp x22, x21, [sp, #48]
ldp x24, x23, [sp, #32]
ldp x26, x25, [sp, #16]
ldp x28, x27, [sp], #96
ret
(extension in output):Swift.FixedWidthInteger.rotatedLeft(Swift.Int) -> ():
adrp x3, (extension in output):Swift.FixedWidthInteger.rotateLeft(Swift.Int) -> A@PAGE
add x3, x3, (extension in output):Swift.FixedWidthInteger.rotateLeft(Swift.Int) -> A@PAGEOFF
b merged (extension in output):Swift.FixedWidthInteger.rotatedLeft(Swift.Int) -> ()
(extension in output):Swift.FixedWidthInteger.rotatedRight(Swift.Int) -> ():
adrp x3, (extension in output):Swift.FixedWidthInteger.rotateRight(Swift.Int) -> A@PAGE
add x3, x3, (extension in output):Swift.FixedWidthInteger.rotateRight(Swift.Int) -> A@PAGEOFF
b merged (extension in output):Swift.FixedWidthInteger.rotatedLeft(Swift.Int) -> ()
merged (extension in output):Swift.FixedWidthInteger.rotatedLeft(Swift.Int) -> ():
stp x22, x21, [sp, #-48]!
stp x20, x19, [sp, #16]
stp x29, x30, [sp, #32]
add x29, sp, #32
mov x19, x1
ldur x22, [x1, #-8]
ldr x8, [x22, #64]
mov x9, x8
adrp x16, ___chkstk_darwin@GOTPAGE
ldr x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
blr x16
mov x9, sp
add x8, x8, #15
and x8, x8, #0xfffffffffffffff0
sub x21, x9, x8
mov sp, x21
mov x8, x21
blr x3
ldr x8, [x22, #40]
mov x0, x20
mov x1, x21
mov x2, x19
blr x8
sub sp, x29, #32
ldp x29, x30, [sp, #32]
ldp x20, x19, [sp, #16]
ldp x22, x21, [sp], #48
ret
static (extension in output):Swift.FixedWidthInteger.<<< infix(A, Swift.Int) -> A:
stp x20, x19, [sp, #-32]!
stp x29, x30, [sp, #16]
add x29, sp, #16
mov x20, x0
mov x0, x1
mov x1, x2
mov x2, x3
bl (extension in output):Swift.FixedWidthInteger.rotateLeft(Swift.Int) -> A
ldp x29, x30, [sp, #16]
ldp x20, x19, [sp], #32
ret
static (extension in output):Swift.FixedWidthInteger.>>> infix(A, Swift.Int) -> A:
stp x20, x19, [sp, #-32]!
stp x29, x30, [sp, #16]
add x29, sp, #16
mov x20, x0
mov x0, x1
mov x1, x2
mov x2, x3
bl (extension in output):Swift.FixedWidthInteger.rotateRight(Swift.Int) -> A
ldp x29, x30, [sp, #16]
ldp x20, x19, [sp], #32
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt>.rotateLeft(Swift.Int) -> Swift.UInt:
neg w8, w0
ror x0, x1, x8
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt>.rotateRight(Swift.Int) -> Swift.UInt:
ror x0, x1, x0
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt>.rotatedLeft(Swift.Int) -> ():
ldr x8, [x20]
neg w9, w0
ror x8, x8, x9
str x8, [x20]
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt>.rotatedRight(Swift.Int) -> ():
ldr x8, [x20]
ror x8, x8, x0
str x8, [x20]
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.UInt>.<<< infix(Swift.UInt, Swift.Int) -> Swift.UInt:
neg w8, w1
ror x0, x0, x8
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.UInt>.>>> infix(Swift.UInt, Swift.Int) -> Swift.UInt:
ror x0, x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt32>.rotateLeft(Swift.Int) -> Swift.UInt32:
cbz x0, LBB16_2
neg w8, w0
ror w0, w1, w8
ret
LBB16_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt32>.rotateRight(Swift.Int) -> Swift.UInt32:
cbz x0, LBB17_2
ror w0, w1, w0
ret
LBB17_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt32>.rotatedLeft(Swift.Int) -> ():
ldr w8, [x20]
neg w9, w0
ror w9, w8, w9
cmp x0, #0
csel w8, w8, w9, eq
str w8, [x20]
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt32>.rotatedRight(Swift.Int) -> ():
ldr w8, [x20]
ror w9, w8, w0
cmp x0, #0
csel w8, w8, w9, eq
str w8, [x20]
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.UInt32>.<<< infix(Swift.UInt32, Swift.Int) -> Swift.UInt32:
cbz x1, LBB20_2
neg w8, w1
ror w0, w0, w8
LBB20_2:
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.UInt32>.>>> infix(Swift.UInt32, Swift.Int) -> Swift.UInt32:
cbz x1, LBB21_2
ror w0, w0, w1
LBB21_2:
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt16>.rotateLeft(Swift.Int) -> Swift.UInt16:
cbz x0, LBB22_2
and w8, w0, #0xf
lsl w8, w1, w8
neg w9, w0
and w9, w9, #0xf
and w10, w1, #0xffff
lsr w9, w10, w9
orr w0, w8, w9
ret
LBB22_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt16>.rotateRight(Swift.Int) -> Swift.UInt16:
cbz x0, LBB23_2
and w8, w1, #0xffff
and w9, w0, #0xf
lsr w8, w8, w9
neg w9, w0
and w9, w9, #0xf
lsl w9, w1, w9
orr w0, w8, w9
ret
LBB23_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt16>.rotatedLeft(Swift.Int) -> ():
ldrh w8, [x20]
and w9, w0, #0xf
lsl w9, w8, w9
neg w10, w0
and w10, w10, #0xf
lsr w10, w8, w10
orr w9, w9, w10
cmp x0, #0
csel w8, w8, w9, eq
strh w8, [x20]
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt16>.rotatedRight(Swift.Int) -> ():
ldrh w8, [x20]
and w9, w0, #0xf
lsr w9, w8, w9
neg w10, w0
and w10, w10, #0xf
lsl w10, w8, w10
orr w9, w9, w10
cmp x0, #0
csel w8, w8, w9, eq
strh w8, [x20]
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.UInt16>.<<< infix(Swift.UInt16, Swift.Int) -> Swift.UInt16:
cbz x1, LBB26_2
and w8, w1, #0xf
lsl w8, w0, w8
neg w9, w1
and w9, w9, #0xf
and w10, w0, #0xffff
lsr w9, w10, w9
orr w0, w8, w9
LBB26_2:
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.UInt16>.>>> infix(Swift.UInt16, Swift.Int) -> Swift.UInt16:
cbz x1, LBB27_2
and w8, w0, #0xffff
and w9, w1, #0xf
lsr w8, w8, w9
neg w9, w1
and w9, w9, #0xf
lsl w9, w0, w9
orr w0, w8, w9
LBB27_2:
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt8>.rotateLeft(Swift.Int) -> Swift.UInt8:
cbz x0, LBB28_2
and w8, w0, #0x7
lsl w8, w1, w8
neg w9, w0
and w9, w9, #0x7
and w10, w1, #0xff
lsr w9, w10, w9
orr w0, w8, w9
ret
LBB28_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt8>.rotateRight(Swift.Int) -> Swift.UInt8:
cbz x0, LBB29_2
and w8, w1, #0xff
and w9, w0, #0x7
lsr w8, w8, w9
neg w9, w0
and w9, w9, #0x7
lsl w9, w1, w9
orr w0, w8, w9
ret
LBB29_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt8>.rotatedLeft(Swift.Int) -> ():
ldrb w8, [x20]
and w9, w0, #0x7
lsl w9, w8, w9
neg w10, w0
and w10, w10, #0x7
lsr w10, w8, w10
orr w9, w9, w10
cmp x0, #0
csel w8, w8, w9, eq
strb w8, [x20]
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.UInt8>.rotatedRight(Swift.Int) -> ():
ldrb w8, [x20]
and w9, w0, #0x7
lsr w9, w8, w9
neg w10, w0
and w10, w10, #0x7
lsl w10, w8, w10
orr w9, w9, w10
cmp x0, #0
csel w8, w8, w9, eq
strb w8, [x20]
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.UInt8>.<<< infix(Swift.UInt8, Swift.Int) -> Swift.UInt8:
cbz x1, LBB32_2
and w8, w1, #0x7
lsl w8, w0, w8
neg w9, w1
and w9, w9, #0x7
and w10, w0, #0xff
lsr w9, w10, w9
orr w0, w8, w9
LBB32_2:
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.UInt8>.>>> infix(Swift.UInt8, Swift.Int) -> Swift.UInt8:
cbz x1, LBB33_2
and w8, w0, #0xff
and w9, w1, #0x7
lsr w8, w8, w9
neg w9, w1
and w9, w9, #0x7
lsl w9, w0, w9
orr w0, w8, w9
LBB33_2:
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int>.rotateLeft(Swift.Int) -> Swift.Int:
neg w8, w0
ror x0, x1, x8
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int>.rotateRight(Swift.Int) -> Swift.Int:
ror x0, x1, x0
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int>.rotatedLeft(Swift.Int) -> ():
ldr x8, [x20]
neg w9, w0
ror x8, x8, x9
str x8, [x20]
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int>.rotatedRight(Swift.Int) -> ():
ldr x8, [x20]
ror x8, x8, x0
str x8, [x20]
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.Int>.<<< infix(Swift.Int, Swift.Int) -> Swift.Int:
neg w8, w1
ror x0, x0, x8
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.Int>.>>> infix(Swift.Int, Swift.Int) -> Swift.Int:
ror x0, x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int32>.rotateLeft(Swift.Int) -> Swift.Int32:
cbz x0, LBB40_2
neg w8, w0
ror w0, w1, w8
ret
LBB40_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int32>.rotateRight(Swift.Int) -> Swift.Int32:
cbz x0, LBB41_2
ror w0, w1, w0
ret
LBB41_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int32>.rotatedLeft(Swift.Int) -> ():
ldr w8, [x20]
neg w9, w0
ror w9, w8, w9
cmp x0, #0
csel w8, w8, w9, eq
str w8, [x20]
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int32>.rotatedRight(Swift.Int) -> ():
ldr w8, [x20]
ror w9, w8, w0
cmp x0, #0
csel w8, w8, w9, eq
str w8, [x20]
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.Int32>.<<< infix(Swift.Int32, Swift.Int) -> Swift.Int32:
cbz x1, LBB44_2
neg w8, w1
ror w0, w0, w8
LBB44_2:
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.Int32>.>>> infix(Swift.Int32, Swift.Int) -> Swift.Int32:
cbz x1, LBB45_2
ror w0, w0, w1
LBB45_2:
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int16>.rotateLeft(Swift.Int) -> Swift.Int16:
cbz x0, LBB46_2
and w8, w0, #0xf
lsl w8, w1, w8
neg w9, w0
and w9, w9, #0xf
and w10, w1, #0xffff
lsr w9, w10, w9
orr w0, w8, w9
ret
LBB46_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int16>.rotateRight(Swift.Int) -> Swift.Int16:
cbz x0, LBB47_2
and w8, w1, #0xffff
and w9, w0, #0xf
lsr w8, w8, w9
neg w9, w0
and w9, w9, #0xf
lsl w9, w1, w9
orr w0, w8, w9
ret
LBB47_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int16>.rotatedLeft(Swift.Int) -> ():
ldrh w8, [x20]
and w9, w0, #0xf
lsl w9, w8, w9
neg w10, w0
and w10, w10, #0xf
lsr w10, w8, w10
orr w9, w9, w10
cmp x0, #0
csel w8, w8, w9, eq
strh w8, [x20]
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int16>.rotatedRight(Swift.Int) -> ():
ldrh w8, [x20]
and w9, w0, #0xf
lsr w9, w8, w9
neg w10, w0
and w10, w10, #0xf
lsl w10, w8, w10
orr w9, w9, w10
cmp x0, #0
csel w8, w8, w9, eq
strh w8, [x20]
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.Int16>.<<< infix(Swift.Int16, Swift.Int) -> Swift.Int16:
cbz x1, LBB50_2
and w8, w1, #0xf
lsl w8, w0, w8
neg w9, w1
and w9, w9, #0xf
and w10, w0, #0xffff
lsr w9, w10, w9
orr w0, w8, w9
LBB50_2:
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.Int16>.>>> infix(Swift.Int16, Swift.Int) -> Swift.Int16:
cbz x1, LBB51_2
and w8, w0, #0xffff
and w9, w1, #0xf
lsr w8, w8, w9
neg w9, w1
and w9, w9, #0xf
lsl w9, w0, w9
orr w0, w8, w9
LBB51_2:
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int8>.rotateLeft(Swift.Int) -> Swift.Int8:
cbz x0, LBB52_2
and w8, w0, #0x7
lsl w8, w1, w8
neg w9, w0
and w9, w9, #0x7
and w10, w1, #0xff
lsr w9, w10, w9
orr w0, w8, w9
ret
LBB52_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int8>.rotateRight(Swift.Int) -> Swift.Int8:
cbz x0, LBB53_2
and w8, w1, #0xff
and w9, w0, #0x7
lsr w8, w8, w9
neg w9, w0
and w9, w9, #0x7
lsl w9, w1, w9
orr w0, w8, w9
ret
LBB53_2:
mov x0, x1
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int8>.rotatedLeft(Swift.Int) -> ():
ldrb w8, [x20]
and w9, w0, #0x7
lsl w9, w8, w9
neg w10, w0
and w10, w10, #0x7
lsr w10, w8, w10
orr w9, w9, w10
cmp x0, #0
csel w8, w8, w9, eq
strb w8, [x20]
ret
(extension in output):Swift.FixedWidthInteger< where A == Swift.Int8>.rotatedRight(Swift.Int) -> ():
ldrb w8, [x20]
and w9, w0, #0x7
lsr w9, w8, w9
neg w10, w0
and w10, w10, #0x7
lsl w10, w8, w10
orr w9, w9, w10
cmp x0, #0
csel w8, w8, w9, eq
strb w8, [x20]
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.Int8>.<<< infix(Swift.Int8, Swift.Int) -> Swift.Int8:
cbz x1, LBB56_2
and w8, w1, #0x7
lsl w8, w0, w8
neg w9, w1
and w9, w9, #0x7
and w10, w0, #0xff
lsr w9, w10, w9
orr w0, w8, w9
LBB56_2:
ret
static (extension in output):Swift.FixedWidthInteger< where A == Swift.Int8>.>>> infix(Swift.Int8, Swift.Int) -> Swift.Int8:
cbz x1, LBB57_2
and w8, w0, #0xff
and w9, w1, #0x7
lsr w8, w8, w9
neg w9, w1
and w9, w9, #0x7
lsl w9, w0, w9
orr w0, w8, w9
LBB57_2:
ret
lazy protocol witness table cache variable for type Swift.Int and conformance Swift.Int : Swift.BinaryInteger in Swift:
.quad 0
___swift_reflection_version:
.short 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment