/* m32r simulator support code
- Copyright (C) 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1996-2022 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
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.
+ 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 General Public License for more details.
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* This must come before any other includes. */
+#include "defs.h"
#define WANT_CPU m32rbf
#define WANT_CPU_M32RBF
#include "sim-main.h"
#include "cgen-mem.h"
#include "cgen-ops.h"
+#include <stdlib.h>
+
+/* Return the size of REGNO in bytes. */
+
+static int
+m32rbf_register_size (int regno)
+{
+ return 4;
+}
/* Decode gdb ctrl register number. */
int
m32rbf_fetch_register (SIM_CPU *current_cpu, int rn, unsigned char *buf, int len)
{
+ int size = m32rbf_register_size (rn);
+ if (len != size)
+ return -1;
+
if (rn < 16)
SETTWI (buf, m32rbf_h_gr_get (current_cpu, rn));
else
return 0;
}
- return -1; /*FIXME*/
+ return size;
}
/* The contents of BUF are in target byte order. */
int
m32rbf_store_register (SIM_CPU *current_cpu, int rn, unsigned char *buf, int len)
{
+ int size = m32rbf_register_size (rn);
+ if (len != size)
+ return -1;
+
if (rn < 16)
m32rbf_h_gr_set (current_cpu, rn, GETTWI (buf));
else
return 0;
}
- return -1; /*FIXME*/
+ return size;
}
\f
USI