MCPcopy Create free account
hub / github.com/HaxeFoundation/hxcpp / genCode

Method genCode

src/hx/cppia/Cppia.cpp:1053–1090  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1051
1052 #ifdef CPPIA_JIT
1053 void genCode(CppiaCompiler *compiler, const JitVal &inDest,ExprType destType) HXCPP_OVERRIDE
1054 {
1055 {
1056 AutoFramePos frame(compiler);
1057
1058 for(int a=0;a<args.size();a++)
1059 {
1060 args[a]->genCode(compiler, JitFramePos(compiler->getCurrentFrameSize(),etObject), etObject);
1061 compiler->addFrame(etObject);
1062 }
1063 }
1064
1065 compiler->add(sJitCtxFrame, sJitFrame, compiler->getCurrentFrameSize());
1066
1067 compiler->callNative((void *)callDynamic,sJitCtx, (void *)value.mPtr,(int)args.size());
1068
1069 compiler->checkException();
1070 if (destType!=etVoid && destType!=etNull)
1071 compiler->convertResult( etObject, inDest, destType );
1072
1073 /*
1074 if (compiler.exceptionHandler)
1075 {
1076 sljit_jump *notZero = compiler.ifNotZero( CtxMemberVal(offsetof(CppiaCtx,exception)) );
1077 compiler.exceptionHandler->push_back(notZero);
1078 }
1079 else
1080 {
1081 sljit_jump *isZero = compiler.ifZero( CtxMemberVal(offsetof(CppiaCtx,exception)) );
1082 compiler.ret( );
1083 compiler.comeFrom(isZero);
1084 }
1085
1086 // Result is at pointer
1087 if (inDest!=pointer)
1088 compiler.move( inDest, pointer );
1089 */
1090 }
1091 #endif
1092
1093};

Callers

nothing calls this directly

Calls 9

JitFramePosClass · 0.85
getCurrentFrameSizeMethod · 0.80
addFrameMethod · 0.80
callNativeMethod · 0.80
checkExceptionMethod · 0.80
convertResultMethod · 0.80
sizeMethod · 0.45
genCodeMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected