86e2789960
* update github.com/PuerkitoBio/goquery * update github.com/alecthomas/chroma * update github.com/blevesearch/bleve/v2 * update github.com/caddyserver/certmagic * update github.com/go-enry/go-enry/v2 * update github.com/go-git/go-billy/v5 * update github.com/go-git/go-git/v5 * update github.com/go-redis/redis/v8 * update github.com/go-testfixtures/testfixtures/v3 * update github.com/jaytaylor/html2text * update github.com/json-iterator/go * update github.com/klauspost/compress * update github.com/markbates/goth * update github.com/mattn/go-isatty * update github.com/mholt/archiver/v3 * update github.com/microcosm-cc/bluemonday * update github.com/minio/minio-go/v7 * update github.com/prometheus/client_golang * update github.com/unrolled/render * update github.com/xanzy/go-gitlab * update github.com/yuin/goldmark * update github.com/yuin/goldmark-highlighting Co-authored-by: techknowlogick <techknowlogick@gitea.io>
43 lines
1.1 KiB
ArmAsm
Vendored
43 lines
1.1 KiB
ArmAsm
Vendored
// Copyright (c) 2020 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
//go:build arm64 && gc && !purego
|
|
// +build arm64,gc,!purego
|
|
|
|
#include "textflag.h"
|
|
|
|
// carryPropagate works exactly like carryPropagateGeneric and uses the
|
|
// same AND, ADD, and LSR+MADD instructions emitted by the compiler, but
|
|
// avoids loading R0-R4 twice and uses LDP and STP.
|
|
//
|
|
// See https://golang.org/issues/43145 for the main compiler issue.
|
|
//
|
|
// func carryPropagate(v *Element)
|
|
TEXT ·carryPropagate(SB),NOFRAME|NOSPLIT,$0-8
|
|
MOVD v+0(FP), R20
|
|
|
|
LDP 0(R20), (R0, R1)
|
|
LDP 16(R20), (R2, R3)
|
|
MOVD 32(R20), R4
|
|
|
|
AND $0x7ffffffffffff, R0, R10
|
|
AND $0x7ffffffffffff, R1, R11
|
|
AND $0x7ffffffffffff, R2, R12
|
|
AND $0x7ffffffffffff, R3, R13
|
|
AND $0x7ffffffffffff, R4, R14
|
|
|
|
ADD R0>>51, R11, R11
|
|
ADD R1>>51, R12, R12
|
|
ADD R2>>51, R13, R13
|
|
ADD R3>>51, R14, R14
|
|
// R4>>51 * 19 + R10 -> R10
|
|
LSR $51, R4, R21
|
|
MOVD $19, R22
|
|
MADD R22, R10, R21, R10
|
|
|
|
STP (R10, R11), 0(R20)
|
|
STP (R12, R13), 16(R20)
|
|
MOVD R14, 32(R20)
|
|
|
|
RET
|