1
0
mirror of https://github.com/fumiama/unibase2n.git synced 2026-06-30 08:50:32 +08:00

protect flags

This commit is contained in:
源文雨
2023-04-10 10:45:45 +08:00
parent 02876e7774
commit d4c1be32e2
2 changed files with 15 additions and 5 deletions

View File

@@ -5,13 +5,14 @@
// dec128blk1(mask uint128be, in, out []byte) // dec128blk1(mask uint128be, in, out []byte)
// len(in)>0, len(in)%16==0, len(out)==len(in)/16 // len(in)>0, len(in)%16==0, len(out)==len(in)/16
TEXT ·dec128blk1(SB), NOSPLIT, $0-64 TEXT ·dec128blk1(SB), NOSPLIT, $8-64
MOVQ ·mask+0(FP), DX MOVQ ·mask+0(FP), DX
BSWAPQ DX BSWAPQ DX
MOVQ ·in+16(FP), SI MOVQ ·in+16(FP), SI
MOVQ ·in+24(FP), CX MOVQ ·in+24(FP), CX
SHRQ $4, CX SHRQ $4, CX
MOVQ ·in+40(FP), DI MOVQ ·in+40(FP), DI
PUSHFQ
// go forward // go forward
CLD CLD
lop: lop:
@@ -53,4 +54,5 @@ lop:
STOSB STOSB
LOOP lop LOOP lop
POPFQ
RET RET

View File

@@ -5,7 +5,7 @@
// enc16blk1(mask uint16, in, out []byte) // enc16blk1(mask uint16, in, out []byte)
// for bit 1 (actual enc128blk1) // for bit 1 (actual enc128blk1)
TEXT ·enc16blk1(SB), NOSPLIT, $0-56 TEXT ·enc16blk1(SB), NOSPLIT, $8-56
// create mask // create mask
MOVQ ·mask+0(FP), BX MOVQ ·mask+0(FP), BX
ANDQ $0xffff, BX ANDQ $0xffff, BX
@@ -23,6 +23,7 @@ TEXT ·enc16blk1(SB), NOSPLIT, $0-56
MOVQ ·inlen+16(FP), CX MOVQ ·inlen+16(FP), CX
// load dest addr // load dest addr
MOVQ ·out+32(FP), DI MOVQ ·out+32(FP), DI
PUSHFQ
// go forward // go forward
CLD CLD
lop: lop:
@@ -63,11 +64,12 @@ lop:
BSWAPQ AX BSWAPQ AX
STOSQ STOSQ
LOOP lop LOOP lop
POPFQ
RET RET
// enc64blk2(mask uint64, in, out []byte) // enc64blk2(mask uint64, in, out []byte)
// len(in)!=0, len(out)==len(in)*8 // len(in)!=0, len(out)==len(in)*8
TEXT ·enc64blk2(SB), NOSPLIT, $0-56 TEXT ·enc64blk2(SB), NOSPLIT, $8-56
// load mask // load mask
MOVQ ·mask+0(FP), BX MOVQ ·mask+0(FP), BX
// load source addr // load source addr
@@ -76,6 +78,7 @@ TEXT ·enc64blk2(SB), NOSPLIT, $0-56
MOVQ ·inlen+16(FP), CX MOVQ ·inlen+16(FP), CX
// load dest addr // load dest addr
MOVQ ·out+32(FP), DI MOVQ ·out+32(FP), DI
PUSHFQ
// go forward // go forward
CLD CLD
lop: lop:
@@ -101,11 +104,12 @@ lop:
BSWAPQ AX BSWAPQ AX
STOSQ STOSQ
LOOP lop LOOP lop
POPFQ
RET RET
// enc32blk4(mask uint32, in, out []byte) // enc32blk4(mask uint32, in, out []byte)
// len(in)!=0, len(out)==len(in)*4 // len(in)!=0, len(out)==len(in)*4
TEXT ·enc32blk4(SB), NOSPLIT, $0-56 TEXT ·enc32blk4(SB), NOSPLIT, $8-56
// load mask // load mask
MOVQ ·mask+0(FP), BX MOVQ ·mask+0(FP), BX
// load source addr // load source addr
@@ -114,6 +118,7 @@ TEXT ·enc32blk4(SB), NOSPLIT, $0-56
MOVQ ·inlen+16(FP), CX MOVQ ·inlen+16(FP), CX
// load dest addr // load dest addr
MOVQ ·out+32(FP), DI MOVQ ·out+32(FP), DI
PUSHFQ
// go forward // go forward
CLD CLD
lop: lop:
@@ -129,11 +134,12 @@ lop:
BSWAPL AX BSWAPL AX
STOSL STOSL
LOOP lop LOOP lop
POPFQ
RET RET
// func enc16blk8(mask uint16, in, out []byte) // func enc16blk8(mask uint16, in, out []byte)
// len(in)!=0, len(out)==len(in)*2 // len(in)!=0, len(out)==len(in)*2
TEXT ·enc16blk8(SB), NOSPLIT, $0-56 TEXT ·enc16blk8(SB), NOSPLIT, $8-56
// load mask // load mask
MOVQ ·mask+0(FP), BX MOVQ ·mask+0(FP), BX
// load source addr // load source addr
@@ -142,6 +148,7 @@ TEXT ·enc16blk8(SB), NOSPLIT, $0-56
MOVQ ·inlen+16(FP), CX MOVQ ·inlen+16(FP), CX
// load dest addr // load dest addr
MOVQ ·out+32(FP), DI MOVQ ·out+32(FP), DI
PUSHFQ
// go forward // go forward
CLD CLD
lop: lop:
@@ -152,4 +159,5 @@ lop:
RORW $8, AX RORW $8, AX
STOSW STOSW
LOOP lop LOOP lop
POPFQ
RET RET