vsigned_arm64.s raw

   1  // +build !noasm !appengine
   2  // Code generated by asm2asm, DO NOT EDIT.
   3  
   4  #include "go_asm.h"
   5  #include "funcdata.h"
   6  #include "textflag.h"
   7  
   8  TEXT ·__vsigned_entry__(SB), NOSPLIT, $16
   9  	NO_LOCAL_POINTERS
  10  	WORD $0x100000a0 // adr x0, .+20
  11  	MOVD R0, ret(FP)
  12  	RET
  13  	  // .p2align 2, 0x00
  14  _vsigned:
  15  	WORD $0xd10083ff  // sub	sp, sp, #32
  16  	WORD $0xa900fbfd  // stp	fp, lr, [sp, #8]
  17  	WORD $0xa93ffbfd  // stp	fp, lr, [sp, #-8]
  18  	WORD $0xd10023fd  // sub	fp, sp, #8
  19  	WORD $0xf9400028  // ldr	x8, [x1]
  20  	WORD $0xa940240a  // ldp	x10, x9, [x0]
  21  	WORD $0x5280012b  // mov	w11, #9
  22  	WORD $0xa900fc5f  // stp	xzr, xzr, [x2, #8]
  23  	WORD $0xf900004b  // str	x11, [x2]
  24  	WORD $0xf940002b  // ldr	x11, [x1]
  25  	WORD $0xf9000c4b  // str	x11, [x2, #24]
  26  	WORD $0xeb09011f  // cmp	x8, x9
  27  	WORD $0x54000642  // b.hs	LBB0_12 $200(%rip)
  28  	WORD $0x3868694c  // ldrb	w12, [x10, x8]
  29  	WORD $0x7100b59f  // cmp	w12, #45
  30  	WORD $0x540006a1  // b.ne	LBB0_13 $212(%rip)
  31  	WORD $0x91000508  // add	x8, x8, #1
  32  	WORD $0xeb09011f  // cmp	x8, x9
  33  	WORD $0x54000582  // b.hs	LBB0_12 $176(%rip)
  34  	WORD $0x3868694c  // ldrb	w12, [x10, x8]
  35  	WORD $0x9280000b  // mov	x11, #-1
  36  	WORD $0x5100e98d  // sub	w13, w12, #58
  37  	WORD $0x31002dbf  // cmn	w13, #11
  38  	WORD $0x54000629  // b.ls	LBB0_14 $196(%rip)
  39  LBB0_4:
  40  	WORD $0x7100c19f  // cmp	w12, #48
  41  	WORD $0x54000181  // b.ne	LBB0_6 $48(%rip)
  42  	WORD $0x8b08014c  // add	x12, x10, x8
  43  	WORD $0x3940058c  // ldrb	w12, [x12, #1]
  44  	WORD $0x5100b98c  // sub	w12, w12, #46
  45  	WORD $0x7100dd9f  // cmp	w12, #55
  46  	WORD $0x5280002d  // mov	w13, #1
  47  	WORD $0x9acc21ac  // lsl	x12, x13, x12
  48  	WORD $0xb20903ed  // mov	x13, #36028797027352576
  49  	WORD $0xf280002d  // movk	x13, #1
  50  	WORD $0x8a0d018c  // and	x12, x12, x13
  51  	WORD $0xfa409984  // ccmp	x12, #0, #4, ls
  52  	WORD $0x540007e0  // b.eq	LBB0_22 $252(%rip)
  53  LBB0_6:
  54  	WORD $0xd280000c  // mov	x12, #0
  55  	WORD $0x5280014d  // mov	w13, #10
  56  LBB0_7:
  57  	WORD $0xeb08013f  // cmp	x9, x8
  58  	WORD $0x540006c0  // b.eq	LBB0_21 $216(%rip)
  59  	WORD $0x3868694e  // ldrb	w14, [x10, x8]
  60  	WORD $0x5100c1ce  // sub	w14, w14, #48
  61  	WORD $0x710025df  // cmp	w14, #9
  62  	WORD $0x54000448  // b.hi	LBB0_15 $136(%rip)
  63  	WORD $0x9b4d7d8f  // smulh	x15, x12, x13
  64  	WORD $0x8b0c098c  // add	x12, x12, x12, lsl #2
  65  	WORD $0xd37ff98c  // lsl	x12, x12, #1
  66  	WORD $0xeb8cfdff  // cmp	x15, x12, asr #63
  67  	WORD $0x540000c1  // b.ne	LBB0_11 $24(%rip)
  68  	WORD $0x91000508  // add	x8, x8, #1
  69  	WORD $0x92401dce  // and	x14, x14, #0xff
  70  	WORD $0x9b2e7d6e  // smull	x14, w11, w14
  71  	WORD $0xab0e018c  // adds	x12, x12, x14
  72  	WORD $0x54fffe27  // b.vc	LBB0_7 $-60(%rip)
  73  LBB0_11:
  74  	WORD $0xd1000508  // sub	x8, x8, #1
  75  	WORD $0xf9000028  // str	x8, [x1]
  76  	WORD $0x92800088  // mov	x8, #-5
  77  	WORD $0xf9000048  // str	x8, [x2]
  78  	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
  79  	WORD $0x910083ff  // add	sp, sp, #32
  80  	WORD $0xd65f03c0  // ret
  81  LBB0_12:
  82  	WORD $0xf9000029  // str	x9, [x1]
  83  	WORD $0x92800008  // mov	x8, #-1
  84  	WORD $0xf9000048  // str	x8, [x2]
  85  	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
  86  	WORD $0x910083ff  // add	sp, sp, #32
  87  	WORD $0xd65f03c0  // ret
  88  LBB0_13:
  89  	WORD $0x5280002b  // mov	w11, #1
  90  	WORD $0x5100e98d  // sub	w13, w12, #58
  91  	WORD $0x31002dbf  // cmn	w13, #11
  92  	WORD $0x54fffa28  // b.hi	LBB0_4 $-188(%rip)
  93  LBB0_14:
  94  	WORD $0xf9000028  // str	x8, [x1]
  95  	WORD $0x92800028  // mov	x8, #-2
  96  	WORD $0xf9000048  // str	x8, [x2]
  97  	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
  98  	WORD $0x910083ff  // add	sp, sp, #32
  99  	WORD $0xd65f03c0  // ret
 100  LBB0_15:
 101  	WORD $0xeb09011f  // cmp	x8, x9
 102  	WORD $0x540001c2  // b.hs	LBB0_20 $56(%rip)
 103  	WORD $0x38686949  // ldrb	w9, [x10, x8]
 104  	WORD $0x7100b93f  // cmp	w9, #46
 105  	WORD $0x540000a0  // b.eq	LBB0_19 $20(%rip)
 106  	WORD $0x7101153f  // cmp	w9, #69
 107  	WORD $0x54000060  // b.eq	LBB0_19 $12(%rip)
 108  	WORD $0x7101953f  // cmp	w9, #101
 109  	WORD $0x540000e1  // b.ne	LBB0_20 $28(%rip)
 110  LBB0_19:
 111  	WORD $0xf9000028  // str	x8, [x1]
 112  	WORD $0x928000a8  // mov	x8, #-6
 113  	WORD $0xf9000048  // str	x8, [x2]
 114  	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
 115  	WORD $0x910083ff  // add	sp, sp, #32
 116  	WORD $0xd65f03c0  // ret
 117  LBB0_20:
 118  	WORD $0xaa0803e9  // mov	x9, x8
 119  LBB0_21:
 120  	WORD $0xf9000029  // str	x9, [x1]
 121  	WORD $0xf900084c  // str	x12, [x2, #16]
 122  	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
 123  	WORD $0x910083ff  // add	sp, sp, #32
 124  	WORD $0xd65f03c0  // ret
 125  LBB0_22:
 126  	WORD $0x91000508  // add	x8, x8, #1
 127  	WORD $0xf9000028  // str	x8, [x1]
 128  	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
 129  	WORD $0x910083ff  // add	sp, sp, #32
 130  	WORD $0xd65f03c0  // ret
 131  	  // .p2align 2, 0x00
 132  _MASK_USE_NUMBER:
 133  	WORD $0x00000002  // .long 2
 134  
 135  TEXT ·__vsigned(SB), NOSPLIT, $0-24
 136  	NO_LOCAL_POINTERS
 137  
 138  _entry:
 139  	MOVD 16(g), R16
 140  	SUB $96, RSP, R17
 141  	CMP  R16, R17
 142  	BLS  _stack_grow
 143  
 144  _vsigned:
 145  	MOVD s+0(FP), R0
 146  	MOVD p+8(FP), R1
 147  	MOVD v+16(FP), R2
 148  	MOVD ·_subr__vsigned(SB), R11
 149  	WORD $0x1000005e // adr x30, .+8
 150  	JMP (R11)
 151  	RET
 152  
 153  _stack_grow:
 154  	MOVD R30, R3
 155  	CALL runtime·morestack_noctxt<>(SB)
 156  	JMP  _entry
 157