func _binaryArith(i Instruction, vm LuaVM, op ArithOp) {
	a, b, c := i.ABC()
	a += 1
	vm.GetRK(b)    
	vm.GetRK(c)    
	vm.Arith(op)   
	vm.Replace(a)  
}
R(A) := RK(B) op RK(C)
package vm
import . "github.com/zxh0/lua.go/api"
func add(i Instruction, vm LuaVM)  { _binaryArith(i, vm, LUA_OPADD) }   
func sub(i Instruction, vm LuaVM)  { _binaryArith(i, vm, LUA_OPSUB) }   
func mul(i Instruction, vm LuaVM)  { _binaryArith(i, vm, LUA_OPMUL) }   
func mod(i Instruction, vm LuaVM)  { _binaryArith(i, vm, LUA_OPMOD) }   
func pow(i Instruction, vm LuaVM)  { _binaryArith(i, vm, LUA_OPPOW) }   
func div(i Instruction, vm LuaVM)  { _binaryArith(i, vm, LUA_OPDIV) }   
func idiv(i Instruction, vm LuaVM) { _binaryArith(i, vm, LUA_OPIDIV) }  
func band(i Instruction, vm LuaVM) { _binaryArith(i, vm, LUA_OPBAND) }  
func bor(i Instruction, vm LuaVM)  { _binaryArith(i, vm, LUA_OPBOR) }   
func bxor(i Instruction, vm LuaVM) { _binaryArith(i, vm, LUA_OPBXOR) }  
func shl(i Instruction, vm LuaVM)  { _binaryArith(i, vm, LUA_OPSHL) }   
func shr(i Instruction, vm LuaVM)  { _binaryArith(i, vm, LUA_OPSHR) }   
func unm(i Instruction, vm LuaVM)  { _unaryArith(i, vm, LUA_OPUNM) }    
func bnot(i Instruction, vm LuaVM) { _unaryArith(i, vm, LUA_OPBNOT) }   