summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/internal/decoder/jitdec
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/decoder/jitdec')
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go2
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go17
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go2
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s2
4 files changed, 17 insertions, 6 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go
index d6101b2e6..5cd3750bf 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go
@@ -1,4 +1,4 @@
-// +build go1.21,!go1.25
+// +build go1.21,!go1.26
// Copyright 2023 CloudWeGo Authors
//
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go
index 20c115e79..dc86efe08 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go
@@ -1,5 +1,5 @@
-//go:build go1.17 && !go1.25
-// +build go1.17,!go1.25
+//go:build go1.17 && !go1.26
+// +build go1.17,!go1.26
/*
* Copyright 2021 ByteDance Inc.
@@ -887,6 +887,17 @@ func (self *_Assembler) range_unsigned_CX(i *rt.GoItab, t *rt.GoType, v uint64)
self.Sjmp("JA" , _LB_range_error) // JA _range_error
}
+func (self *_Assembler) range_uint32_CX(i *rt.GoItab, t *rt.GoType) {
+ self.Emit("MOVQ" , _VAR_st_Iv, _CX) // MOVQ st.Iv, CX
+ self.Emit("MOVQ" , jit.Gitab(i), _ET) // MOVQ ${i}, ET
+ self.Emit("MOVQ" , jit.Gtype(t), _EP) // MOVQ ${t}, EP
+ self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX
+ self.Sjmp("JS" , _LB_range_error) // JS _range_error
+ self.Emit("MOVL" , _CX, _DX) // MOVL CX, DX
+ self.Emit("CMPQ" , _CX, _DX) // CMPQ CX, DX
+ self.Sjmp("JNE" , _LB_range_error) // JNZ _range_error
+}
+
/** String Manipulating Routines **/
var (
@@ -1453,7 +1464,7 @@ func (self *_Assembler) _asm_OP_u16(_ *_Instr) {
func (self *_Assembler) _asm_OP_u32(_ *_Instr) {
var pin = "_u32_end_{n}"
self.parse_unsigned(uint32Type, pin, -1) // PARSE uint32
- self.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32
+ self.range_uint32_CX(_I_uint32, _T_uint32) // RANGE uint32
self.Emit("MOVL", _CX, jit.Ptr(_VP, 0)) // MOVL CX, (VP)
self.Link(pin)
}
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go
index 51a850a8a..2cb41f08d 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go
@@ -1,4 +1,4 @@
-// +build go1.17,!go1.25
+// +build go1.17,!go1.26
/*
* Copyright 2021 ByteDance Inc.
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s
index f287eaeb4..a08f0e2ad 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s
@@ -1,4 +1,4 @@
-// +build go1.17,!go1.25
+// +build go1.17,!go1.26
//
// Copyright 2021 ByteDance Inc.