mirror of
https://github.com/fumiama/unibase2n.git
synced 2026-06-30 08:50:32 +08:00
protect flags
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user