1/*  maverick.h -- Cirrus/DSP co-processor interface header
2    Copyright (C) 2003-2020 Free Software Foundation, Inc.
3    Contributed by Aldy Hernandez (aldyh@redhat.com).
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
17
18/* Define Co-Processor instruction handlers here.  */
19
20/* Here's ARMulator's DSP definition.  A few things to note:
21   1) it has 16 64-bit registers and 4 72-bit accumulators
22   2) you can only access its registers with MCR and MRC.  */
23
24struct maverick_regs
25{
26  union
27  {
28    int i;
29    float f;
30  } upper;
31
32  union
33  {
34    int i;
35    float f;
36  } lower;
37};
38
39union maverick_acc_regs
40{
41  long double ld;		/* Acc registers are 72-bits.  */
42};
43
44extern struct maverick_regs DSPregs[16];
45extern union maverick_acc_regs DSPacc[4];
46extern ARMword DSPsc;
47