mirror of
https://github.com/golang/go
synced 2024-11-23 10:30:03 -07:00
go, math, os, reflect: support standard library for loong64
Contributors to the loong64 port are: Weining Lu <luweining@loongson.cn> Lei Wang <wanglei@loongson.cn> Lingqin Gong <gonglingqin@loongson.cn> Xiaolin Zhao <zhaoxiaolin@loongson.cn> Meidan Li <limeidan@loongson.cn> Xiaojuan Zhai <zhaixiaojuan@loongson.cn> Qiyuan Pu <puqiyuan@loongson.cn> Guoqi Chen <chenguoqi@loongson.cn> This port has been updated to Go 1.15.6: https://github.com/loongson/go Updates #46229 Change-Id: I2ad9ed01fc913b90e75023ac0fa70de87a9f5de1 Reviewed-on: https://go-review.googlesource.com/c/go/+/342324 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
parent
ae3ee9a7ec
commit
1371339530
@ -17,6 +17,7 @@ var gccgoArchSizes = map[string]*StdSizes{
|
||||
"arm64": {8, 8},
|
||||
"arm64be": {8, 8},
|
||||
"ia64": {8, 8},
|
||||
"loong64": {8, 8},
|
||||
"m68k": {4, 2},
|
||||
"mips": {4, 8},
|
||||
"mipsle": {4, 8},
|
||||
|
34
src/math/big/arith_loong64.s
Normal file
34
src/math/big/arith_loong64.s
Normal file
@ -0,0 +1,34 @@
|
||||
// Copyright 2022 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.
|
||||
|
||||
// +build !math_big_pure_go,loong64
|
||||
|
||||
#include "textflag.h"
|
||||
|
||||
// This file provides fast assembly versions for the elementary
|
||||
// arithmetic operations on vectors implemented in arith.go.
|
||||
|
||||
TEXT ·addVV(SB),NOSPLIT,$0
|
||||
JMP ·addVV_g(SB)
|
||||
|
||||
TEXT ·subVV(SB),NOSPLIT,$0
|
||||
JMP ·subVV_g(SB)
|
||||
|
||||
TEXT ·addVW(SB),NOSPLIT,$0
|
||||
JMP ·addVW_g(SB)
|
||||
|
||||
TEXT ·subVW(SB),NOSPLIT,$0
|
||||
JMP ·subVW_g(SB)
|
||||
|
||||
TEXT ·shlVU(SB),NOSPLIT,$0
|
||||
JMP ·shlVU_g(SB)
|
||||
|
||||
TEXT ·shrVU(SB),NOSPLIT,$0
|
||||
JMP ·shrVU_g(SB)
|
||||
|
||||
TEXT ·mulAddVWW(SB),NOSPLIT,$0
|
||||
JMP ·mulAddVWW_g(SB)
|
||||
|
||||
TEXT ·addMulVVW(SB),NOSPLIT,$0
|
||||
JMP ·addMulVVW_g(SB)
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
//
|
||||
//go:build 386 || amd64 || arm || arm64 || ppc64le || mips64le || mipsle || riscv64 || wasm
|
||||
//go:build 386 || amd64 || arm || arm64 || loong64 || ppc64le || mips64le || mipsle || riscv64 || wasm
|
||||
|
||||
package os
|
||||
|
||||
|
40
src/reflect/asm_loong64.s
Normal file
40
src/reflect/asm_loong64.s
Normal file
@ -0,0 +1,40 @@
|
||||
// Copyright 2022 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.
|
||||
|
||||
#include "textflag.h"
|
||||
#include "funcdata.h"
|
||||
|
||||
#define REGCTXT R29
|
||||
|
||||
// makeFuncStub is the code half of the function returned by MakeFunc.
|
||||
// See the comment on the declaration of makeFuncStub in makefunc.go
|
||||
// for more details.
|
||||
// No arg size here, runtime pulls arg map out of the func value.
|
||||
TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$40
|
||||
NO_LOCAL_POINTERS
|
||||
MOVV REGCTXT, 8(R3)
|
||||
MOVV $argframe+0(FP), R19
|
||||
MOVV R19, 16(R3)
|
||||
MOVB R0, 40(R3)
|
||||
ADDV $40, R3, R19
|
||||
MOVV R19, 24(R3)
|
||||
MOVV R0, 32(R3)
|
||||
JAL ·callReflect(SB)
|
||||
RET
|
||||
|
||||
// methodValueCall is the code half of the function returned by makeMethodValue.
|
||||
// See the comment on the declaration of methodValueCall in makefunc.go
|
||||
// for more details.
|
||||
// No arg size here; runtime pulls arg map out of the func value.
|
||||
TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$40
|
||||
NO_LOCAL_POINTERS
|
||||
MOVV REGCTXT, 8(R3)
|
||||
MOVV $argframe+0(FP), R19
|
||||
MOVV R19, 16(R3)
|
||||
MOVB R0, 40(R3)
|
||||
ADDV $40, R3, R19
|
||||
MOVV R19, 24(R3)
|
||||
MOVV R0, 32(R3)
|
||||
JAL ·callMethod(SB)
|
||||
RET
|
Loading…
Reference in New Issue
Block a user