1/* Simulator for TI MSP430 and MSP430x processors. 2 3 Copyright (C) 2012-2023 Free Software Foundation, Inc. 4 Contributed by Red Hat, Inc. 5 6 This file is part of simulators. 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20 21#ifndef _MSP430_SIM_H_ 22#define _MSP430_SIM_H_ 23 24typedef enum { UNSIGN_32, SIGN_32, UNSIGN_MAC_32, SIGN_MAC_32 } hwmult_type; 25typedef enum { UNSIGN_64, SIGN_64 } hw32mult_type; 26 27struct msp430_cpu_state 28{ 29 int regs[16]; 30 int cio_breakpoint; 31 int cio_buffer; 32 33 hwmult_type hwmult_type; 34 uint16_t hwmult_op1; 35 uint16_t hwmult_op2; 36 uint32_t hwmult_result; 37 int32_t hwmult_signed_result; 38 uint32_t hwmult_accumulator; 39 int32_t hwmult_signed_accumulator; 40 41 hw32mult_type hw32mult_type; 42 uint32_t hw32mult_op1; 43 uint32_t hw32mult_op2; 44 uint64_t hw32mult_result; 45}; 46 47#define HWMULT(SD, FIELD) MSP430_CPU (SD)->state.FIELD 48 49#endif 50