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

Method genCode

src/hx/cppia/Cppia.cpp:7556–7593  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7554 }
7555 #ifdef CPPIA_JIT
7556 void genCode(CppiaCompiler *compiler, const JitVal &inDest, ExprType destType) HXCPP_OVERRIDE
7557 {
7558 if (destType==etVoid)
7559 {
7560 left->genCode(compiler,JitVal(),etVoid);
7561 right->genCode(compiler,JitVal(),etVoid);
7562 }
7563 else if (destType==etInt || (left->getType()==etInt && right->getType()==etInt && destType==etObject) )
7564 {
7565 JitTemp temp(compiler,jtInt);
7566 left->genCode(compiler,temp,etInt);
7567 right->genCode(compiler,sJitTemp0,etInt);
7568 if (destType==etObject)
7569 {
7570 compiler->add( sJitTemp0.as(jtInt), temp, sJitTemp0.as(jtInt) );
7571 compiler->convert(sJitTemp0, etInt, inDest, destType);
7572 }
7573 else
7574 {
7575 compiler->add( inDest, temp, sJitTemp0.as(jtInt) );
7576 }
7577 }
7578 else
7579 {
7580 JitTemp temp(compiler,jtFloat);
7581 left->genCode(compiler,temp,etFloat);
7582 right->genCode(compiler,sJitTempF0,etFloat);
7583 if (destType==etObject || destType==etString)
7584 {
7585 compiler->add( sJitTempF0, temp, sJitTempF0 );
7586 compiler->convert(sJitTempF0, etFloat, inDest, destType);
7587 }
7588 else
7589 {
7590 compiler->add( inDest, temp, sJitTempF0 );
7591 }
7592 }
7593 }
7594 #endif
7595};
7596

Callers

nothing calls this directly

Calls 6

JitValClass · 0.85
asMethod · 0.80
convertMethod · 0.80
genCodeMethod · 0.45
getTypeMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected