# Copyright (c) 2014-2017, 2020 ARM Limited
# All rights reserved.
#
# The license below extends only to copyright in the software and shall
# not be construed as granting a license to any other intellectual
# property including but not limited to intellectual property relating
# to a hardware implementation of the functionality of the software
# licensed hereunder.  You may use the software subject to the license
# terms below provided that you ensure that this notice is replicated
# unmodified and in its entirety in all distributions of the software,
# modified or unmodified, in source code or in binary form.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met: redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer;
# redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution;
# neither the name of the copyright holders nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""The High-Performance In-order (HPI) CPU timing model is tuned to be
representative of a modern in-order ARMv8-A implementation. The HPI
core and its supporting simulation scripts, namely starter_se.py and
starter_fs.py (under /configs/example/arm/) are part of the ARM
Research Starter Kit on System Modeling. More information can be found
at: http://www.arm.com/ResearchEnablement/SystemModeling

"""

from m5.objects import *

# Simple function to allow a string of [01x_] to be converted into a
# mask and value for use with MinorFUTiming
def make_implicant(implicant_string):
    ret_mask = 0
    ret_match = 0

    shift = False
    for char in implicant_string:
        char = char.lower()
        if shift:
            ret_mask <<= 1
            ret_match <<= 1

        shift = True
        if char == "_":
            shift = False
        elif char == "0":
            ret_mask |= 1
        elif char == "1":
            ret_mask |= 1
            ret_match |= 1
        elif char == "x":
            pass
        else:
            print("Can't parse implicant character", char)

    return (ret_mask, ret_match)


#                          ,----- 36 thumb
#                          | ,--- 35 bigThumb
#                          | |,-- 34 aarch64
a64_inst = make_implicant("0_01xx__xxxx_xxxx_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx")
a32_inst = make_implicant("0_00xx__xxxx_xxxx_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx")
t32_inst = make_implicant("1_10xx__xxxx_xxxx_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx")
t16_inst = make_implicant("1_00xx__xxxx_xxxx_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx")
any_inst = make_implicant("x_xxxx__xxxx_xxxx_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx")
#                          | ||
any_a64_inst = make_implicant(
    "x_x1xx__xxxx_xxxx_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx"
)
any_non_a64_inst = make_implicant(
    "x_x0xx__xxxx_xxxx_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx"
)


def encode_opcode(pattern):
    def encode(opcode_string):
        a64_mask, a64_match = pattern
        mask, match = make_implicant(opcode_string)
        return (a64_mask | mask), (a64_match | match)

    return encode


a64_opcode = encode_opcode(a64_inst)
a32_opcode = encode_opcode(a32_inst)
t32_opcode = encode_opcode(t32_inst)
t16_opcode = encode_opcode(t16_inst)

# These definitions (in some form) should probably be part of TimingExpr


def literal(value):
    def body(env):
        ret = TimingExprLiteral()
        ret.value = value
        return ret

    return body


def bin(op, left, right):
    def body(env):
        ret = TimingExprBin()
        ret.op = "timingExpr" + op
        ret.left = left(env)
        ret.right = right(env)
        return ret

    return body


def un(op, arg):
    def body(env):
        ret = TimingExprUn()
        ret.op = "timingExpr" + op
        ret.arg = arg(env)
        return ret

    return body


def ref(name):
    def body(env):
        if name in env:
            ret = TimingExprRef()
            ret.index = env[name]
        else:
            print("Invalid expression name", name)
            ret = TimingExprNull()
        return ret

    return body


def if_expr(cond, true_expr, false_expr):
    def body(env):
        ret = TimingExprIf()
        ret.cond = cond(env)
        ret.trueExpr = true_expr(env)
        ret.falseExpr = false_expr(env)
        return ret

    return body


def src_reg(index):
    def body(env):
        ret = TimingExprSrcReg()
        ret.index = index
        return ret

    return body


def let(bindings, expr):
    def body(env):
        ret = TimingExprLet()
        let_bindings = []
        new_env = {}
        i = 0

        # Make the sub-expression as null to start with
        for name, binding in bindings:
            new_env[name] = i
            i += 1

        defns = []
        # Then apply them to the produced new env
        for i in range(0, len(bindings)):
            name, binding_expr = bindings[i]
            defns.append(binding_expr(new_env))

        ret.defns = defns
        ret.expr = expr(new_env)

        return ret

    return body


def expr_top(expr):
    return expr([])


class HPI_DefaultInt(MinorFUTiming):
    description = "HPI_DefaultInt"
    mask, match = any_non_a64_inst
    srcRegsRelativeLats = [3, 3, 2, 2, 2, 1, 0]


class HPI_DefaultA64Int(MinorFUTiming):
    description = "HPI_DefaultA64Int"
    mask, match = any_a64_inst
    # r, l, (c)
    srcRegsRelativeLats = [2, 2, 2, 0]


class HPI_DefaultMul(MinorFUTiming):
    description = "HPI_DefaultMul"
    mask, match = any_non_a64_inst
    # f, f, f, r, l, a?
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 0]


class HPI_DefaultA64Mul(MinorFUTiming):
    description = "HPI_DefaultA64Mul"
    mask, match = any_a64_inst
    # a (zr for mul), l, r
    srcRegsRelativeLats = [0, 0, 0, 0]
    # extraCommitLat = 1


class HPI_DefaultVfp(MinorFUTiming):
    description = "HPI_DefaultVfp"
    mask, match = any_non_a64_inst
    # cpsr, z, z, z, cpacr, fpexc, l_lo, r_lo, l_hi, r_hi (from vadd2h)
    srcRegsRelativeLats = [5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 0]


class HPI_DefaultA64Vfp(MinorFUTiming):
    description = "HPI_DefaultA64Vfp"
    mask, match = any_a64_inst
    # cpsr, cpacr_el1, fpscr_exc, ...
    srcRegsRelativeLats = [5, 5, 5, 2]


class HPI_FMADD_A64(MinorFUTiming):
    description = "HPI_FMADD_A64"
    mask, match = a64_opcode("0001_1111_0x0x_xxxx__0xxx_xxxx_xxxx_xxxx")
    #                                    t
    # cpsr, cpacr_el1, fpscr_exc, 1, 1, 2, 2, 3, 3, fpscr_exc, d, d, d, d
    srcRegsRelativeLats = [5, 5, 5, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0]


class HPI_FMSUB_D_A64(MinorFUTiming):
    description = "HPI_FMSUB_D_A64"
    mask, match = a64_opcode("0001_1111_0x0x_xxxx__1xxx_xxxx_xxxx_xxxx")
    #                                    t
    # cpsr, cpacr_el1, fpscr_exc, 1, 1, 2, 2, 3, 3, fpscr_exc, d, d, d, d
    srcRegsRelativeLats = [5, 5, 5, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0]


class HPI_FMOV_A64(MinorFUTiming):
    description = "HPI_FMOV_A64"
    mask, match = a64_opcode("0001_1110_0x10_0000__0100_00xx_xxxx_xxxx")
    # cpsr, cpacr_el1, fpscr_exc, 1, 1, 2, 2, 3, 3, fpscr_exc, d, d, d, d
    srcRegsRelativeLats = [5, 5, 5, 0]


class HPI_ADD_SUB_vector_scalar_A64(MinorFUTiming):
    description = "HPI_ADD_SUB_vector_scalar_A64"
    mask, match = a64_opcode("01x1_1110_xx1x_xxxx__1000_01xx_xxxx_xxxx")
    # cpsr, z, z, z, cpacr, fpexc, l0, r0, l1, r1, l2, r2, l3, r3 (for vadd2h)
    srcRegsRelativeLats = [5, 5, 5, 4]


class HPI_ADD_SUB_vector_vector_A64(MinorFUTiming):
    description = "HPI_ADD_SUB_vector_vector_A64"
    mask, match = a64_opcode("0xx0_1110_xx1x_xxxx__1000_01xx_xxxx_xxxx")
    # cpsr, z, z, z, cpacr, fpexc, l0, r0, l1, r1, l2, r2, l3, r3 (for vadd2h)
    srcRegsRelativeLats = [5, 5, 5, 4]


class HPI_FDIV_scalar_32_A64(MinorFUTiming):
    description = "HPI_FDIV_scalar_32_A64"
    mask, match = a64_opcode("0001_1110_001x_xxxx__0001_10xx_xxxx_xxxx")
    extraCommitLat = 6
    srcRegsRelativeLats = [0, 0, 0, 20, 4]


class HPI_FDIV_scalar_64_A64(MinorFUTiming):
    description = "HPI_FDIV_scalar_64_A64"
    mask, match = a64_opcode("0001_1110_011x_xxxx__0001_10xx_xxxx_xxxx")
    extraCommitLat = 15
    srcRegsRelativeLats = [0, 0, 0, 20, 4]


# CINC CINV CSEL CSET CSETM CSINC CSINC CSINV CSINV CSNEG
class HPI_Cxxx_A64(MinorFUTiming):
    description = "HPI_Cxxx_A64"
    mask, match = a64_opcode("xx01_1010_100x_xxxx_xxxx__0xxx_xxxx_xxxx")
    srcRegsRelativeLats = [3, 3, 3, 2, 2]


class HPI_DefaultMem(MinorFUTiming):
    description = "HPI_DefaultMem"
    mask, match = any_non_a64_inst
    srcRegsRelativeLats = [1, 1, 1, 1, 1, 2]
    # Assume that LDR/STR take 2 cycles for resolving dependencies
    # (1 + 1 of the FU)
    extraAssumedLat = 2


class HPI_DefaultMem64(MinorFUTiming):
    description = "HPI_DefaultMem64"
    mask, match = any_a64_inst
    srcRegsRelativeLats = [2]
    # Assume that LDR/STR take 2 cycles for resolving dependencies
    # (1 + 1 of the FU)
    extraAssumedLat = 3


class HPI_DataProcessingMovShiftr(MinorFUTiming):
    description = "HPI_DataProcessingMovShiftr"
    mask, match = a32_opcode("xxxx_0001_101x_xxxx__xxxx_xxxx_xxx1_xxxx")
    srcRegsRelativeLats = [3, 3, 2, 2, 2, 1, 0]


class HPI_DataProcessingMayShift(MinorFUTiming):
    description = "HPI_DataProcessingMayShift"
    mask, match = a32_opcode("xxxx_000x_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx")
    srcRegsRelativeLats = [3, 3, 2, 2, 1, 1, 0]


class HPI_DataProcessingNoShift(MinorFUTiming):
    description = "HPI_DataProcessingNoShift"
    mask, match = a32_opcode("xxxx_000x_xxxx_xxxx__xxxx_0000_0xx0_xxxx")
    srcRegsRelativeLats = [3, 3, 2, 2, 2, 1, 0]


class HPI_DataProcessingAllowShifti(MinorFUTiming):
    description = "HPI_DataProcessingAllowShifti"
    mask, match = a32_opcode("xxxx_000x_xxxx_xxxx__xxxx_xxxx_xxx0_xxxx")
    srcRegsRelativeLats = [3, 3, 2, 2, 1, 1, 0]


class HPI_DataProcessingSuppressShift(MinorFUTiming):
    description = "HPI_DataProcessingSuppressShift"
    mask, match = a32_opcode("xxxx_000x_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx")
    srcRegsRelativeLats = []
    suppress = True


class HPI_DataProcessingSuppressBranch(MinorFUTiming):
    description = "HPI_DataProcessingSuppressBranch"
    mask, match = a32_opcode("xxxx_1010_xxxx_xxxx__xxxx_xxxx_xxxx_xxxx")
    srcRegsRelativeLats = []
    suppress = True


class HPI_BFI_T1(MinorFUTiming):
    description = "HPI_BFI_T1"
    mask, match = t32_opcode("1111_0x11_0110_xxxx__0xxx_xxxx_xxxx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 1, 0]


class HPI_BFI_A1(MinorFUTiming):
    description = "HPI_BFI_A1"
    mask, match = a32_opcode("xxxx_0111_110x_xxxx__xxxx_xxxx_x001_xxxx")
    # f, f, f, dest, src
    srcRegsRelativeLats = [0, 0, 0, 1, 1, 0]


class HPI_CLZ_T1(MinorFUTiming):
    description = "HPI_CLZ_T1"
    mask, match = t32_opcode("1111_1010_1011_xxxx__1111_xxxx_1000_xxxx")
    srcRegsRelativeLats = [3, 3, 2, 2, 2, 1, 0]


class HPI_CLZ_A1(MinorFUTiming):
    description = "HPI_CLZ_A1"
    mask, match = a32_opcode("xxxx_0001_0110_xxxx__xxxx_xxxx_0001_xxxx")
    srcRegsRelativeLats = [3, 3, 2, 2, 2, 1, 0]


class HPI_CMN_immediate_A1(MinorFUTiming):
    description = "HPI_CMN_immediate_A1"
    mask, match = a32_opcode("xxxx_0011_0111_xxxx__xxxx_xxxx_xxxx_xxxx")
    srcRegsRelativeLats = [3, 3, 3, 2, 2, 3, 3, 3, 0]


class HPI_CMN_register_A1(MinorFUTiming):
    description = "HPI_CMN_register_A1"
    mask, match = a32_opcode("xxxx_0001_0111_xxxx__xxxx_xxxx_xxx0_xxxx")
    srcRegsRelativeLats = [3, 3, 3, 2, 2, 3, 3, 3, 0]


class HPI_CMP_immediate_A1(MinorFUTiming):
    description = "HPI_CMP_immediate_A1"
    mask, match = a32_opcode("xxxx_0011_0101_xxxx__xxxx_xxxx_xxxx_xxxx")
    srcRegsRelativeLats = [3, 3, 3, 2, 2, 3, 3, 3, 0]


class HPI_CMP_register_A1(MinorFUTiming):
    description = "HPI_CMP_register_A1"
    mask, match = a32_opcode("xxxx_0001_0101_xxxx__xxxx_xxxx_xxx0_xxxx")
    srcRegsRelativeLats = [3, 3, 3, 2, 2, 3, 3, 3, 0]


class HPI_MLA_T1(MinorFUTiming):
    description = "HPI_MLA_T1"
    mask, match = t32_opcode("1111_1011_0000_xxxx__xxxx_xxxx_0000_xxxx")
    # z, z, z, a, l?, r?
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 2, 0]


class HPI_MLA_A1(MinorFUTiming):
    description = "HPI_MLA_A1"
    mask, match = a32_opcode("xxxx_0000_001x_xxxx__xxxx_xxxx_1001_xxxx")
    # z, z, z, a, l?, r?
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 2, 0]


class HPI_MADD_A64(MinorFUTiming):
    description = "HPI_MADD_A64"
    mask, match = a64_opcode("x001_1011_000x_xxxx__0xxx_xxxx_xxxx_xxxx")
    # a, l?, r?
    srcRegsRelativeLats = [1, 1, 1, 0]
    extraCommitLat = 1


class HPI_MLS_T1(MinorFUTiming):
    description = "HPI_MLS_T1"
    mask, match = t32_opcode("1111_1011_0000_xxxx__xxxx_xxxx_0001_xxxx")
    # z, z, z, l?, a, r?
    srcRegsRelativeLats = [0, 0, 0, 2, 0, 0, 0]


class HPI_MLS_A1(MinorFUTiming):
    description = "HPI_MLS_A1"
    mask, match = a32_opcode("xxxx_0000_0110_xxxx__xxxx_xxxx_1001_xxxx")
    # z, z, z, l?, a, r?
    srcRegsRelativeLats = [0, 0, 0, 2, 0, 0, 0]


class HPI_MOVT_A1(MinorFUTiming):
    description = "HPI_MOVT_A1"
    mask, match = t32_opcode("xxxx_0010_0100_xxxx__xxxx_xxxx_xxxx_xxxx")


class HPI_MUL_T1(MinorFUTiming):
    description = "HPI_MUL_T1"
    mask, match = t16_opcode("0100_0011_01xx_xxxx")


class HPI_MUL_T2(MinorFUTiming):
    description = "HPI_MUL_T2"
    mask, match = t32_opcode("1111_1011_0000_xxxx_1111_xxxx_0000_xxxx")


class HPI_PKH_T1(MinorFUTiming):
    description = "HPI_PKH_T1"
    mask, match = t32_opcode("1110_1010_110x_xxxx__xxxx_xxxx_xxxx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 1, 0]


class HPI_PKH_A1(MinorFUTiming):
    description = "HPI_PKH_A1"
    mask, match = a32_opcode("xxxx_0110_1000_xxxx__xxxx_xxxx_xx01_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 1, 0]


class HPI_QADD_QSUB_T1(MinorFUTiming):
    description = "HPI_QADD_QSUB_T1"
    mask, match = t32_opcode("1111_1010_1000_xxxx__1111_xxxx_10x0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 1, 0]


class HPI_QADD_QSUB_A1(MinorFUTiming):
    description = "HPI_QADD_QSUB_A1"
    mask, match = a32_opcode("xxxx_0001_00x0_xxxx__xxxx_xxxx_0101_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 1, 0]


# T1 QADD16 QADD8 QSUB16 QSUB8 UQADD16 UQADD8 UQSUB16 UQSUB8
class HPI_QADD_ETC_T1(MinorFUTiming):
    description = "HPI_QADD_ETC_T1"
    mask, match = t32_opcode("1111_1010_1x0x_xxxx__1111_xxxx_0x01_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 1, 0]


# A1 QADD16 QADD8 QSAX QSUB16 QSUB8 UQADD16 UQADD8 UQASX UQSAX UQSUB16 UQSUB8
class HPI_QADD_ETC_A1(MinorFUTiming):
    description = "HPI_QADD_ETC_A1"
    mask, match = a32_opcode("xxxx_0110_0x10_xxxx__xxxx_xxxx_xxx1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 1, 0]


class HPI_QASX_QSAX_UQASX_UQSAX_T1(MinorFUTiming):
    description = "HPI_QASX_QSAX_UQASX_UQSAX_T1"
    mask, match = t32_opcode("1111_1010_1x10_xxxx__1111_xxxx_0x01_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 1, 0]


class HPI_QDADD_QDSUB_T1(MinorFUTiming):
    description = "HPI_QDADD_QDSUB_T1"
    mask, match = t32_opcode("1111_1010_1000_xxxx__1111_xxxx_10x1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 1, 0]


class HPI_QDADD_QDSUB_A1(MinorFUTiming):
    description = "HPI_QDADD_QSUB_A1"
    mask, match = a32_opcode("xxxx_0001_01x0_xxxx__xxxx_xxxx_0101_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 1, 0]


class HPI_RBIT_A1(MinorFUTiming):
    description = "HPI_RBIT_A1"
    mask, match = a32_opcode("xxxx_0110_1111_xxxx__xxxx_xxxx_0011_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 0]


class HPI_REV_REV16_A1(MinorFUTiming):
    description = "HPI_REV_REV16_A1"
    mask, match = a32_opcode("xxxx_0110_1011_xxxx__xxxx_xxxx_x011_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 0]


class HPI_REVSH_A1(MinorFUTiming):
    description = "HPI_REVSH_A1"
    mask, match = a32_opcode("xxxx_0110_1111_xxxx__xxxx_xxxx_1011_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 0]


class HPI_ADD_ETC_A1(MinorFUTiming):
    description = "HPI_ADD_ETC_A1"
    mask, match = a32_opcode("xxxx_0110_0xx1_xxxx__xxxx_xxxx_x001_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 2, 0]


class HPI_ADD_ETC_T1(MinorFUTiming):
    description = "HPI_ADD_ETC_A1"
    mask, match = t32_opcode("1111_1010_100x_xxxx__1111_xxxx_0xx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 2, 0]


class HPI_SASX_SHASX_UASX_UHASX_A1(MinorFUTiming):
    description = "HPI_SASX_SHASX_UASX_UHASX_A1"
    mask, match = a32_opcode("xxxx_0110_0xx1_xxxx__xxxx_xxxx_0011_xxxx")
    srcRegsRelativeLats = [3, 3, 2, 2, 2, 1, 0]


class HPI_SBFX_UBFX_A1(MinorFUTiming):
    description = "HPI_SBFX_UBFX_A1"
    mask, match = a32_opcode("xxxx_0111_1x1x_xxxx__xxxx_xxxx_x101_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 0]


### SDIV

sdiv_lat_expr = expr_top(
    let(
        [
            ("left", un("SignExtend32To64", src_reg(4))),
            ("right", un("SignExtend32To64", src_reg(3))),
            (
                "either_signed",
                bin(
                    "Or",
                    bin("SLessThan", ref("left"), literal(0)),
                    bin("SLessThan", ref("right"), literal(0)),
                ),
            ),
            ("left_size", un("SizeInBits", un("Abs", ref("left")))),
            (
                "signed_adjust",
                if_expr(ref("either_signed"), literal(1), literal(0)),
            ),
            (
                "right_size",
                un(
                    "SizeInBits",
                    bin(
                        "UDiv",
                        un("Abs", ref("right")),
                        if_expr(ref("either_signed"), literal(4), literal(2)),
                    ),
                ),
            ),
            (
                "left_minus_right",
                if_expr(
                    bin("SLessThan", ref("left_size"), ref("right_size")),
                    literal(0),
                    bin("Sub", ref("left_size"), ref("right_size")),
                ),
            ),
        ],
        bin(
            "Add",
            ref("signed_adjust"),
            if_expr(
                bin("Equal", ref("right"), literal(0)),
                literal(0),
                bin("UDiv", ref("left_minus_right"), literal(4)),
            ),
        ),
    )
)

sdiv_lat_expr64 = expr_top(
    let(
        [
            ("left", un("SignExtend32To64", src_reg(0))),
            ("right", un("SignExtend32To64", src_reg(1))),
            (
                "either_signed",
                bin(
                    "Or",
                    bin("SLessThan", ref("left"), literal(0)),
                    bin("SLessThan", ref("right"), literal(0)),
                ),
            ),
            ("left_size", un("SizeInBits", un("Abs", ref("left")))),
            (
                "signed_adjust",
                if_expr(ref("either_signed"), literal(1), literal(0)),
            ),
            (
                "right_size",
                un(
                    "SizeInBits",
                    bin(
                        "UDiv",
                        un("Abs", ref("right")),
                        if_expr(ref("either_signed"), literal(4), literal(2)),
                    ),
                ),
            ),
            (
                "left_minus_right",
                if_expr(
                    bin("SLessThan", ref("left_size"), ref("right_size")),
                    literal(0),
                    bin("Sub", ref("left_size"), ref("right_size")),
                ),
            ),
        ],
        bin(
            "Add",
            ref("signed_adjust"),
            if_expr(
                bin("Equal", ref("right"), literal(0)),
                literal(0),
                bin("UDiv", ref("left_minus_right"), literal(4)),
            ),
        ),
    )
)


class HPI_SDIV_A1(MinorFUTiming):
    description = "HPI_SDIV_A1"
    mask, match = a32_opcode("xxxx_0111_0001_xxxx__xxxx_xxxx_0001_xxxx")
    extraCommitLat = 0
    srcRegsRelativeLats = []
    extraCommitLatExpr = sdiv_lat_expr


class HPI_SDIV_A64(MinorFUTiming):
    description = "HPI_SDIV_A64"
    mask, match = a64_opcode("x001_1010_110x_xxxx__0000_11xx_xxxx_xxxx")
    extraCommitLat = 0
    srcRegsRelativeLats = []
    extraCommitLatExpr = sdiv_lat_expr64


### SEL


class HPI_SEL_A1(MinorFUTiming):
    description = "HPI_SEL_A1"
    mask, match = a32_opcode("xxxx_0110_1000_xxxx__xxxx_xxxx_1011_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 2, 2, 0]


class HPI_SEL_A1_Suppress(MinorFUTiming):
    description = "HPI_SEL_A1_Suppress"
    mask, match = a32_opcode("xxxx_0110_1000_xxxx__xxxx_xxxx_1011_xxxx")
    srcRegsRelativeLats = []
    suppress = True


class HPI_SHSAX_SSAX_UHSAX_USAX_A1(MinorFUTiming):
    description = "HPI_SHSAX_SSAX_UHSAX_USAX_A1"
    mask, match = a32_opcode("xxxx_0110_0xx1_xxxx__xxxx_xxxx_0101_xxxx")
    # As Default
    srcRegsRelativeLats = [3, 3, 2, 2, 2, 1, 0]


class HPI_USUB_ETC_A1(MinorFUTiming):
    description = "HPI_USUB_ETC_A1"
    mask, match = a32_opcode("xxxx_0110_0xx1_xxxx__xxxx_xxxx_x111_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 2, 0]


class HPI_SMLABB_T1(MinorFUTiming):
    description = "HPI_SMLABB_T1"
    mask, match = t32_opcode("1111_1011_0001_xxxx__xxxx_xxxx_00xx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 2, 0]


class HPI_SMLABB_A1(MinorFUTiming):
    description = "HPI_SMLABB_A1"
    mask, match = a32_opcode("xxxx_0001_0000_xxxx__xxxx_xxxx_1xx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 2, 0]


class HPI_SMLAD_T1(MinorFUTiming):
    description = "HPI_SMLAD_T1"
    mask, match = t32_opcode("1111_1011_0010_xxxx__xxxx_xxxx_000x_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 2, 0]


class HPI_SMLAD_A1(MinorFUTiming):
    description = "HPI_SMLAD_A1"
    mask, match = a32_opcode("xxxx_0111_0000_xxxx__xxxx_xxxx_00x1_xxxx")
    # z, z, z, l, r, a
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 2, 0]


class HPI_SMLAL_T1(MinorFUTiming):
    description = "HPI_SMLAL_T1"
    mask, match = t32_opcode("1111_1011_1100_xxxx__xxxx_xxxx_0000_xxxx")


class HPI_SMLAL_A1(MinorFUTiming):
    description = "HPI_SMLAL_A1"
    mask, match = a32_opcode("xxxx_0000_111x_xxxx__xxxx_xxxx_1001_xxxx")


class HPI_SMLALBB_T1(MinorFUTiming):
    description = "HPI_SMLALBB_T1"
    mask, match = t32_opcode("1111_1011_1100_xxxx__xxxx_xxxx_10xx_xxxx")


class HPI_SMLALBB_A1(MinorFUTiming):
    description = "HPI_SMLALBB_A1"
    mask, match = a32_opcode("xxxx_0001_0100_xxxx__xxxx_xxxx_1xx0_xxxx")


class HPI_SMLALD_T1(MinorFUTiming):
    description = "HPI_SMLALD_T1"
    mask, match = t32_opcode("1111_1011_1100_xxxx__xxxx_xxxx_110x_xxxx")


class HPI_SMLALD_A1(MinorFUTiming):
    description = "HPI_SMLALD_A1"
    mask, match = a32_opcode("xxxx_0111_0100_xxxx__xxxx_xxxx_00x1_xxxx")


class HPI_SMLAWB_T1(MinorFUTiming):
    description = "HPI_SMLAWB_T1"
    mask, match = t32_opcode("1111_1011_0011_xxxx__xxxx_xxxx_000x_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 2, 0]


class HPI_SMLAWB_A1(MinorFUTiming):
    description = "HPI_SMLAWB_A1"
    mask, match = a32_opcode("xxxx_0001_0010_xxxx__xxxx_xxxx_1x00_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 2, 0]


class HPI_SMLSD_A1(MinorFUTiming):
    description = "HPI_SMLSD_A1"
    mask, match = a32_opcode("xxxx_0111_0000_xxxx__xxxx_xxxx_01x1_xxxx")


class HPI_SMLSLD_T1(MinorFUTiming):
    description = "HPI_SMLSLD_T1"
    mask, match = t32_opcode("1111_1011_1101_xxxx__xxxx_xxxx_110x_xxxx")


class HPI_SMLSLD_A1(MinorFUTiming):
    description = "HPI_SMLSLD_A1"
    mask, match = a32_opcode("xxxx_0111_0100_xxxx__xxxx_xxxx_01x1_xxxx")


class HPI_SMMLA_T1(MinorFUTiming):
    description = "HPI_SMMLA_T1"
    mask, match = t32_opcode("1111_1011_0101_xxxx__xxxx_xxxx_000x_xxxx")
    #                                              ^^^^ != 1111
    srcRegsRelativeLats = [0, 0, 0, 2, 0, 0, 0]


class HPI_SMMLA_A1(MinorFUTiming):
    description = "HPI_SMMLA_A1"
    # Note that this must be after the encoding for SMMUL
    mask, match = a32_opcode("xxxx_0111_0101_xxxx__xxxx_xxxx_00x1_xxxx")
    #                                              ^^^^ != 1111
    srcRegsRelativeLats = [0, 0, 0, 2, 0, 0, 0]


class HPI_SMMLS_T1(MinorFUTiming):
    description = "HPI_SMMLS_T1"
    mask, match = t32_opcode("1111_1011_0110_xxxx__xxxx_xxxx_000x_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 0, 0, 0]


class HPI_SMMLS_A1(MinorFUTiming):
    description = "HPI_SMMLS_A1"
    mask, match = a32_opcode("xxxx_0111_0101_xxxx__xxxx_xxxx_11x1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 0, 0, 0]


class HPI_SMMUL_T1(MinorFUTiming):
    description = "HPI_SMMUL_T1"
    mask, match = t32_opcode("1111_1011_0101_xxxx__1111_xxxx_000x_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0]


class HPI_SMMUL_A1(MinorFUTiming):
    description = "HPI_SMMUL_A1"
    mask, match = a32_opcode("xxxx_0111_0101_xxxx__1111_xxxx_00x1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0]


class HPI_SMUAD_T1(MinorFUTiming):
    description = "HPI_SMUAD_T1"
    mask, match = t32_opcode("1111_1011_0010_xxxx__1111_xxxx_000x_xxxx")


class HPI_SMUAD_A1(MinorFUTiming):
    description = "HPI_SMUAD_A1"
    mask, match = a32_opcode("xxxx_0111_0000_xxxx__1111_xxxx_00x1_xxxx")


class HPI_SMULBB_T1(MinorFUTiming):
    description = "HPI_SMULBB_T1"
    mask, match = t32_opcode("1111_1011_0001_xxxx__1111_xxxx_00xx_xxxx")


class HPI_SMULBB_A1(MinorFUTiming):
    description = "HPI_SMULBB_A1"
    mask, match = a32_opcode("xxxx_0001_0110_xxxx__xxxx_xxxx_1xx0_xxxx")


class HPI_SMULL_T1(MinorFUTiming):
    description = "HPI_SMULL_T1"
    mask, match = t32_opcode("1111_1011_1000_xxxx__xxxx_xxxx_0000_xxxx")


class HPI_SMULL_A1(MinorFUTiming):
    description = "HPI_SMULL_A1"
    mask, match = a32_opcode("xxxx_0000_110x_xxxx__xxxx_xxxx_1001_xxxx")


class HPI_SMULWB_T1(MinorFUTiming):
    description = "HPI_SMULWB_T1"
    mask, match = t32_opcode("1111_1011_0011_xxxx__1111_xxxx_000x_xxxx")


class HPI_SMULWB_A1(MinorFUTiming):
    description = "HPI_SMULWB_A1"
    mask, match = a32_opcode("xxxx_0001_0010_xxxx__xxxx_xxxx_1x10_xxxx")


class HPI_SMUSD_T1(MinorFUTiming):
    description = "HPI_SMUSD_T1"
    mask, match = t32_opcode("1111_1011_0100_xxxx__1111_xxxx_000x_xxxx")


class HPI_SMUSD_A1(MinorFUTiming):
    description = "HPI_SMUSD_A1"
    mask, match = a32_opcode("xxxx_0111_0000_xxxx__1111_xxxx_01x1_xxxx")


class HPI_SSAT_USAT_no_shift_A1(MinorFUTiming):
    description = "HPI_SSAT_USAT_no_shift_A1"
    # Order *before* shift
    mask, match = a32_opcode("xxxx_0110_1x1x_xxxx__xxxx_0000_0001_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 0]


class HPI_SSAT_USAT_shift_A1(MinorFUTiming):
    description = "HPI_SSAT_USAT_shift_A1"
    # Order after shift
    mask, match = a32_opcode("xxxx_0110_1x1x_xxxx__xxxx_xxxx_xx01_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 0]


class HPI_SSAT16_USAT16_A1(MinorFUTiming):
    description = "HPI_SSAT16_USAT16_A1"
    mask, match = a32_opcode("xxxx_0110_1x10_xxxx__xxxx_xxxx_0011_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 0]


class HPI_SXTAB_T1(MinorFUTiming):
    description = "HPI_SXTAB_T1"
    mask, match = t32_opcode("1111_1010_0100_xxxx__1111_xxxx_1xxx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 2, 0]


class HPI_SXTAB_SXTAB16_SXTAH_UXTAB_UXTAB16_UXTAH_A1(MinorFUTiming):
    description = "HPI_SXTAB_SXTAB16_SXTAH_UXTAB_UXTAB16_UXTAH_A1"
    # Place AFTER HPI_SXTB_SXTB16_SXTH_UXTB_UXTB16_UXTH_A1
    # e6[9d][^f]0070 are undefined
    mask, match = a32_opcode("xxxx_0110_1xxx_xxxx__xxxx_xxxx_0111_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 2, 0]


class HPI_SXTAB16_T1(MinorFUTiming):
    description = "HPI_SXTAB16_T1"
    mask, match = t32_opcode("1111_1010_0010_xxxx__1111_xxxx_1xxx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 2, 0]


class HPI_SXTAH_T1(MinorFUTiming):
    description = "HPI_SXTAH_T1"
    mask, match = t32_opcode("1111_1010_0000_xxxx__1111_xxxx_1xxx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 2, 0]


class HPI_SXTB_T1(MinorFUTiming):
    description = "HPI_SXTB_T1"
    mask, match = t16_opcode("1011_0010_01xx_xxxx")


class HPI_SXTB_T2(MinorFUTiming):
    description = "HPI_SXTB_T2"
    mask, match = t32_opcode("1111_1010_0100_1111__1111_xxxx_1xxx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 2, 0]


class HPI_SXTB_SXTB16_SXTH_UXTB_UXTB16_UXTH_A1(MinorFUTiming):
    description = "HPI_SXTB_SXTB16_SXTH_UXTB_UXTB16_UXTH_A1"
    # e6[9d]f0070 are undefined
    mask, match = a32_opcode("xxxx_0110_1xxx_1111__xxxx_xxxx_0111_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 2, 0]


class HPI_SXTB16_T1(MinorFUTiming):
    description = "HPI_SXTB16_T1"
    mask, match = t32_opcode("1111_1010_0010_1111__1111_xxxx_1xxx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 2, 0]


class HPI_SXTH_T1(MinorFUTiming):
    description = "HPI_SXTH_T1"
    mask, match = t16_opcode("1011_0010_00xx_xxxx")


class HPI_SXTH_T2(MinorFUTiming):
    description = "HPI_SXTH_T2"
    mask, match = t32_opcode("1111_1010_0000_1111__1111_xxxx_1xxx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 1, 2, 0]


class HPI_UDIV_T1(MinorFUTiming):
    description = "HPI_UDIV_T1"
    mask, match = t32_opcode("1111_1011_1011_xxxx__xxxx_xxxx_1111_xxxx")


udiv_lat_expr = expr_top(
    let(
        [
            ("left", src_reg(4)),
            ("right", src_reg(3)),
            ("left_size", un("SizeInBits", ref("left"))),
            (
                "right_size",
                un("SizeInBits", bin("UDiv", ref("right"), literal(2))),
            ),
            (
                "left_minus_right",
                if_expr(
                    bin("SLessThan", ref("left_size"), ref("right_size")),
                    literal(0),
                    bin("Sub", ref("left_size"), ref("right_size")),
                ),
            ),
        ],
        if_expr(
            bin("Equal", ref("right"), literal(0)),
            literal(0),
            bin("UDiv", ref("left_minus_right"), literal(4)),
        ),
    )
)


class HPI_UDIV_A1(MinorFUTiming):
    description = "HPI_UDIV_A1"
    mask, match = a32_opcode("xxxx_0111_0011_xxxx__xxxx_xxxx_0001_xxxx")
    extraCommitLat = 0
    srcRegsRelativeLats = []
    extraCommitLatExpr = udiv_lat_expr


class HPI_UMAAL_T1(MinorFUTiming):
    description = "HPI_UMAAL_T1"
    mask, match = t32_opcode("1111_1011_1110_xxxx__xxxx_xxxx_0110_xxxx")
    # z, z, z, dlo, dhi, l, r
    extraCommitLat = 1
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 0, 0]


class HPI_UMAAL_A1(MinorFUTiming):
    description = "HPI_UMAAL_A1"
    mask, match = a32_opcode("xxxx_0000_0100_xxxx__xxxx_xxxx_1001_xxxx")
    # z, z, z, dlo, dhi, l, r
    extraCommitLat = 1
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 0, 0]


class HPI_UMLAL_T1(MinorFUTiming):
    description = "HPI_UMLAL_T1"
    mask, match = t32_opcode("1111_1011_1110_xxxx__xxxx_xxxx_0000_xxxx")


class HPI_UMLAL_A1(MinorFUTiming):
    description = "HPI_UMLAL_A1"
    mask, match = t32_opcode("xxxx_0000_101x_xxxx__xxxx_xxxx_1001_xxxx")


class HPI_UMULL_T1(MinorFUTiming):
    description = "HPI_UMULL_T1"
    mask, match = t32_opcode("1111_1011_1010_xxxx__xxxx_xxxx_0000_xxxx")


class HPI_UMULL_A1(MinorFUTiming):
    description = "HPI_UMULL_A1"
    mask, match = a32_opcode("xxxx_0000_100x_xxxx__xxxx_xxxx_1001_xxxx")


class HPI_USAD8_USADA8_A1(MinorFUTiming):
    description = "HPI_USAD8_USADA8_A1"
    mask, match = a32_opcode("xxxx_0111_1000_xxxx__xxxx_xxxx_0001_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 2, 0]


class HPI_USAD8_USADA8_A1_Suppress(MinorFUTiming):
    description = "HPI_USAD8_USADA8_A1_Suppress"
    mask, match = a32_opcode("xxxx_0111_1000_xxxx__xxxx_xxxx_0001_xxxx")
    srcRegsRelativeLats = []
    suppress = True


class HPI_VMOV_immediate_A1(MinorFUTiming):
    description = "HPI_VMOV_register_A1"
    mask, match = a32_opcode("1111_0010_0x10_xxxx_xxxx_0001_xxx1_xxxx")
    # cpsr, z, z, z, hcptr, nsacr, cpacr, fpexc, scr
    srcRegsRelativeLats = [5, 5, 5, 5, 5, 5, 5, 5, 5, 0]


class HPI_VMRS_A1(MinorFUTiming):
    description = "HPI_VMRS_A1"
    mask, match = a32_opcode("xxxx_1110_1111_0001_xxxx_1010_xxx1_xxxx")
    # cpsr,z,z,z,hcptr,nsacr,cpacr,scr,r42
    srcRegsRelativeLats = [5, 5, 5, 5, 5, 5, 5, 5, 5, 0]


class HPI_VMOV_register_A2(MinorFUTiming):
    description = "HPI_VMOV_register_A2"
    mask, match = a32_opcode("xxxx_1110_1x11_0000_xxxx_101x_01x0_xxxx")
    # cpsr, z, r39, z, hcptr, nsacr, cpacr, fpexc, scr, f4, f5, f0, f1
    srcRegsRelativeLats = [
        5,
        5,
        5,
        5,
        5,
        5,
        5,
        5,
        5,
        4,
        4,
        4,
        4,
        4,
        4,
        4,
        4,
        0,
    ]


# VADD.I16 D/VADD.F32 D/VADD.I8 D/VADD.I32 D
class HPI_VADD2H_A32(MinorFUTiming):
    description = "Vadd2hALU"
    mask, match = a32_opcode("1111_0010_0xxx_xxxx__xxxx_1000_xxx0_xxxx")
    # cpsr, z, z, z, cpacr, fpexc, l0, r0, l1, r1, l2, r2, l3, r3 (for vadd2h)
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0]


# VAQQHN.I16 Q/VAQQHN.I32 Q/VAQQHN.I64 Q
class HPI_VADDHN_A32(MinorFUTiming):
    description = "VaddhnALU"
    mask, match = a32_opcode("1111_0010_1xxx_xxxx__xxxx_0100_x0x0_xxxx")
    # cpsr, z, z, z, cpacr, fpexc, l0, l1, l2, l3, r0, r1, r2, r3
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0]


class HPI_VADDL_A32(MinorFUTiming):
    description = "VaddlALU"
    mask, match = a32_opcode("1111_001x_1xxx_xxxx__xxxx_0000_x0x0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0]


class HPI_VADDW_A32(MinorFUTiming):
    description = "HPI_VADDW_A32"
    mask, match = a32_opcode("1111_001x_1xxx_xxxx__xxxx_0001_x0x0_xxxx")
    # cpsr, z, z, z, cpacr, fpexc, l0, l1, l2, l3, r0, r1
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 3, 3, 0]


# VHADD/VHSUB S8,S16,S32,U8,U16,U32 Q and D
class HPI_VHADD_A32(MinorFUTiming):
    description = "HPI_VHADD_A32"
    mask, match = a32_opcode("1111_001x_0xxx_xxxx__xxxx_00x0_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0]


class HPI_VPADAL_A32(MinorFUTiming):
    description = "VpadalALU"
    mask, match = a32_opcode("1111_0011_1x11_xx00__xxxx_0110_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0]


# VPADDH.I16
class HPI_VPADDH_A32(MinorFUTiming):
    description = "VpaddhALU"
    mask, match = a32_opcode("1111_0010_0xxx_xxxx__xxxx_1011_xxx1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0]


# VPADDH.F32
class HPI_VPADDS_A32(MinorFUTiming):
    description = "VpaddsALU"
    mask, match = a32_opcode("1111_0011_0x0x_xxxx__xxxx_1101_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0]


# VPADDL.S16
class HPI_VPADDL_A32(MinorFUTiming):
    description = "VpaddlALU"
    mask, match = a32_opcode("1111_0011_1x11_xx00__xxxx_0010_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0]


# VRADDHN.I16
class HPI_VRADDHN_A32(MinorFUTiming):
    description = "HPI_VRADDHN_A32"
    mask, match = a32_opcode("1111_0011_1xxx_xxxx__xxxx_0100_x0x0_xxxx")
    # cpsr, z, z, z, cpacr, fpexc, l0, l1, l2, l3, r0, r1, r2, r3
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0]


class HPI_VRHADD_A32(MinorFUTiming):
    description = "VrhaddALU"
    mask, match = a32_opcode("1111_001x_0xxx_xxxx__xxxx_0001_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0]


class HPI_VQADD_A32(MinorFUTiming):
    description = "VqaddALU"
    mask, match = a32_opcode("1111_001x_0xxx_xxxx__xxxx_0000_xxx1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0]


class HPI_VANDQ_A32(MinorFUTiming):
    description = "VandqALU"
    mask, match = a32_opcode("1111_0010_0x00_xxxx__xxxx_0001_xxx1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0]


# VMUL (integer)
class HPI_VMULI_A32(MinorFUTiming):
    description = "VmuliALU"
    mask, match = a32_opcode("1111_001x_0xxx_xxxx__xxxx_1001_xxx1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0]


# VBIC (reg)
class HPI_VBIC_A32(MinorFUTiming):
    description = "VbicALU"
    mask, match = a32_opcode("1111_0010_0x01_xxxx__xxxx_0001_xxx1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0]


# VBIF VBIT VBSL
class HPI_VBIF_ETC_A32(MinorFUTiming):
    description = "VbifALU"
    mask, match = a32_opcode("1111_0011_0xxx_xxxx__xxxx_0001_xxx1_xxxx")
    srcRegsRelativeLats = [
        0,
        0,
        0,
        0,
        0,
        0,
        5,
        5,
        5,
        5,
        5,
        5,
        5,
        5,
        5,
        5,
        5,
        5,
        0,
    ]


class HPI_VACGE_A32(MinorFUTiming):
    description = "VacgeALU"
    mask, match = a32_opcode("1111_0011_0xxx_xxxx__xxxx_1110_xxx1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


# VCEQ.F32
class HPI_VCEQ_A32(MinorFUTiming):
    description = "VceqALU"
    mask, match = a32_opcode("1111_0010_0x0x_xxxx__xxxx_1110_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


# VCEQ.[IS]... register
class HPI_VCEQI_A32(MinorFUTiming):
    description = "VceqiALU"
    mask, match = a32_opcode("1111_0011_0xxx_xxxx__xxxx_1000_xxx1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


# VCEQ.[IS]... immediate
class HPI_VCEQII_A32(MinorFUTiming):
    description = "HPI_VCEQII_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx01__xxxx_0x01_0xx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


class HPI_VTST_A32(MinorFUTiming):
    description = "HPI_VTST_A32"
    mask, match = a32_opcode("1111_0010_0xxx_xxxx__xxxx_1000_xxx1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0]


class HPI_VCLZ_A32(MinorFUTiming):
    description = "HPI_VCLZ_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx00__xxxx_0100_1xx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


class HPI_VCNT_A32(MinorFUTiming):
    description = "HPI_VCNT_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx00__xxxx_0101_0xx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


class HPI_VEXT_A32(MinorFUTiming):
    description = "HPI_VCNT_A32"
    mask, match = a32_opcode("1111_0010_1x11_xxxx__xxxx_xxxx_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


# VMAX VMIN integer
class HPI_VMAXI_A32(MinorFUTiming):
    description = "HPI_VMAXI_A32"
    mask, match = a32_opcode("1111_001x_0xxx_xxxx__xxxx_0110_xxxx_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


# VMAX VMIN float
class HPI_VMAXS_A32(MinorFUTiming):
    description = "HPI_VMAXS_A32"
    mask, match = a32_opcode("1111_0010_0xxx_xxxx__xxxx_1111_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0]


# VNEG integer
class HPI_VNEGI_A32(MinorFUTiming):
    description = "HPI_VNEGI_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx01__xxxx_0x11_1xx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


# VNEG float
class HPI_VNEGF_A32(MinorFUTiming):
    description = "HPI_VNEGF_A32"
    mask, match = a32_opcode("xxxx_1110_1x11_0001__xxxx_101x_01x0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0]


# VREV16 VREV32 VREV64
class HPI_VREVN_A32(MinorFUTiming):
    description = "HPI_VREVN_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx00__xxxx_000x_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0]


class HPI_VQNEG_A32(MinorFUTiming):
    description = "HPI_VQNEG_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx00__xxxx_0111_1xx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0]


class HPI_VSWP_A32(MinorFUTiming):
    description = "HPI_VSWP_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx10__xxxx_0000_0xx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0]


class HPI_VTRN_A32(MinorFUTiming):
    description = "HPI_VTRN_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx10__xxxx_0000_1xx0_xxxx")
    # cpsr, z, z, z, cpact, fpexc, o0, d0, o1, d1, o2, d2, o3, d3
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0]


# VQMOVN VQMOVUN
class HPI_VQMOVN_A32(MinorFUTiming):
    description = "HPI_VQMOVN_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx10__xxxx_0010_xxx0_xxxx")
    # cpsr, z, z, z, cpact, fpexc, o[0], o[1], o[2], o[3], fpscr
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0]


# VUZP double word
class HPI_VUZP_A32(MinorFUTiming):
    description = "HPI_VUZP_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx10__xxxx_0001_00x0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0]


# VDIV.F32
class HPI_VDIV32_A32(MinorFUTiming):
    description = "HPI_VDIV32_A32"
    mask, match = a32_opcode("xxxx_1110_1x00_xxxx__xxxx_1010_x0x0_xxxx")
    # cpsr, z, z, z, cpact, fpexc, fpscr_exc, l, r
    extraCommitLat = 9
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 20, 4, 4, 0]


# VDIV.F64
class HPI_VDIV64_A32(MinorFUTiming):
    description = "HPI_VDIV64_A32"
    mask, match = a32_opcode("xxxx_1110_1x00_xxxx__xxxx_1011_x0x0_xxxx")
    # cpsr, z, z, z, cpact, fpexc, fpscr_exc, l, r
    extraCommitLat = 18
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 20, 4, 4, 0]


class HPI_VZIP_A32(MinorFUTiming):
    description = "HPI_VZIP_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx10__xxxx_0001_1xx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 0]


# VPMAX integer
class HPI_VPMAX_A32(MinorFUTiming):
    description = "HPI_VPMAX_A32"
    mask, match = a32_opcode("1111_001x_0xxx_xxxx__xxxx_1010_xxxx_xxxx")
    # cpsr, z, z, z, cpact, fpexc, l0, r0, l1, r1, fpscr
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0]


# VPMAX float
class HPI_VPMAXF_A32(MinorFUTiming):
    description = "HPI_VPMAXF_A32"
    mask, match = a32_opcode("1111_0011_0xxx_xxxx__xxxx_1111_xxx0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0]


class HPI_VMOVN_A32(MinorFUTiming):
    description = "HPI_VMOVN_A32"
    mask, match = a32_opcode("1111_0011_1x11_xx10__xxxx_0010_00x0_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0]


class HPI_VMOVL_A32(MinorFUTiming):
    description = "HPI_VMOVL_A32"
    mask, match = a32_opcode("1111_001x_1xxx_x000__xxxx_1010_00x1_xxxx")
    srcRegsRelativeLats = [0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0]


# VSQRT.F64
class HPI_VSQRT64_A32(MinorFUTiming):
    description = "HPI_VSQRT64_A32"
    mask, match = a32_opcode("xxxx_1110_1x11_0001__xxxx_1011_11x0_xxxx")
    extraCommitLat = 18
    srcRegsRelativeLats = []


# VSQRT.F32
class HPI_VSQRT32_A32(MinorFUTiming):
    description = "HPI_VSQRT32_A32"
    mask, match = a32_opcode("xxxx_1110_1x11_0001__xxxx_1010_11x0_xxxx")
    extraCommitLat = 9
    srcRegsRelativeLats = []


class HPI_FloatSimdFU(MinorFU):
    opClasses = minorMakeOpClassSet(
        [
            "FloatAdd",
            "FloatCmp",
            "FloatCvt",
            "FloatMult",
            "FloatDiv",
            "FloatSqrt",
            "FloatMisc",
            "FloatMultAcc",
            "SimdAdd",
            "SimdAddAcc",
            "SimdAlu",
            "SimdCmp",
            "SimdCvt",
            "SimdMisc",
            "SimdMult",
            "SimdMultAcc",
            "SimdShift",
            "SimdShiftAcc",
            "SimdSqrt",
            "SimdFloatAdd",
            "SimdFloatAlu",
            "SimdFloatCmp",
            "SimdFloatCvt",
            "SimdFloatDiv",
            "SimdFloatMisc",
            "SimdFloatMult",
            "SimdFloatMultAcc",
            "SimdFloatSqrt",
        ]
    )

    timings = [
        # VUZP and VZIP must be before VADDW/L
        HPI_VUZP_A32(),
        HPI_VZIP_A32(),
        HPI_VADD2H_A32(),
        HPI_VADDHN_A32(),
        HPI_VADDL_A32(),
        HPI_VADDW_A32(),
        HPI_VHADD_A32(),
        HPI_VPADAL_A32(),
        HPI_VPADDH_A32(),
        HPI_VPADDS_A32(),
        HPI_VPADDL_A32(),
        HPI_VRADDHN_A32(),
        HPI_VRHADD_A32(),
        HPI_VQADD_A32(),
        HPI_VANDQ_A32(),
        HPI_VBIC_A32(),
        HPI_VBIF_ETC_A32(),
        HPI_VACGE_A32(),
        HPI_VCEQ_A32(),
        HPI_VCEQI_A32(),
        HPI_VCEQII_A32(),
        HPI_VTST_A32(),
        HPI_VCLZ_A32(),
        HPI_VCNT_A32(),
        HPI_VEXT_A32(),
        HPI_VMAXI_A32(),
        HPI_VMAXS_A32(),
        HPI_VNEGI_A32(),
        HPI_VNEGF_A32(),
        HPI_VREVN_A32(),
        HPI_VQNEG_A32(),
        HPI_VSWP_A32(),
        HPI_VTRN_A32(),
        HPI_VPMAX_A32(),
        HPI_VPMAXF_A32(),
        HPI_VMOVN_A32(),
        HPI_VMRS_A1(),
        HPI_VMOV_immediate_A1(),
        HPI_VMOV_register_A2(),
        HPI_VQMOVN_A32(),
        HPI_VMOVL_A32(),
        HPI_VDIV32_A32(),
        HPI_VDIV64_A32(),
        HPI_VSQRT32_A32(),
        HPI_VSQRT64_A32(),
        HPI_VMULI_A32(),
        # Add before here
        HPI_FMADD_A64(),
        HPI_FMSUB_D_A64(),
        HPI_FMOV_A64(),
        HPI_ADD_SUB_vector_scalar_A64(),
        HPI_ADD_SUB_vector_vector_A64(),
        HPI_FDIV_scalar_32_A64(),
        HPI_FDIV_scalar_64_A64(),
        HPI_DefaultA64Vfp(),
        HPI_DefaultVfp(),
    ]

    opLat = 6


class HPI_IntFU(MinorFU):
    opClasses = minorMakeOpClassSet(["IntAlu"])
    # IMPORTANT! Keep the order below, add new entries *at the head*
    timings = [
        HPI_SSAT_USAT_no_shift_A1(),
        HPI_SSAT_USAT_shift_A1(),
        HPI_SSAT16_USAT16_A1(),
        HPI_QADD_QSUB_A1(),
        HPI_QADD_QSUB_T1(),
        HPI_QADD_ETC_A1(),
        HPI_QASX_QSAX_UQASX_UQSAX_T1(),
        HPI_QADD_ETC_T1(),
        HPI_USUB_ETC_A1(),
        HPI_ADD_ETC_A1(),
        HPI_ADD_ETC_T1(),
        HPI_QDADD_QDSUB_A1(),
        HPI_QDADD_QDSUB_T1(),
        HPI_SASX_SHASX_UASX_UHASX_A1(),
        HPI_SHSAX_SSAX_UHSAX_USAX_A1(),
        HPI_SXTB_SXTB16_SXTH_UXTB_UXTB16_UXTH_A1(),
        # Must be after HPI_SXTB_SXTB16_SXTH_UXTB_UXTB16_UXTH_A1
        HPI_SXTAB_SXTAB16_SXTAH_UXTAB_UXTAB16_UXTAH_A1(),
        HPI_SXTAB_T1(),
        HPI_SXTAB16_T1(),
        HPI_SXTAH_T1(),
        HPI_SXTB_T2(),
        HPI_SXTB16_T1(),
        HPI_SXTH_T2(),
        HPI_PKH_A1(),
        HPI_PKH_T1(),
        HPI_SBFX_UBFX_A1(),
        HPI_SEL_A1(),
        HPI_RBIT_A1(),
        HPI_REV_REV16_A1(),
        HPI_REVSH_A1(),
        HPI_USAD8_USADA8_A1(),
        HPI_BFI_A1(),
        HPI_BFI_T1(),
        HPI_CMN_register_A1(),
        HPI_CMN_immediate_A1(),
        HPI_CMP_register_A1(),
        HPI_CMP_immediate_A1(),
        HPI_DataProcessingNoShift(),
        HPI_DataProcessingMovShiftr(),
        HPI_DataProcessingMayShift(),
        HPI_Cxxx_A64(),
        HPI_DefaultA64Int(),
        HPI_DefaultInt(),
    ]
    opLat = 3


class HPI_Int2FU(MinorFU):
    opClasses = minorMakeOpClassSet(["IntAlu"])
    # IMPORTANT! Keep the order below, add new entries *at the head*
    timings = [
        HPI_SSAT_USAT_no_shift_A1(),
        HPI_SSAT_USAT_shift_A1(),
        HPI_SSAT16_USAT16_A1(),
        HPI_QADD_QSUB_A1(),
        HPI_QADD_QSUB_T1(),
        HPI_QADD_ETC_A1(),
        HPI_QASX_QSAX_UQASX_UQSAX_T1(),
        HPI_QADD_ETC_T1(),
        HPI_USUB_ETC_A1(),
        HPI_ADD_ETC_A1(),
        HPI_ADD_ETC_T1(),
        HPI_QDADD_QDSUB_A1(),
        HPI_QDADD_QDSUB_T1(),
        HPI_SASX_SHASX_UASX_UHASX_A1(),
        HPI_SHSAX_SSAX_UHSAX_USAX_A1(),
        HPI_SXTB_SXTB16_SXTH_UXTB_UXTB16_UXTH_A1(),
        # Must be after HPI_SXTB_SXTB16_SXTH_UXTB_UXTB16_UXTH_A1
        HPI_SXTAB_SXTAB16_SXTAH_UXTAB_UXTAB16_UXTAH_A1(),
        HPI_SXTAB_T1(),
        HPI_SXTAB16_T1(),
        HPI_SXTAH_T1(),
        HPI_SXTB_T2(),
        HPI_SXTB16_T1(),
        HPI_SXTH_T2(),
        HPI_PKH_A1(),
        HPI_PKH_T1(),
        HPI_SBFX_UBFX_A1(),
        HPI_SEL_A1_Suppress(),
        HPI_RBIT_A1(),
        HPI_REV_REV16_A1(),
        HPI_REVSH_A1(),
        HPI_USAD8_USADA8_A1_Suppress(),
        HPI_BFI_A1(),
        HPI_BFI_T1(),
        HPI_CMN_register_A1(),  # Need to check for shift
        HPI_CMN_immediate_A1(),
        HPI_CMP_register_A1(),  # Need to check for shift
        HPI_CMP_immediate_A1(),
        HPI_DataProcessingNoShift(),
        HPI_DataProcessingAllowShifti(),
        # HPI_DataProcessingAllowMovShiftr(),
        # Data processing ops that match SuppressShift but are *not*
        # to be suppressed here
        HPI_CLZ_A1(),
        HPI_CLZ_T1(),
        HPI_DataProcessingSuppressShift(),
        # Can you dual issue a branch?
        # HPI_DataProcessingSuppressBranch(),
        HPI_Cxxx_A64(),
        HPI_DefaultA64Int(),
        HPI_DefaultInt(),
    ]
    opLat = 3


class HPI_IntMulFU(MinorFU):
    opClasses = minorMakeOpClassSet(["IntMult"])
    timings = [
        HPI_MLA_A1(),
        HPI_MLA_T1(),
        HPI_MLS_A1(),
        HPI_MLS_T1(),
        HPI_SMLABB_A1(),
        HPI_SMLABB_T1(),
        HPI_SMLAWB_A1(),
        HPI_SMLAWB_T1(),
        HPI_SMLAD_A1(),
        HPI_SMLAD_T1(),
        HPI_SMMUL_A1(),
        HPI_SMMUL_T1(),
        # SMMUL_A1 must be before SMMLA_A1
        HPI_SMMLA_A1(),
        HPI_SMMLA_T1(),
        HPI_SMMLS_A1(),
        HPI_SMMLS_T1(),
        HPI_UMAAL_A1(),
        HPI_UMAAL_T1(),
        HPI_MADD_A64(),
        HPI_DefaultA64Mul(),
        HPI_DefaultMul(),
    ]
    opLat = 3
    cantForwardFromFUIndices = [0, 1, 5]  # Int1, Int2, Mem


class HPI_IntDivFU(MinorFU):
    opClasses = minorMakeOpClassSet(["IntDiv"])
    timings = [HPI_SDIV_A1(), HPI_UDIV_A1(), HPI_SDIV_A64()]
    issueLat = 3
    opLat = 3


class HPI_MemFU(MinorFU):
    opClasses = minorMakeOpClassSet(
        ["MemRead", "MemWrite", "FloatMemRead", "FloatMemWrite"]
    )
    timings = [HPI_DefaultMem(), HPI_DefaultMem64()]
    opLat = 1
    cantForwardFromFUIndices = [5]  # Mem (this FU)


class HPI_MiscFU(MinorFU):
    opClasses = minorMakeOpClassSet(["IprAccess", "InstPrefetch"])
    opLat = 1


class HPI_FUPool(MinorFUPool):
    funcUnits = [
        HPI_IntFU(),  # 0
        HPI_Int2FU(),  # 1
        HPI_IntMulFU(),  # 2
        HPI_IntDivFU(),  # 3
        HPI_FloatSimdFU(),  # 4
        HPI_MemFU(),  # 5
        HPI_MiscFU(),  # 6
    ]


class HPI_MMU(ArmMMU):
    itb = ArmTLB(entry_type="instruction", size=256)
    dtb = ArmTLB(entry_type="data", size=256)


class HPI_BP(TournamentBP):
    localPredictorSize = 64
    localCtrBits = 2
    localHistoryTableSize = 64
    globalPredictorSize = 1024
    globalCtrBits = 2
    choicePredictorSize = 1024
    choiceCtrBits = 2
    BTBEntries = 128
    BTBTagSize = 18
    RASSize = 8
    instShiftAmt = 2


class HPI_ICache(Cache):
    data_latency = 1
    tag_latency = 1
    response_latency = 1
    mshrs = 2
    tgts_per_mshr = 8
    size = "32kB"
    assoc = 2
    # No prefetcher, this is handled by the core


class HPI_DCache(Cache):
    data_latency = 1
    tag_latency = 1
    response_latency = 1
    mshrs = 4
    tgts_per_mshr = 8
    size = "32kB"
    assoc = 4
    write_buffers = 4
    prefetcher = StridePrefetcher(queue_size=4, degree=4)


class HPI_L2(Cache):
    data_latency = 13
    tag_latency = 13
    response_latency = 5
    mshrs = 4
    tgts_per_mshr = 8
    size = "1024kB"
    assoc = 16
    write_buffers = 16
    # prefetcher FIXME


class HPI(ArmMinorCPU):
    # Inherit the doc string from the module to avoid repeating it
    # here.
    __doc__ = __doc__

    fetch1LineSnapWidth = 0
    fetch1LineWidth = 0
    fetch1FetchLimit = 1
    fetch1ToFetch2ForwardDelay = 1
    fetch1ToFetch2BackwardDelay = 1

    fetch2InputBufferSize = 2
    fetch2ToDecodeForwardDelay = 1
    fetch2CycleInput = True

    decodeInputBufferSize = 3
    decodeToExecuteForwardDelay = 1
    decodeInputWidth = 2
    decodeCycleInput = True

    executeInputWidth = 2
    executeCycleInput = True
    executeIssueLimit = 2

    # Only allow one ld/st to be issued but the second ld/st FU allows
    # back-to-back loads
    executeMemoryIssueLimit = 1

    executeCommitLimit = 2
    executeMemoryCommitLimit = 1
    executeInputBufferSize = 7

    executeMaxAccessesInMemory = 2

    executeLSQMaxStoreBufferStoresPerCycle = 2
    executeLSQRequestsQueueSize = 1
    executeLSQTransfersQueueSize = 2
    executeLSQStoreBufferSize = 5
    executeBranchDelay = 1
    executeFuncUnits = HPI_FUPool()
    executeSetTraceTimeOnCommit = True
    executeSetTraceTimeOnIssue = False

    executeAllowEarlyMemoryIssue = True

    enableIdling = True

    branchPred = HPI_BP()

    mmu = HPI_MMU()


__all__ = [
    "HPI_BP",
    "HPI_ITB",
    "HPI_DTB",
    "HPI_ICache",
    "HPI_DCache",
    "HPI_L2",
    "HPI",
]
