summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/internal/jit
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/jit')
-rw-r--r--vendor/github.com/bytedance/sonic/internal/jit/arch_amd64.go13
-rw-r--r--vendor/github.com/bytedance/sonic/internal/jit/backend.go7
2 files changed, 13 insertions, 7 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/jit/arch_amd64.go b/vendor/github.com/bytedance/sonic/internal/jit/arch_amd64.go
index 7405052d6..1098a096c 100644
--- a/vendor/github.com/bytedance/sonic/internal/jit/arch_amd64.go
+++ b/vendor/github.com/bytedance/sonic/internal/jit/arch_amd64.go
@@ -17,8 +17,10 @@
package jit
import (
- `github.com/twitchyliquid64/golang-asm/asm/arch`
- `github.com/twitchyliquid64/golang-asm/obj`
+ "unsafe"
+
+ "github.com/twitchyliquid64/golang-asm/asm/arch"
+ "github.com/twitchyliquid64/golang-asm/obj"
)
var (
@@ -33,6 +35,13 @@ func As(op string) obj.As {
}
}
+func ImmPtr(imm unsafe.Pointer) obj.Addr {
+ return obj.Addr {
+ Type : obj.TYPE_CONST,
+ Offset : int64(uintptr(imm)),
+ }
+}
+
func Imm(imm int64) obj.Addr {
return obj.Addr {
Type : obj.TYPE_CONST,
diff --git a/vendor/github.com/bytedance/sonic/internal/jit/backend.go b/vendor/github.com/bytedance/sonic/internal/jit/backend.go
index 75e180415..25569c470 100644
--- a/vendor/github.com/bytedance/sonic/internal/jit/backend.go
+++ b/vendor/github.com/bytedance/sonic/internal/jit/backend.go
@@ -21,6 +21,7 @@ import (
`sync`
_ `unsafe`
+ `github.com/bytedance/sonic/internal/rt`
`github.com/twitchyliquid64/golang-asm/asm/arch`
`github.com/twitchyliquid64/golang-asm/obj`
`github.com/twitchyliquid64/golang-asm/objabi`
@@ -38,10 +39,6 @@ var (
_progPool sync.Pool
)
-//go:nosplit
-//go:linkname throw runtime.throw
-func throw(_ string)
-
func newProg() *obj.Prog {
if val := _progPool.Get(); val == nil {
return new(obj.Prog)
@@ -71,7 +68,7 @@ func newLinkContext(arch *obj.LinkArch) (ret *obj.Link) {
}
func diagLinkContext(str string, args ...interface{}) {
- throw(fmt.Sprintf(str, args...))
+ rt.Throw(fmt.Sprintf(str, args...))
}
func (self *Backend) New() (ret *obj.Prog) {