gpcas_forwardcom 0.2.1

ForwardCom instruction set architecture (ISA) properties for use with the General Purpose Core Architecture Simulator (GPCAS).
Documentation
// Filename: three_words.rs
// Author:	 Kai Rese
// Version:	 0.8
// Date:	 25-10-2022 (DD-MM-YYYY)
// Library:  gpcas_forwardcom
//
// Copyright (c) 2022 Kai Rese
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, 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 Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this program. If not, see
// <https://www.gnu.org/licenses/>.

//! All single format instructions using three instruction words.

use crate::emulator::instructions::functions::*;
use crate::emulator::instructions::*;

/// The table of the single format instructions for format 3.1.
///
/// Starts at opcode 8 because opcode 1-7 is used for jump instructions.
pub const FORMAT_3_1_INSTRUCTIONS: [SimpleIsaInstruction; 56] = [
    // 8
    UNSPECIFIED_INSTRUCTION,
    // 9
    UNSPECIFIED_INSTRUCTION,
    // 10
    UNSPECIFIED_INSTRUCTION,
    // 11
    UNSPECIFIED_INSTRUCTION,
    // 12
    UNSPECIFIED_INSTRUCTION,
    // 13
    UNSPECIFIED_INSTRUCTION,
    // 14
    UNSPECIFIED_INSTRUCTION,
    // 15
    UNSPECIFIED_INSTRUCTION,
    // 16
    UNSPECIFIED_INSTRUCTION,
    // 17
    UNSPECIFIED_INSTRUCTION,
    // 18
    UNSPECIFIED_INSTRUCTION,
    // 19
    UNSPECIFIED_INSTRUCTION,
    // 20
    UNSPECIFIED_INSTRUCTION,
    // 21
    UNSPECIFIED_INSTRUCTION,
    // 22
    UNSPECIFIED_INSTRUCTION,
    // 23
    UNSPECIFIED_INSTRUCTION,
    // 24
    UNSPECIFIED_INSTRUCTION,
    // 25
    UNSPECIFIED_INSTRUCTION,
    // 26
    UNSPECIFIED_INSTRUCTION,
    // 27
    UNSPECIFIED_INSTRUCTION,
    // 28
    UNSPECIFIED_INSTRUCTION,
    // 29
    UNSPECIFIED_INSTRUCTION,
    // 30
    UNSPECIFIED_INSTRUCTION,
    // 31
    UNSPECIFIED_INSTRUCTION,
    // 32
    SimpleIsaInstruction {
        function: replace,
        inputs: 2,
        instr_type: instruction_type::INT_SHIFT,
        ..SimpleIsaInstruction::DEFAULT
    },
    // 33
    NOT_YET_IMPLEMENTED_INSTRUCTION,
    // 34
    UNSPECIFIED_INSTRUCTION,
    // 35
    UNSPECIFIED_INSTRUCTION,
    // 36
    UNSPECIFIED_INSTRUCTION,
    // 37
    UNSPECIFIED_INSTRUCTION,
    // 38
    UNSPECIFIED_INSTRUCTION,
    // 39
    UNSPECIFIED_INSTRUCTION,
    // 40
    UNSPECIFIED_INSTRUCTION,
    // 41
    UNSPECIFIED_INSTRUCTION,
    // 42
    UNSPECIFIED_INSTRUCTION,
    // 43
    UNSPECIFIED_INSTRUCTION,
    // 44
    UNSPECIFIED_INSTRUCTION,
    // 45
    UNSPECIFIED_INSTRUCTION,
    // 46
    UNSPECIFIED_INSTRUCTION,
    // 47
    UNSPECIFIED_INSTRUCTION,
    // 48
    UNSPECIFIED_INSTRUCTION,
    // 49
    UNSPECIFIED_INSTRUCTION,
    // 50
    UNSPECIFIED_INSTRUCTION,
    // 51
    UNSPECIFIED_INSTRUCTION,
    // 52
    UNSPECIFIED_INSTRUCTION,
    // 53
    UNSPECIFIED_INSTRUCTION,
    // 54
    UNSPECIFIED_INSTRUCTION,
    // 55
    UNSPECIFIED_INSTRUCTION,
    // 56
    UNSPECIFIED_INSTRUCTION,
    // 57
    UNSPECIFIED_INSTRUCTION,
    // 58
    UNSPECIFIED_INSTRUCTION,
    // 59
    UNSPECIFIED_INSTRUCTION,
    // 60
    UNSPECIFIED_INSTRUCTION,
    // 61
    UNSPECIFIED_INSTRUCTION,
    // 62
    UNSPECIFIED_INSTRUCTION,
    // 63
    UNSPECIFIED_INSTRUCTION,
];