diff options
author | 2022-09-09 18:10:36 -0700 | |
---|---|---|
committer | 2022-09-09 18:10:36 -0700 | |
commit | f496740c1926d2349434ba01ceddc6c8b6aadfa0 (patch) | |
tree | e36504cb188a954afabe2fb2bee8603ea3557d70 /src/bun.js/bindings/ZigGeneratedCode.cpp | |
parent | 0c2a207d82f42caa1d1f360c5ed56c92443c4795 (diff) | |
download | bun-f496740c1926d2349434ba01ceddc6c8b6aadfa0.tar.gz bun-f496740c1926d2349434ba01ceddc6c8b6aadfa0.tar.zst bun-f496740c1926d2349434ba01ceddc6c8b6aadfa0.zip |
[bun:ffi] Add `f32`, `f64`, `i64`, u64` to `read`
Diffstat (limited to 'src/bun.js/bindings/ZigGeneratedCode.cpp')
-rw-r--r-- | src/bun.js/bindings/ZigGeneratedCode.cpp | 176 |
1 files changed, 174 insertions, 2 deletions
diff --git a/src/bun.js/bindings/ZigGeneratedCode.cpp b/src/bun.js/bindings/ZigGeneratedCode.cpp index 1e2ff7dbf..25ed067a2 100644 --- a/src/bun.js/bindings/ZigGeneratedCode.cpp +++ b/src/bun.js/bindings/ZigGeneratedCode.cpp @@ -208,7 +208,7 @@ extern "C" void Reader__ptr__put(JSC::JSGlobalObject *globalObject, JSC::Encoded Reader__ptr__fastpathWrapper, thisObject->classInfo(), JSC::DOMJIT::Effect::forReadWrite(JSC::DOMJIT::HeapRange::top(), JSC::DOMJIT::HeapRange::top()), - JSC::SpecHeapTop, + JSC::SpecInt52Any, JSC::SpecInt52Any, JSC::SpecInt32Only ); @@ -359,6 +359,92 @@ extern "C" void Reader__i32__put(JSC::JSGlobalObject *globalObject, JSC::Encoded +extern "C" JSC_DECLARE_HOST_FUNCTION(Reader__i64__slowpathWrapper); +extern "C" JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(Reader__i64__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, int64_t, int32_t)); + +JSC_DEFINE_JIT_OPERATION(Reader__i64__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, int64_t arg1, int32_t arg2)) { +VM& vm = JSC::getVM(lexicalGlobalObject); +IGNORE_WARNINGS_BEGIN("frame-address") +CallFrame* callFrame = DECLARE_CALL_FRAME(vm); +IGNORE_WARNINGS_END +JSC::JITOperationPrologueCallFrameTracer tracer(vm, callFrame); +return Reader__i64__fastpath(lexicalGlobalObject, thisValue, arg1, arg2); +} +JSC_DEFINE_HOST_FUNCTION(Reader__i64__slowpathWrapper, (JSC::JSGlobalObject *globalObject, JSC::CallFrame* frame)) { + return Reader__i64__slowpath(globalObject, JSValue::encode(frame->thisValue()), reinterpret_cast<JSC::EncodedJSValue*>(frame->addressOfArgumentsStart()), frame->argumentCount()); +} + +extern "C" void Reader__i64__put(JSC::JSGlobalObject *globalObject, JSC::EncodedJSValue value) { + JSC::JSObject *thisObject = JSC::jsCast<JSC::JSObject *>(JSC::JSValue::decode(value)); + static const JSC::DOMJIT::Signature DOMJIT_i64_signature( + Reader__i64__fastpathWrapper, + thisObject->classInfo(), + JSC::DOMJIT::Effect::forReadWrite(JSC::DOMJIT::HeapRange::top(), JSC::DOMJIT::HeapRange::top()), + JSC::SpecHeapTop, + JSC::SpecInt52Any, + JSC::SpecInt32Only + ); + JSFunction* function = JSFunction::create( + globalObject->vm(), + globalObject, + 2, + String("i64"_s), + Reader__i64__slowpathWrapper, ImplementationVisibility::Public, NoIntrinsic, Reader__i64__slowpathWrapper, + &DOMJIT_i64_signature + ); + thisObject->putDirect( + globalObject->vm(), + Identifier::fromString(globalObject->vm(), "i64"_s), + function, + JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction | 0 + ); +} + + + +extern "C" JSC_DECLARE_HOST_FUNCTION(Reader__u64__slowpathWrapper); +extern "C" JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(Reader__u64__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, int64_t, int32_t)); + +JSC_DEFINE_JIT_OPERATION(Reader__u64__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, int64_t arg1, int32_t arg2)) { +VM& vm = JSC::getVM(lexicalGlobalObject); +IGNORE_WARNINGS_BEGIN("frame-address") +CallFrame* callFrame = DECLARE_CALL_FRAME(vm); +IGNORE_WARNINGS_END +JSC::JITOperationPrologueCallFrameTracer tracer(vm, callFrame); +return Reader__u64__fastpath(lexicalGlobalObject, thisValue, arg1, arg2); +} +JSC_DEFINE_HOST_FUNCTION(Reader__u64__slowpathWrapper, (JSC::JSGlobalObject *globalObject, JSC::CallFrame* frame)) { + return Reader__u64__slowpath(globalObject, JSValue::encode(frame->thisValue()), reinterpret_cast<JSC::EncodedJSValue*>(frame->addressOfArgumentsStart()), frame->argumentCount()); +} + +extern "C" void Reader__u64__put(JSC::JSGlobalObject *globalObject, JSC::EncodedJSValue value) { + JSC::JSObject *thisObject = JSC::jsCast<JSC::JSObject *>(JSC::JSValue::decode(value)); + static const JSC::DOMJIT::Signature DOMJIT_u64_signature( + Reader__u64__fastpathWrapper, + thisObject->classInfo(), + JSC::DOMJIT::Effect::forReadWrite(JSC::DOMJIT::HeapRange::top(), JSC::DOMJIT::HeapRange::top()), + JSC::SpecHeapTop, + JSC::SpecInt52Any, + JSC::SpecInt32Only + ); + JSFunction* function = JSFunction::create( + globalObject->vm(), + globalObject, + 2, + String("u64"_s), + Reader__u64__slowpathWrapper, ImplementationVisibility::Public, NoIntrinsic, Reader__u64__slowpathWrapper, + &DOMJIT_u64_signature + ); + thisObject->putDirect( + globalObject->vm(), + Identifier::fromString(globalObject->vm(), "u64"_s), + function, + JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction | 0 + ); +} + + + extern "C" JSC_DECLARE_HOST_FUNCTION(Reader__intptr__slowpathWrapper); extern "C" JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(Reader__intptr__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, int64_t, int32_t)); @@ -380,7 +466,7 @@ extern "C" void Reader__intptr__put(JSC::JSGlobalObject *globalObject, JSC::Enco Reader__intptr__fastpathWrapper, thisObject->classInfo(), JSC::DOMJIT::Effect::forReadWrite(JSC::DOMJIT::HeapRange::top(), JSC::DOMJIT::HeapRange::top()), - JSC::SpecHeapTop, + JSC::SpecInt52Any, JSC::SpecInt52Any, JSC::SpecInt32Only ); @@ -401,5 +487,91 @@ extern "C" void Reader__intptr__put(JSC::JSGlobalObject *globalObject, JSC::Enco } + +extern "C" JSC_DECLARE_HOST_FUNCTION(Reader__f32__slowpathWrapper); +extern "C" JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(Reader__f32__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, int64_t, int32_t)); + +JSC_DEFINE_JIT_OPERATION(Reader__f32__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, int64_t arg1, int32_t arg2)) { +VM& vm = JSC::getVM(lexicalGlobalObject); +IGNORE_WARNINGS_BEGIN("frame-address") +CallFrame* callFrame = DECLARE_CALL_FRAME(vm); +IGNORE_WARNINGS_END +JSC::JITOperationPrologueCallFrameTracer tracer(vm, callFrame); +return Reader__f32__fastpath(lexicalGlobalObject, thisValue, arg1, arg2); +} +JSC_DEFINE_HOST_FUNCTION(Reader__f32__slowpathWrapper, (JSC::JSGlobalObject *globalObject, JSC::CallFrame* frame)) { + return Reader__f32__slowpath(globalObject, JSValue::encode(frame->thisValue()), reinterpret_cast<JSC::EncodedJSValue*>(frame->addressOfArgumentsStart()), frame->argumentCount()); +} + +extern "C" void Reader__f32__put(JSC::JSGlobalObject *globalObject, JSC::EncodedJSValue value) { + JSC::JSObject *thisObject = JSC::jsCast<JSC::JSObject *>(JSC::JSValue::decode(value)); + static const JSC::DOMJIT::Signature DOMJIT_f32_signature( + Reader__f32__fastpathWrapper, + thisObject->classInfo(), + JSC::DOMJIT::Effect::forReadWrite(JSC::DOMJIT::HeapRange::top(), JSC::DOMJIT::HeapRange::top()), + JSC::SpecDoubleReal, + JSC::SpecInt52Any, + JSC::SpecInt32Only + ); + JSFunction* function = JSFunction::create( + globalObject->vm(), + globalObject, + 2, + String("f32"_s), + Reader__f32__slowpathWrapper, ImplementationVisibility::Public, NoIntrinsic, Reader__f32__slowpathWrapper, + &DOMJIT_f32_signature + ); + thisObject->putDirect( + globalObject->vm(), + Identifier::fromString(globalObject->vm(), "f32"_s), + function, + JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction | 0 + ); +} + + + +extern "C" JSC_DECLARE_HOST_FUNCTION(Reader__f64__slowpathWrapper); +extern "C" JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL(Reader__f64__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, int64_t, int32_t)); + +JSC_DEFINE_JIT_OPERATION(Reader__f64__fastpathWrapper, EncodedJSValue, (JSC::JSGlobalObject* lexicalGlobalObject, void* thisValue, int64_t arg1, int32_t arg2)) { +VM& vm = JSC::getVM(lexicalGlobalObject); +IGNORE_WARNINGS_BEGIN("frame-address") +CallFrame* callFrame = DECLARE_CALL_FRAME(vm); +IGNORE_WARNINGS_END +JSC::JITOperationPrologueCallFrameTracer tracer(vm, callFrame); +return Reader__f64__fastpath(lexicalGlobalObject, thisValue, arg1, arg2); +} +JSC_DEFINE_HOST_FUNCTION(Reader__f64__slowpathWrapper, (JSC::JSGlobalObject *globalObject, JSC::CallFrame* frame)) { + return Reader__f64__slowpath(globalObject, JSValue::encode(frame->thisValue()), reinterpret_cast<JSC::EncodedJSValue*>(frame->addressOfArgumentsStart()), frame->argumentCount()); +} + +extern "C" void Reader__f64__put(JSC::JSGlobalObject *globalObject, JSC::EncodedJSValue value) { + JSC::JSObject *thisObject = JSC::jsCast<JSC::JSObject *>(JSC::JSValue::decode(value)); + static const JSC::DOMJIT::Signature DOMJIT_f64_signature( + Reader__f64__fastpathWrapper, + thisObject->classInfo(), + JSC::DOMJIT::Effect::forReadWrite(JSC::DOMJIT::HeapRange::top(), JSC::DOMJIT::HeapRange::top()), + JSC::SpecDoubleReal, + JSC::SpecInt52Any, + JSC::SpecInt32Only + ); + JSFunction* function = JSFunction::create( + globalObject->vm(), + globalObject, + 2, + String("f64"_s), + Reader__f64__slowpathWrapper, ImplementationVisibility::Public, NoIntrinsic, Reader__f64__slowpathWrapper, + &DOMJIT_f64_signature + ); + thisObject->putDirect( + globalObject->vm(), + Identifier::fromString(globalObject->vm(), "f64"_s), + function, + JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction | 0 + ); +} + + /* -- END DOMCall DEFINITIONS-- */ |