
# Copyright 2015 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Autogenerated by genmathops.py - do not edit
from . import jvmops
from . import scalartypes as scalars
UNARY = {
    0x7B: (jvmops.INEG, scalars.INT, scalars.INT),
    0x7C: (jvmops.IXOR, scalars.INT, scalars.INT),
    0x7D: (jvmops.LNEG, scalars.LONG, scalars.LONG),
    0x7E: (jvmops.LXOR, scalars.LONG, scalars.LONG),
    0x7F: (jvmops.FNEG, scalars.FLOAT, scalars.FLOAT),
    0x80: (jvmops.DNEG, scalars.DOUBLE, scalars.DOUBLE),
    0x81: (jvmops.I2L, scalars.INT, scalars.LONG),
    0x82: (jvmops.I2F, scalars.INT, scalars.FLOAT),
    0x83: (jvmops.I2D, scalars.INT, scalars.DOUBLE),
    0x84: (jvmops.L2I, scalars.LONG, scalars.INT),
    0x85: (jvmops.L2F, scalars.LONG, scalars.FLOAT),
    0x86: (jvmops.L2D, scalars.LONG, scalars.DOUBLE),
    0x87: (jvmops.F2I, scalars.FLOAT, scalars.INT),
    0x88: (jvmops.F2L, scalars.FLOAT, scalars.LONG),
    0x89: (jvmops.F2D, scalars.FLOAT, scalars.DOUBLE),
    0x8A: (jvmops.D2I, scalars.DOUBLE, scalars.INT),
    0x8B: (jvmops.D2L, scalars.DOUBLE, scalars.LONG),
    0x8C: (jvmops.D2F, scalars.DOUBLE, scalars.FLOAT),
    0x8D: (jvmops.I2B, scalars.INT, scalars.INT),
    0x8E: (jvmops.I2C, scalars.INT, scalars.INT),
    0x8F: (jvmops.I2S, scalars.INT, scalars.INT),
}
BINARY = {
    0x90: (jvmops.IADD, scalars.INT, scalars.INT),
    0x91: (jvmops.ISUB, scalars.INT, scalars.INT),
    0x92: (jvmops.IMUL, scalars.INT, scalars.INT),
    0x93: (jvmops.IDIV, scalars.INT, scalars.INT),
    0x94: (jvmops.IREM, scalars.INT, scalars.INT),
    0x95: (jvmops.IAND, scalars.INT, scalars.INT),
    0x96: (jvmops.IOR, scalars.INT, scalars.INT),
    0x97: (jvmops.IXOR, scalars.INT, scalars.INT),
    0x98: (jvmops.ISHL, scalars.INT, scalars.INT),
    0x99: (jvmops.ISHR, scalars.INT, scalars.INT),
    0x9A: (jvmops.IUSHR, scalars.INT, scalars.INT),
    0x9B: (jvmops.LADD, scalars.LONG, scalars.LONG),
    0x9C: (jvmops.LSUB, scalars.LONG, scalars.LONG),
    0x9D: (jvmops.LMUL, scalars.LONG, scalars.LONG),
    0x9E: (jvmops.LDIV, scalars.LONG, scalars.LONG),
    0x9F: (jvmops.LREM, scalars.LONG, scalars.LONG),
    0xA0: (jvmops.LAND, scalars.LONG, scalars.LONG),
    0xA1: (jvmops.LOR, scalars.LONG, scalars.LONG),
    0xA2: (jvmops.LXOR, scalars.LONG, scalars.LONG),
    0xA3: (jvmops.LSHL, scalars.LONG, scalars.INT),
    0xA4: (jvmops.LSHR, scalars.LONG, scalars.INT),
    0xA5: (jvmops.LUSHR, scalars.LONG, scalars.INT),
    0xA6: (jvmops.FADD, scalars.FLOAT, scalars.FLOAT),
    0xA7: (jvmops.FSUB, scalars.FLOAT, scalars.FLOAT),
    0xA8: (jvmops.FMUL, scalars.FLOAT, scalars.FLOAT),
    0xA9: (jvmops.FDIV, scalars.FLOAT, scalars.FLOAT),
    0xAA: (jvmops.FREM, scalars.FLOAT, scalars.FLOAT),
    0xAB: (jvmops.DADD, scalars.DOUBLE, scalars.DOUBLE),
    0xAC: (jvmops.DSUB, scalars.DOUBLE, scalars.DOUBLE),
    0xAD: (jvmops.DMUL, scalars.DOUBLE, scalars.DOUBLE),
    0xAE: (jvmops.DDIV, scalars.DOUBLE, scalars.DOUBLE),
    0xAF: (jvmops.DREM, scalars.DOUBLE, scalars.DOUBLE),
    0xB0: (jvmops.IADD, scalars.INT, scalars.INT),
    0xB1: (jvmops.ISUB, scalars.INT, scalars.INT),
    0xB2: (jvmops.IMUL, scalars.INT, scalars.INT),
    0xB3: (jvmops.IDIV, scalars.INT, scalars.INT),
    0xB4: (jvmops.IREM, scalars.INT, scalars.INT),
    0xB5: (jvmops.IAND, scalars.INT, scalars.INT),
    0xB6: (jvmops.IOR, scalars.INT, scalars.INT),
    0xB7: (jvmops.IXOR, scalars.INT, scalars.INT),
    0xB8: (jvmops.ISHL, scalars.INT, scalars.INT),
    0xB9: (jvmops.ISHR, scalars.INT, scalars.INT),
    0xBA: (jvmops.IUSHR, scalars.INT, scalars.INT),
    0xBB: (jvmops.LADD, scalars.LONG, scalars.LONG),
    0xBC: (jvmops.LSUB, scalars.LONG, scalars.LONG),
    0xBD: (jvmops.LMUL, scalars.LONG, scalars.LONG),
    0xBE: (jvmops.LDIV, scalars.LONG, scalars.LONG),
    0xBF: (jvmops.LREM, scalars.LONG, scalars.LONG),
    0xC0: (jvmops.LAND, scalars.LONG, scalars.LONG),
    0xC1: (jvmops.LOR, scalars.LONG, scalars.LONG),
    0xC2: (jvmops.LXOR, scalars.LONG, scalars.LONG),
    0xC3: (jvmops.LSHL, scalars.LONG, scalars.INT),
    0xC4: (jvmops.LSHR, scalars.LONG, scalars.INT),
    0xC5: (jvmops.LUSHR, scalars.LONG, scalars.INT),
    0xC6: (jvmops.FADD, scalars.FLOAT, scalars.FLOAT),
    0xC7: (jvmops.FSUB, scalars.FLOAT, scalars.FLOAT),
    0xC8: (jvmops.FMUL, scalars.FLOAT, scalars.FLOAT),
    0xC9: (jvmops.FDIV, scalars.FLOAT, scalars.FLOAT),
    0xCA: (jvmops.FREM, scalars.FLOAT, scalars.FLOAT),
    0xCB: (jvmops.DADD, scalars.DOUBLE, scalars.DOUBLE),
    0xCC: (jvmops.DSUB, scalars.DOUBLE, scalars.DOUBLE),
    0xCD: (jvmops.DMUL, scalars.DOUBLE, scalars.DOUBLE),
    0xCE: (jvmops.DDIV, scalars.DOUBLE, scalars.DOUBLE),
    0xCF: (jvmops.DREM, scalars.DOUBLE, scalars.DOUBLE),
}
BINARY_LIT = {
    0xD0: jvmops.IADD,
    0xD1: jvmops.ISUB,
    0xD2: jvmops.IMUL,
    0xD3: jvmops.IDIV,
    0xD4: jvmops.IREM,
    0xD5: jvmops.IAND,
    0xD6: jvmops.IOR,
    0xD7: jvmops.IXOR,
    0xD8: jvmops.IADD,
    0xD9: jvmops.ISUB,
    0xDA: jvmops.IMUL,
    0xDB: jvmops.IDIV,
    0xDC: jvmops.IREM,
    0xDD: jvmops.IAND,
    0xDE: jvmops.IOR,
    0xDF: jvmops.IXOR,
    0xE0: jvmops.ISHL,
    0xE1: jvmops.ISHR,
    0xE2: jvmops.IUSHR,
}
