Skip to content

Commit 3c246ad

Browse files
authored
fixes ValidPrintString bugs (#91)
1 parent 936b01c commit 3c246ad

4 files changed

Lines changed: 5 additions & 3 deletions

File tree

ascii/ascii_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ var testStrings = [...]string{
2828
"\x80",
2929
"\x7F",
3030
"\xFF",
31+
"\x1fxxx",
32+
"\x1fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
3133
"a string of 16B.",
3234
"an invalid string of 32B. \x00......",
3335
"some kind of long string with only ascii characters.",

ascii/valid_print.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func ValidPrintString(s string) bool {
6060
var x uint32
6161
switch n {
6262
case 4:
63-
x = 0x20202020 | *(*uint32)(p)
63+
x = *(*uint32)(p)
6464
case 3:
6565
x = 0x20000000 | uint32(*(*uint16)(p)) | uint32(*(*uint8)(unsafe.Pointer(uintptr(p) + 2)))<<16
6666
case 2:

ascii/valid_print_amd64.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ TEXT ·validPrintAVX2(SB), NOSPLIT, $0-24
1111
MOVQ $0x0000000000000000, DX
1212

1313
// Initialize 128 bits registers.
14-
MOVQ $0x1919191919191919, BX
14+
MOVQ $0x1F1F1F1F1F1F1F1F, BX
1515
MOVQ $0x7e7e7e7e7e7e7e7e, BP
1616
PINSRQ $0x00, BX, X0
1717
PINSRQ $0x01, BX, X0

ascii/valid_print_asm.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func main() {
2121
Comment("Initialize 128 bits registers.")
2222
min := GP64()
2323
max := GP64()
24-
MOVQ(U64(0x1919191919191919), min)
24+
MOVQ(U64(0x1F1F1F1F1F1F1F1F), min)
2525
MOVQ(U64(0x7E7E7E7E7E7E7E7E), max)
2626

2727
minXMM := XMM()

0 commit comments

Comments
 (0)