#region License
/* 
 * Copyright (C) 1999-2024 John Källén.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; see the file COPYING.  If not, write to
 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 */
#endregion

namespace Reko.Arch.Infineon
{
    public enum Mnemonic
    {
        Invalid,
        Nyi,

        abs,
        abs_b,
        abs_h,
        absdif,
        absdif_b,
        absdif_h,
        absdifs,
        absdifs_b,
        absdifs_h,
        abss,
        abss_h,
        add,
        add_a,
        add_b,
        add_h,
        addc,
        addi,
        addih,
        addih_a,
        adds,
        adds_h,
        adds_hu,
        adds_u,
        addsc_a,
        addx,
        and,
        and_and_t,
        and_andn_t,
        and_eq,
        and_ge,
        and_ge_u,
        and_lt,
        and_lt_u,
        and_ne,
        and_nor_t,
        and_or_t,
        andn,
        bisr,
        cachea_i,
        cadd,
        caddn,
        call,
        calla,
        calli,
        cmov,
        cmovn,
        cmpswap_w,
        debug,
        dextr,
        disable,
        div,
        div_u,
        dsync,
        enable,
        eq,
        eq_a,
        eq_b,
        eq_h,
        eq_w,
        eqany_b,
        eqany_h,
        eqz_a,
        extr,
        extr_u,
        fcall,
        fcalla,
        fret,
        ge,
        ge_a,
        ge_u,
        imask,
        insert,
        isync,
        j,
        jeq,
        jeq_a,
        ji,
        jl,
        jlt,
        jlt_u,
        jli,
        jge,
        jgez,
        jge_u,
        jgtz,
        jltz,
        jne,
        jne_a,
        jnz,
        jnz_a,
        jnz_t,
        jz,
        jz_a,
        jz_t,
        ld_a,
        ld_b,
        ld_bu,
        ld_d,
        ld_h,
        ld_hu,
        ld_w,
        ldlcx,
        ldmst,
        lducx,
        lea,
        lha,
        loop,
        lt,
        lt_a,
        lt_b,
        lt_bu,
        lt_h,
        lt_hu,
        lt_u,
        lt_w,
        lt_wu,
        madd,
        madd_u,
        madds,
        madds_u,
        max,
        max_b,
        max_bu,
        max_h,
        max_hu,
        max_u,
        mfcr,
        min,
        min_b,
        min_bu,
        min_h,
        min_hu,
        min_u,
        mov,
        mov_a,
        mov_aa,
        mov_d,
        mov_u,
        movh,
        movh_a,
        mtcr,
        mul,
        mul_u,
        nand,
        nand_t,
        ne,
        ne_a,
        nez_a,
        nop,
        nor,
        not,
        or,
        or_eq,
        or_ge,
        or_ge_u,
        or_lt,
        or_lt_u,
        or_ne,
        or_t,
        orn,
        orn_t,
        restore,
        ret,
        rfe,
        rfm,
        rslcx,
        rsub,
        rsubs,
        rsubs_u,
        sat_b,
        sat_bu,
        sat_h,
        sat_hu,
        sel,
        seln,
        sh,
        sha,
        sh_and_t,
        sh_eq,
        sh_ge,
        sh_ge_u,
        sh_h,
        sh_lt,
        sh_lt_u,
        sh_ne,
        sha_h,
        shas,
        shuffle,
        st_a,
        st_b,
        st_da,
        st_h,
        st_w,
        stlcx,
        stucx,
        sub,
        sub_a,
        sub_b,
        sub_h,
        subc,
        subs,
        subx,
        subs_h,
        subs_hu,
        subs_u,
        swap_w,
        swapmsk_w,
        svlcx,
        trapsv,
        trapv,
        unpack,
        wait,
        xnor,
        xor,
        xnor_t,
        xor_eq,
        xor_ge,
        xor_ge_u,
        xor_lt,
        xor_lt_u,
        xor_ne,
        xor_t,
        msubs,
        msub_h,
        utof,
        fsub_f,
        updfl,
        qseed_f,
        q31tof,
        mul_f,
        msub_f,
        madd_f,
        itof,
        ftouz,
        ftou,
        ftoq31z,
        ftoq31,
        ftoiz,
        ftoi,
        div_f,
        cmp_f,
        add_f,
    }
}