// Copyright (c) 2026 Petr Balvín (https://petrbalvin.org) // SPDX-License-Identifier: BSD-3-Clause // Differential kernel for the loong64 register-pair spellings: a top-level // colon between two registers splits the operand in two with the halves // swapped, so R4:R5 encodes exactly as R5, R4. The integer multiply and // divide families, the FP pair and the vector pair, each the way // GOARCH=loong64 go tool asm takes them. #include "textflag.h" TEXT ·pairs(SB), NOSPLIT, $0-0 MULV R4 : R5, R6 MULV R4 : R5 MULV R6, R4 : R5 DIVV R4 : R5, R6 DIVVU R4 : R5, R6 MULHV R4 : R5, R6 MULHVU R4 : R5, R6 ADDV R4 : R5, R6 ADDW R4 : R5, R6 AND R4 : R5, R6 OR R4 : R5, R6 XOR R4 : R5, R6 MOVV R4 : R5 MULD F4 : F5, F6 VADDW V1 : V2, V3 RET