MCPcopy Index your code
hub / github.com/Shopify/go-lua / encodeArithmetic

Method encodeArithmetic

code.go:863–882  ·  view source on GitHub ↗
(op opCode, e1, e2 exprDesc, line int)

Source from the content-addressed store, hash-verified

861}
862
863func (f *function) encodeArithmetic(op opCode, e1, e2 exprDesc, line int) exprDesc {
864 if e, folded := foldConstants(op, e1, e2); folded {
865 return e
866 }
867 o2 := 0
868 if op != opUnaryMinus && op != opLength {
869 e2, o2 = f.expressionToRegisterOrConstant(e2)
870 }
871 e1, o1 := f.expressionToRegisterOrConstant(e1)
872 if o1 > o2 {
873 f.freeExpression(e1)
874 f.freeExpression(e2)
875 } else {
876 f.freeExpression(e2)
877 f.freeExpression(e1)
878 }
879 e1.info, e1.kind = f.EncodeABC(op, 0, o1, o2), kindRelocatable
880 f.FixLine(line)
881 return e1
882}
883
884func (f *function) Prefix(op int, e exprDesc, line int) exprDesc {
885 switch op {

Callers 2

PrefixMethod · 0.95
PostfixMethod · 0.95

Calls 5

freeExpressionMethod · 0.95
EncodeABCMethod · 0.95
FixLineMethod · 0.95
foldConstantsFunction · 0.85

Tested by

no test coverage detected