215 lines
3.4 KiB
ArmAsm
215 lines
3.4 KiB
ArmAsm
// Differential kernel: the shift vector slice against the Go
|
|||
|
|
// toolchain's loong64enc1.s rows (gasm v. go tool asm, byte for byte).
|
||
|
|
|
||
|
|
#include "textflag.h"
|
||
|
|
|
||
|
|
TEXT ·VSLLB(SB), NOSPLIT, $0
|
||
|
|
VSLLB V1, V2, V3
|
||
|
|
VSLLB $0, V1, V2
|
||
|
|
VSLLB $7, V1, V2
|
||
|
|
VSLLB $5, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSLLH(SB), NOSPLIT, $0
|
||
|
|
VSLLH V1, V2, V3
|
||
|
|
VSLLH $0, V1, V2
|
||
|
|
VSLLH $15, V1, V2
|
||
|
|
VSLLH $10, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSLLW(SB), NOSPLIT, $0
|
||
|
|
VSLLW V1, V2, V3
|
||
|
|
VSLLW $0, V1, V2
|
||
|
|
VSLLW $31, V1, V2
|
||
|
|
VSLLW $11, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSLLV(SB), NOSPLIT, $0
|
||
|
|
VSLLV V1, V2, V3
|
||
|
|
VSLLV $0, V1, V2
|
||
|
|
VSLLV $63, V1, V2
|
||
|
|
VSLLV $30, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSRLB(SB), NOSPLIT, $0
|
||
|
|
VSRLB V1, V2, V3
|
||
|
|
VSRLB $0, V1, V2
|
||
|
|
VSRLB $7, V1, V2
|
||
|
|
VSRLB $4, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSRLH(SB), NOSPLIT, $0
|
||
|
|
VSRLH V1, V2, V3
|
||
|
|
VSRLH $0, V1, V2
|
||
|
|
VSRLH $15, V1, V2
|
||
|
|
VSRLH $9, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSRLW(SB), NOSPLIT, $0
|
||
|
|
VSRLW V1, V2, V3
|
||
|
|
VSRLW $0, V1, V2
|
||
|
|
VSRLW $31, V1, V2
|
||
|
|
VSRLW $16, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSRLV(SB), NOSPLIT, $0
|
||
|
|
VSRLV V1, V2, V3
|
||
|
|
VSRLV $0, V1, V2
|
||
|
|
VSRLV $63, V1, V2
|
||
|
|
VSRLV $40, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSRAH(SB), NOSPLIT, $0
|
||
|
|
VSRAH V1, V2, V3
|
||
|
|
VSRAH $0, V1, V2
|
||
|
|
VSRAH $15, V1, V2
|
||
|
|
VSRAH $8, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSRAW(SB), NOSPLIT, $0
|
||
|
|
VSRAW V1, V2, V3
|
||
|
|
VSRAW $0, V1, V2
|
||
|
|
VSRAW $31, V1, V2
|
||
|
|
VSRAW $12, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VSRAV(SB), NOSPLIT, $0
|
||
|
|
VSRAV V1, V2, V3
|
||
|
|
VSRAV $0, V1, V2
|
||
|
|
VSRAV $63, V1, V2
|
||
|
|
VSRAV $50, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VROTRB(SB), NOSPLIT, $0
|
||
|
|
VROTRB V1, V2, V3
|
||
|
|
VROTRB $0, V1, V2
|
||
|
|
VROTRB $7, V1, V2
|
||
|
|
VROTRB $3, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VROTRH(SB), NOSPLIT, $0
|
||
|
|
VROTRH V1, V2, V3
|
||
|
|
VROTRH $0, V1, V2
|
||
|
|
VROTRH $15, V1, V2
|
||
|
|
VROTRH $5, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·VROTRV(SB), NOSPLIT, $0
|
||
|
|
VROTRV V1, V2, V3
|
||
|
|
VROTRV $0, V1, V2
|
||
|
|
VROTRV $63, V1, V2
|
||
|
|
VROTRV $52, V1
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSLLB(SB), NOSPLIT, $0
|
||
|
|
XVSLLB X3, X2, X1
|
||
|
|
XVSLLB $0, X2, X1
|
||
|
|
XVSLLB $7, X2, X1
|
||
|
|
XVSLLB $4, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSLLH(SB), NOSPLIT, $0
|
||
|
|
XVSLLH X3, X2, X1
|
||
|
|
XVSLLH $0, X2, X1
|
||
|
|
XVSLLH $15, X2, X1
|
||
|
|
XVSLLH $8, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSLLW(SB), NOSPLIT, $0
|
||
|
|
XVSLLW X3, X2, X1
|
||
|
|
XVSLLW $0, X2, X1
|
||
|
|
XVSLLW $31, X2, X1
|
||
|
|
XVSLLW $13, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSLLV(SB), NOSPLIT, $0
|
||
|
|
XVSLLV X3, X2, X1
|
||
|
|
XVSLLV $0, X2, X1
|
||
|
|
XVSLLV $63, X2, X1
|
||
|
|
XVSLLV $36, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSRLB(SB), NOSPLIT, $0
|
||
|
|
XVSRLB X3, X2, X1
|
||
|
|
XVSRLB $0, X2, X1
|
||
|
|
XVSRLB $7, X2, X1
|
||
|
|
XVSRLB $5, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSRLH(SB), NOSPLIT, $0
|
||
|
|
XVSRLH X3, X2, X1
|
||
|
|
XVSRLH $0, X2, X1
|
||
|
|
XVSRLH $15, X2, X1
|
||
|
|
XVSRLH $9, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSRLW(SB), NOSPLIT, $0
|
||
|
|
XVSRLW X3, X2, X1
|
||
|
|
XVSRLW $0, X2, X1
|
||
|
|
XVSRLW $31, X2, X1
|
||
|
|
XVSRLW $14, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSRLV(SB), NOSPLIT, $0
|
||
|
|
XVSRLV X3, X2, X1
|
||
|
|
XVSRLV $0, X2, X1
|
||
|
|
XVSRLV $63, X2, X1
|
||
|
|
XVSRLV $45, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSRAB(SB), NOSPLIT, $0
|
||
|
|
XVSRAB X3, X2, X1
|
||
|
|
XVSRAB $0, X2, X1
|
||
|
|
XVSRAB $7, X2, X1
|
||
|
|
XVSRAB $6, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSRAH(SB), NOSPLIT, $0
|
||
|
|
XVSRAH X3, X2, X1
|
||
|
|
XVSRAH $0, X2, X1
|
||
|
|
XVSRAH $15, X2, X1
|
||
|
|
XVSRAH $10, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSRAW(SB), NOSPLIT, $0
|
||
|
|
XVSRAW X3, X2, X1
|
||
|
|
XVSRAW $0, X2, X1
|
||
|
|
XVSRAW $31, X2, X1
|
||
|
|
XVSRAW $16, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVSRAV(SB), NOSPLIT, $0
|
||
|
|
XVSRAV X3, X2, X1
|
||
|
|
XVSRAV $0, X2, X1
|
||
|
|
XVSRAV $63, X2, X1
|
||
|
|
XVSRAV $48, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVROTRB(SB), NOSPLIT, $0
|
||
|
|
XVROTRB X3, X2, X1
|
||
|
|
XVROTRB $0, X2, X1
|
||
|
|
XVROTRB $7, X2, X1
|
||
|
|
XVROTRB $3, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVROTRH(SB), NOSPLIT, $0
|
||
|
|
XVROTRH X3, X2, X1
|
||
|
|
XVROTRH $0, X2, X1
|
||
|
|
XVROTRH $15, X2, X1
|
||
|
|
XVROTRH $13, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVROTRW(SB), NOSPLIT, $0
|
||
|
|
XVROTRW X3, X2, X1
|
||
|
|
XVROTRW $0, X2, X1
|
||
|
|
XVROTRW $31, X2, X1
|
||
|
|
XVROTRW $24, X2
|
||
|
|
RET
|
||
|
|
|
||
|
|
TEXT ·XVROTRV(SB), NOSPLIT, $0
|
||
|
|
XVROTRV X3, X2, X1
|
||
|
|
XVROTRV $0, X2, X1
|
||
|
|
XVROTRV $63, X2, X1
|
||
|
|
XVROTRV $52, X2
|
||
|
|
RET
|