Skip to content

Commit

Permalink
build: full inline native C funcs (#619)
Browse files Browse the repository at this point in the history
  • Loading branch information
AsterDY committed Apr 15, 2024
1 parent f05afa2 commit bd821ee
Show file tree
Hide file tree
Showing 304 changed files with 123,850 additions and 56,216 deletions.
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[submodule "tools/asm2asm"]
[submodule "cloudwego"]
path = tools/asm2asm
url = https://github.com/cloudwego/asm2asm.git
[submodule "tools/simde"]
Expand Down
116 changes: 0 additions & 116 deletions Makefile

This file was deleted.

2 changes: 1 addition & 1 deletion fuzz/ast_fuzz_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ func fuzzASTGetFromObject(t *testing.T, data []byte, m map[string]interface{}) {
v, err := node.Interface()
require.NoErrorf(t, err, "error in node convert\n%s", msg)
require.Equalf(t, v, expv, "error in node equal\n%sGot:\n%s\nExp:\n%s\n",
msg, spew.Sdump(v), spew.Sdump(expv))
msg, spew.Sdump(v), spew.Sdump(expv))
}
}

Expand Down
3 changes: 2 additions & 1 deletion internal/decoder/assembler_regabi_amd64.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ var (
_R9 = jit.Reg("R9")
_X0 = jit.Reg("X0")
_X1 = jit.Reg("X1")
_X15 = jit.Reg("X15")
)

var (
Expand Down Expand Up @@ -421,6 +422,7 @@ func (self *_Assembler) call_go(fn obj.Addr) {
func (self *_Assembler) callc(fn obj.Addr) {
self.save(_IP)
self.call(fn)
self.Emit("XORPS", _X15, _X15)
self.load(_IP)
}

Expand Down Expand Up @@ -605,7 +607,6 @@ func (self *_Assembler) skip_one() {
self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX
self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v
self.Emit("MOVQ" , _VAR_pc, _R9) // MOVQ pc, R9
// self.Byte(0xcc)
self.Rjmp("JMP" , _R9) // JMP (R9)
}

Expand Down
2 changes: 0 additions & 2 deletions internal/decoder/primitives.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,7 @@ func decodeTypedPointer(s string, i int, vt *rt.GoType, vp unsafe.Pointer, sb *_
return 0, err
} else {
rt.MoreStack(_FP_size + _VD_size + native.MaxFrameSize)
rt.StopProf()
ret, err := fn(s, i, vp, sb, fv, "", nil)
rt.StartProf()
return ret, err
}
}
Expand Down
2 changes: 2 additions & 0 deletions internal/encoder/assembler_regabi_amd64.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ var (

var (
_X0 = jit.Reg("X0")
_X15 = jit.Reg("X15")
_Y0 = jit.Reg("Y0")
)

Expand Down Expand Up @@ -512,6 +513,7 @@ func (self *_Assembler) call_c(pc obj.Addr) {
self.call(pc) // CALL $pc
self.xload(_REG_ffi...) // LOAD $REG_ffi
self.Emit("XCHGQ", _SP_p, _BX)
self.Emit("XORPS", _X15, _X15)
}

func (self *_Assembler) call_go(pc obj.Addr) {
Expand Down
9 changes: 3 additions & 6 deletions internal/encoder/primitives.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (

`github.com/bytedance/sonic/internal/jit`
`github.com/bytedance/sonic/internal/native`
`github.com/bytedance/sonic/internal/native/types`
`github.com/bytedance/sonic/internal/rt`
)

Expand Down Expand Up @@ -73,15 +74,11 @@ func encodeTypedPointer(buf *[]byte, vt *rt.GoType, vp *unsafe.Pointer, sb *_Sta
return err
} else if vt.Indirect() {
rt.MoreStack(_FP_size + native.MaxFrameSize)
rt.StopProf()
err := fn(buf, *vp, sb, fv)
rt.StartProf()
return err
} else {
rt.MoreStack(_FP_size + native.MaxFrameSize)
rt.StopProf()
err := fn(buf, unsafe.Pointer(vp), sb, fv)
rt.StartProf()
return err
}
}
Expand Down Expand Up @@ -123,8 +120,8 @@ func htmlEscape(dst []byte, src []byte) []byte {
dbuf := (*rt.GoSlice)(unsafe.Pointer(&dst))

/* grow dst if it is shorter */
if cap(dst) - len(dst) < len(src) + native.BufPaddingSize {
cap := len(src) * 3 / 2 + native.BufPaddingSize
if cap(dst) - len(dst) < len(src) + types.BufPaddingSize {
cap := len(src) * 3 / 2 + types.BufPaddingSize
*dbuf = growslice(typeByte, *dbuf, cap)
}

Expand Down
36 changes: 36 additions & 0 deletions internal/native/avx/f32toa.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

44 changes: 44 additions & 0 deletions internal/native/avx/f32toa_subr.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit bd821ee

Please sign in to comment.