vunsigned_arm64.s 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. // +build !noasm !appengine
  2. // Code generated by asm2asm, DO NOT EDIT.
  3. #include "go_asm.h"
  4. #include "funcdata.h"
  5. #include "textflag.h"
  6. TEXT ·__vunsigned_entry__(SB), NOSPLIT, $16
  7. NO_LOCAL_POINTERS
  8. WORD $0x100000a0 // adr x0, .+20
  9. MOVD R0, ret(FP)
  10. RET
  11. // .p2align 2, 0x00
  12. _vunsigned:
  13. WORD $0xd10083ff // sub sp, sp, #32
  14. WORD $0xa900fbfd // stp fp, lr, [sp, #8]
  15. WORD $0xa93ffbfd // stp fp, lr, [sp, #-8]
  16. WORD $0xd10023fd // sub fp, sp, #8
  17. WORD $0xf9400028 // ldr x8, [x1]
  18. WORD $0xa940240a // ldp x10, x9, [x0]
  19. WORD $0x5280012b // mov w11, #9
  20. WORD $0xa900fc5f // stp xzr, xzr, [x2, #8]
  21. WORD $0xf900004b // str x11, [x2]
  22. WORD $0xf940002b // ldr x11, [x1]
  23. WORD $0xf9000c4b // str x11, [x2, #24]
  24. WORD $0xeb09011f // cmp x8, x9
  25. WORD $0x54000162 // b.hs LBB0_3 $44(%rip)
  26. WORD $0x8b08014b // add x11, x10, x8
  27. WORD $0x3940016c // ldrb w12, [x11]
  28. WORD $0x7100b59f // cmp w12, #45
  29. WORD $0x540001a1 // b.ne LBB0_4 $52(%rip)
  30. LBB0_2:
  31. WORD $0xf9000028 // str x8, [x1]
  32. WORD $0x928000a8 // mov x8, #-6
  33. WORD $0xf9000048 // str x8, [x2]
  34. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  35. WORD $0x910083ff // add sp, sp, #32
  36. WORD $0xd65f03c0 // ret
  37. LBB0_3:
  38. WORD $0xf9000029 // str x9, [x1]
  39. WORD $0x92800008 // mov x8, #-1
  40. WORD $0xf9000048 // str x8, [x2]
  41. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  42. WORD $0x910083ff // add sp, sp, #32
  43. WORD $0xd65f03c0 // ret
  44. LBB0_4:
  45. WORD $0x5100e98d // sub w13, w12, #58
  46. WORD $0x31002dbf // cmn w13, #11
  47. WORD $0x540000e8 // b.hi LBB0_6 $28(%rip)
  48. WORD $0xf9000028 // str x8, [x1]
  49. WORD $0x92800028 // mov x8, #-2
  50. WORD $0xf9000048 // str x8, [x2]
  51. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  52. WORD $0x910083ff // add sp, sp, #32
  53. WORD $0xd65f03c0 // ret
  54. LBB0_6:
  55. WORD $0x7100c19f // cmp w12, #48
  56. WORD $0x54000161 // b.ne LBB0_8 $44(%rip)
  57. WORD $0x3940056b // ldrb w11, [x11, #1]
  58. WORD $0x5100b96b // sub w11, w11, #46
  59. WORD $0x7100dd7f // cmp w11, #55
  60. WORD $0x5280002c // mov w12, #1
  61. WORD $0x9acb218b // lsl x11, x12, x11
  62. WORD $0xb20903ec // mov x12, #36028797027352576
  63. WORD $0xf280002c // movk x12, #1
  64. WORD $0x8a0c016b // and x11, x11, x12
  65. WORD $0xfa409964 // ccmp x11, #0, #4, ls
  66. WORD $0x540005a0 // b.eq LBB0_21 $180(%rip)
  67. LBB0_8:
  68. WORD $0xd280000b // mov x11, #0
  69. WORD $0xeb08013f // cmp x9, x8
  70. WORD $0x9a88812c // csel x12, x9, x8, hi
  71. WORD $0x5280014d // mov w13, #10
  72. LBB0_9:
  73. WORD $0xeb08019f // cmp x12, x8
  74. WORD $0x54000440 // b.eq LBB0_20 $136(%rip)
  75. WORD $0x3868694e // ldrb w14, [x10, x8]
  76. WORD $0x5100c1ce // sub w14, w14, #48
  77. WORD $0x710025df // cmp w14, #9
  78. WORD $0x54000288 // b.hi LBB0_15 $80(%rip)
  79. WORD $0x9bcd7d6f // umulh x15, x11, x13
  80. WORD $0xeb0f03ff // cmp xzr, x15
  81. WORD $0x54000141 // b.ne LBB0_14 $40(%rip)
  82. WORD $0x8b0b096b // add x11, x11, x11, lsl #2
  83. WORD $0xd37ff96b // lsl x11, x11, #1
  84. WORD $0x91000508 // add x8, x8, #1
  85. WORD $0xab2e016b // adds x11, x11, w14, uxtb
  86. WORD $0x1a9f37ef // cset w15, hs
  87. WORD $0x934001ee // sbfx x14, x15, #0, #1
  88. WORD $0xca0f01cf // eor x15, x14, x15
  89. WORD $0xb500004f // cbnz x15, LBB0_14 $8(%rip)
  90. WORD $0xb6fffdee // tbz x14, #63, LBB0_9 $-68(%rip)
  91. LBB0_14:
  92. WORD $0xd1000508 // sub x8, x8, #1
  93. WORD $0xf9000028 // str x8, [x1]
  94. WORD $0x92800088 // mov x8, #-5
  95. WORD $0xf9000048 // str x8, [x2]
  96. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  97. WORD $0x910083ff // add sp, sp, #32
  98. WORD $0xd65f03c0 // ret
  99. LBB0_15:
  100. WORD $0xeb09011f // cmp x8, x9
  101. WORD $0x54000102 // b.hs LBB0_19 $32(%rip)
  102. WORD $0x38686949 // ldrb w9, [x10, x8]
  103. WORD $0x7100b93f // cmp w9, #46
  104. WORD $0x54fff7c0 // b.eq LBB0_2 $-264(%rip)
  105. WORD $0x7101153f // cmp w9, #69
  106. WORD $0x54fff780 // b.eq LBB0_2 $-272(%rip)
  107. WORD $0x7101953f // cmp w9, #101
  108. WORD $0x54fff740 // b.eq LBB0_2 $-280(%rip)
  109. LBB0_19:
  110. WORD $0xaa0803ec // mov x12, x8
  111. LBB0_20:
  112. WORD $0xf900002c // str x12, [x1]
  113. WORD $0xf900084b // str x11, [x2, #16]
  114. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  115. WORD $0x910083ff // add sp, sp, #32
  116. WORD $0xd65f03c0 // ret
  117. LBB0_21:
  118. WORD $0x91000508 // add x8, x8, #1
  119. WORD $0xf9000028 // str x8, [x1]
  120. WORD $0xa940fbfd // ldp fp, lr, [sp, #8]
  121. WORD $0x910083ff // add sp, sp, #32
  122. WORD $0xd65f03c0 // ret
  123. // .p2align 2, 0x00
  124. _MASK_USE_NUMBER:
  125. WORD $0x00000002 // .long 2
  126. TEXT ·__vunsigned(SB), NOSPLIT, $0-24
  127. NO_LOCAL_POINTERS
  128. _entry:
  129. MOVD 16(g), R16
  130. SUB $96, RSP, R17
  131. CMP R16, R17
  132. BLS _stack_grow
  133. _vunsigned:
  134. MOVD s+0(FP), R0
  135. MOVD p+8(FP), R1
  136. MOVD v+16(FP), R2
  137. MOVD ·_subr__vunsigned(SB), R11
  138. WORD $0x1000005e // adr x30, .+8
  139. JMP (R11)
  140. RET
  141. _stack_grow:
  142. MOVD R30, R3
  143. CALL runtime·morestack_noctxt<>(SB)
  144. JMP _entry