Skip to content

Commit

Permalink
ppc64x: encoding fix typo #18
Browse files Browse the repository at this point in the history
  • Loading branch information
emmansun authored Oct 15, 2024
1 parent a1b56ef commit ffb61d5
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 1 deletion.
2 changes: 1 addition & 1 deletion base64_ppc64x.s
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ loop:
VAND X0, MULLO_MASK, X0
VSLH X0, SHIFT_LEFT_MASK, X0
VOR X0, X1, X0
VSUBUBS RAND1_END, X0, X1
VSUBUBS RANGE1_END, X0, X1
VCMPGTUB RANGE0_END, X0, X2
VSUBUBM X2, X1, X1
VPERM LUT, LUT, X1, X2
Expand Down
37 changes: 37 additions & 0 deletions base64_ppc64x_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Copyright 2024 Sun Yimin. All rights reserved.
// Use of this source code is governed by a BSD 3-Clause-style
// license that can be found in the LICENSE file.

//go:build (ppc64 || ppc64le) && !purego

package base64

import (
"bytes"
"testing"
)

func TestStdEncodeAsm(t *testing.T) {
pairs := []testpair{
{"abcdefghijkl0000", "YWJjZGVmZ2hpamts"},
{"\x2b\xf7\xcc\x27\x01\xfe\x43\x97\xb4\x9e\xbe\xed\x5a\xcc\x70\x90", "K/fMJwH+Q5e0nr7t"},
{"abcdefghijklabcdefghijkl0000", "YWJjZGVmZ2hpamtsYWJjZGVmZ2hpamts"},
{"abcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijkl", "YWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamts"},
{"abcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijkl", "YWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamts"},
{"abcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijkl", "YWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamtsYWJjZGVmZ2hpamts"},
}
for _, p := range pairs {
src := []byte(p.decoded)
expected := []byte(p.encoded)
dst := make([]byte, len(expected))

ret := encodeAsm(dst, src, &encodeStdLut)
if ret != len(expected) {
t.Errorf("should return %v, got %v", len(expected), ret)
}
if !bytes.Equal(dst, expected) {
t.Errorf("got %x, expected %x", dst, expected)
}

}
}

0 comments on commit ffb61d5

Please sign in to comment.