1 /* Simulator for TI MSP430 and MSP430x processors. 2 3 Copyright (C) 2012-2020 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 24 typedef enum { UNSIGN_32, SIGN_32, UNSIGN_MAC_32, SIGN_MAC_32 } hwmult_type; 25 typedef enum { UNSIGN_64, SIGN_64 } hw32mult_type; 26 27 struct msp430_cpu_state 28 { 29 int regs[16]; 30 int cio_breakpoint; 31 int cio_buffer; 32 33 hwmult_type hwmult_type; 34 unsigned16 hwmult_op1; 35 unsigned16 hwmult_op2; 36 unsigned32 hwmult_result; 37 signed32 hwmult_signed_result; 38 unsigned32 hwmult_accumulator; 39 signed32 hwmult_signed_accumulator; 40 41 hw32mult_type hw32mult_type; 42 unsigned32 hw32mult_op1; 43 unsigned32 hw32mult_op2; 44 unsigned64 hw32mult_result; 45 }; 46 47 #define HWMULT(SD, FIELD) MSP430_CPU (SD)->state.FIELD 48 49 #endif 50