diff options
Diffstat (limited to 'src/cmd/asm/internal/asm/testdata/loong64enc1.s')
-rw-r--r-- | src/cmd/asm/internal/asm/testdata/loong64enc1.s | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/src/cmd/asm/internal/asm/testdata/loong64enc1.s b/src/cmd/asm/internal/asm/testdata/loong64enc1.s new file mode 100644 index 0000000..83bb6ec --- /dev/null +++ b/src/cmd/asm/internal/asm/testdata/loong64enc1.s @@ -0,0 +1,220 @@ +// 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 "../../../../../runtime/textflag.h" + +TEXT asmtest(SB),DUPOK|NOSPLIT,$0 +lable1: + BFPT 1(PC) // 00050048 + BFPT lable1 // BFPT 2 //1ffdff4b + +lable2: + BFPF 1(PC) // 00040048 + BFPF lable2 // BFPF 4 // 1ffcff4b + + JMP foo(SB) // 00100050 + JMP (R4) // 8000004c + JMP 1(PC) // 00040058 + MOVW $65536, R4 // 04020014 + MOVW $4096, R4 // 24000014 + MOVV $65536, R4 // 04020014 + MOVV $4096, R4 // 24000014 + MOVW R4, R5 // 85001700 + MOVV R4, R5 // 85001500 + MOVBU R4, R5 // 85fc4303 + SUB R4, R5, R6 // a6101100 + SUBV R4, R5, R6 // a6901100 + ADD R4, R5, R6 // a6101000 + ADDV R4, R5, R6 // a6901000 + AND R4, R5, R6 // a6901400 + SUB R4, R5 // a5101100 + SUBV R4, R5 // a5901100 + ADD R4, R5 // a5101000 + ADDV R4, R5 // a5901000 + AND R4, R5 // a5901400 + NEGW R4, R5 // 05101100 + NEGV R4, R5 // 05901100 + SLL R4, R5 // a5101700 + SLL R4, R5, R6 // a6101700 + SRL R4, R5 // a5901700 + SRL R4, R5, R6 // a6901700 + SRA R4, R5 // a5101800 + SRA R4, R5, R6 // a6101800 + ROTR R4, R5 // a5101b00 + ROTR R4, R5, R6 // a6101b00 + SLLV R4, R5 // a5901800 + SLLV R4, R5, R6 // a6901800 + ROTRV R4, R5 // a5901b00 + ROTRV R4, R5, R6 // a6901b00 + CLO R4, R5 // 85100000 + CLZ R4, R5 // 85140000 + ADDF F4, F5 // a5900001 + ADDF F4, R5, F6 // a6900001 + CMPEQF F4, R5 // a010120c + ABSF F4, F5 // 85041401 + MOVVF F4, F5 // 85181d01 + MOVF F4, F5 // 85941401 + MOVD F4, F5 // 85981401 + MOVW R4, result+16(FP) // 64608029 + MOVWU R4, result+16(FP) // 64608029 + MOVV R4, result+16(FP) // 6460c029 + MOVB R4, result+16(FP) // 64600029 + MOVBU R4, result+16(FP) // 64600029 + MOVWL R4, result+16(FP) // 6460002f + MOVVL R4, result+16(FP) // 6460802f + MOVW R4, 1(R5) // a4048029 + MOVWU R4, 1(R5) // a4048029 + MOVV R4, 1(R5) // a404c029 + MOVB R4, 1(R5) // a4040029 + MOVBU R4, 1(R5) // a4040029 + MOVWL R4, 1(R5) // a404002f + MOVVL R4, 1(R5) // a404802f + SC R4, 1(R5) // a4040021 + SCV R4, 1(R5) // a4040023 + MOVW y+8(FP), R4 // 64408028 + MOVWU y+8(FP), R4 // 6440802a + MOVV y+8(FP), R4 // 6440c028 + MOVB y+8(FP), R4 // 64400028 + MOVBU y+8(FP), R4 // 6440002a + MOVWL y+8(FP), R4 // 6440002e + MOVVL y+8(FP), R4 // 6440802e + MOVW 1(R5), R4 // a4048028 + MOVWU 1(R5), R4 // a404802a + MOVV 1(R5), R4 // a404c028 + MOVB 1(R5), R4 // a4040028 + MOVBU 1(R5), R4 // a404002a + MOVWL 1(R5), R4 // a404002e + MOVVL 1(R5), R4 // a404802e + LL 1(R5), R4 // a4040020 + LLV 1(R5), R4 // a4040022 + MOVW $4(R4), R5 // 8510c002 + MOVV $4(R4), R5 // 8510c002 + MOVW $-1, R4 // 04fcff02 + MOVV $-1, R4 // 04fcff02 + MOVW $1, R4 // 0404c002 + MOVV $1, R4 // 0404c002 + ADD $-1, R4, R5 // 85fcbf02 + ADD $-1, R4 // 84fcbf02 + ADDV $-1, R4, R5 // 85fcff02 + ADDV $-1, R4 // 84fcff02 + AND $1, R4, R5 // 85044003 + AND $1, R4 // 84044003 + SLL $4, R4, R5 // 85904000 + SLL $4, R4 // 84904000 + SRL $4, R4, R5 // 85904400 + SRL $4, R4 // 84904400 + SRA $4, R4, R5 // 85904800 + SRA $4, R4 // 84904800 + ROTR $4, R4, R5 // 85904c00 + ROTR $4, R4 // 84904c00 + SLLV $4, R4, R5 // 85104100 + SLLV $4, R4 // 84104100 + ROTRV $4, R4, R5 // 85104d00 + ROTRV $4, R4 // 84104d00 + SYSCALL // 00002b00 + BEQ R4, R5, 1(PC) // 85040058 + BEQ R4, 1(PC) // 80040058 + BLTU R4, 1(PC) // 80040068 + MOVW y+8(FP), F4 // 6440002b + MOVF y+8(FP), F4 // 6440002b + MOVD y+8(FP), F4 // 6440802b + MOVW 1(F5), F4 // a404002b + MOVF 1(F5), F4 // a404002b + MOVD 1(F5), F4 // a404802b + MOVW F4, result+16(FP) // 6460402b + MOVF F4, result+16(FP) // 6460402b + MOVD F4, result+16(FP) // 6460c02b + MOVW F4, 1(F5) // a404402b + MOVF F4, 1(F5) // a404402b + MOVD F4, 1(F5) // a404c02b + MOVW R4, F5 // 85a41401 + MOVW F4, R5 // 85b41401 + MOVV R4, F5 // 85a81401 + MOVV F4, R5 // 85b81401 + WORD $74565 // 45230100 + BREAK R4, result+16(FP) // 64600006 + BREAK R4, 1(R5) // a4040006 + BREAK // 00002a00 + UNDEF // 00002a00 + + // mul + MUL R4, R5 // a5101c00 + MUL R4, R5, R6 // a6101c00 + MULV R4, R5 // a5901d00 + MULV R4, R5, R6 // a6901d00 + MULVU R4, R5 // a5901d00 + MULVU R4, R5, R6 // a6901d00 + MULHV R4, R5 // a5101e00 + MULHV R4, R5, R6 // a6101e00 + MULHVU R4, R5 // a5901e00 + MULHVU R4, R5, R6 // a6901e00 + REMV R4, R5 // a5902200 + REMV R4, R5, R6 // a6902200 + REMVU R4, R5 // a5902300 + REMVU R4, R5, R6 // a6902300 + DIVV R4, R5 // a5102200 + DIVV R4, R5, R6 // a6102200 + DIVVU R4, R5 // a5102300 + DIVVU R4, R5, R6 // a6102300 + + MOVH R4, result+16(FP) // 64604029 + MOVH R4, 1(R5) // a4044029 + MOVH y+8(FP), R4 // 64404028 + MOVH 1(R5), R4 // a4044028 + MOVHU R4, R5 // 8500cf00 + MOVHU R4, result+16(FP) // 64604029 + MOVHU R4, 1(R5) // a4044029 + MOVHU y+8(FP), R4 // 6440402a + MOVHU 1(R5), R4 // a404402a + MULU R4, R5 // a5101c00 + MULU R4, R5, R6 // a6101c00 + MULH R4, R5 // a5901c00 + MULH R4, R5, R6 // a6901c00 + MULHU R4, R5 // a5101d00 + MULHU R4, R5, R6 // a6101d00 + REM R4, R5 // a5902000 + REM R4, R5, R6 // a6902000 + REMU R4, R5 // a5902100 + REMU R4, R5, R6 // a6902100 + DIV R4, R5 // a5102000 + DIV R4, R5, R6 // a6102000 + DIVU R4, R5 // a5102100 + DIVU R4, R5, R6 // a6102100 + SRLV R4, R5 // a5101900 + SRLV R4, R5, R6 // a6101900 + SRLV $4, R4, R5 // 85104500 + SRLV $4, R4 // 84104500 + SRLV $32, R4, R5 // 85804500 + SRLV $32, R4 // 84804500 + + MASKEQZ R4, R5, R6 // a6101300 + MASKNEZ R4, R5, R6 // a6901300 + + MOVFD F4, F5 // 85241901 + MOVDF F4, F5 // 85181901 + MOVWF F4, F5 // 85101d01 + MOVFW F4, F5 // 85041b01 + MOVWD F4, F5 // 85201d01 + MOVDW F4, F5 // 85081b01 + NEGF F4, F5 // 85141401 + NEGD F4, F5 // 85181401 + ABSD F4, F5 // 85081401 + TRUNCDW F4, F5 // 85881a01 + TRUNCFW F4, F5 // 85841a01 + SQRTF F4, F5 // 85441401 + SQRTD F4, F5 // 85481401 + + DBAR // 00007238 + NOOP // 00004003 + + MOVWR R4, result+16(FP) // 6460402f + MOVWR R4, 1(R5) // a404402f + MOVWR y+8(FP), R4 // 6440402e + MOVWR 1(R5), R4 // a404402e + + CMPGTF F4, R5 // a090110c + CMPGTD F4, R5 // a090210c + CMPGEF F4, R5 // a090130c + CMPGED F4, R5 // a090230c + CMPEQD F4, R5 // a010220c |