/* Engine header for Cpu tools GENerated simulators.
- Copyright (C) 1998, 1999, 2007, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 1998-2020 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
/* Instruction field support macros. */
-#define EXTRACT_MSB0_INT(val, total, start, length) \
+#define EXTRACT_MSB0_SINT(val, total, start, length) \
(((INT) (val) << ((sizeof (INT) * 8) - (total) + (start))) \
>> ((sizeof (INT) * 8) - (length)))
#define EXTRACT_MSB0_UINT(val, total, start, length) \
(((UINT) (val) << ((sizeof (UINT) * 8) - (total) + (start))) \
>> ((sizeof (UINT) * 8) - (length)))
-#define EXTRACT_LSB0_INT(val, total, start, length) \
+#define EXTRACT_LSB0_SINT(val, total, start, length) \
(((INT) (val) << ((sizeof (INT) * 8) - (start) - 1)) \
>> ((sizeof (INT) * 8) - (length)))
#define EXTRACT_LSB0_UINT(val, total, start, length) \
#ifdef __GNUC__
#define SEM_SET_FULL_CODE(abuf, idesc) \
do { (abuf)->semantic.sem_case = (idesc)->sem_full_lab; } while (0)
-#else
+#else
#define SEM_SET_FULL_CODE(abuf, idesc) \
do { (abuf)->semantic.sem_case = (idesc)->num; } while (0)
#endif
#ifdef __GNUC__
#define SEM_SET_FAST_CODE(abuf, idesc) \
do { (abuf)->semantic.sem_case = (idesc)->sem_fast_lab; } while (0)
-#else
+#else
#define SEM_SET_FAST_CODE(abuf, idesc) \
do { (abuf)->semantic.sem_case = (idesc)->num; } while (0)
#endif
/* Return pointer to ARGBUF given ptr to SCACHE. */
#define SEM_ARGBUF(sem_arg) (& (sem_arg) -> argbuf)
-/* There are several styles of engines, all generally supported by the
- same code:
-
- WITH_SCACHE && WITH_SCACHE_PBB - pseudo-basic-block scaching
- WITH_SCACHE && !WITH_SCACHE_PBB - scaching on an insn by insn basis
- !WITH_SCACHE - simple engine: fetch an insn, execute an insn
-
- ??? The !WITH_SCACHE case can also be broken up into two flavours:
- extract the fields of the insn into an ARGBUF struct, or defer the
- extraction to the semantic handler. The WITH_SCACHE case always
- extracts the fields into an ARGBUF struct. */
-
#if WITH_SCACHE
-#define CIA_ADDR(cia) (cia)
-
#if WITH_SCACHE_PBB
/* Return the scache pointer of the current insn. */
/* This is the "simple" engine case. */
-#define CIA_ADDR(cia) (cia)
-
#define SEM_SEM_ARG(vpc, sc) (sc)
#define SEM_NEXT_VPC(sem_arg, pc, len) ((pc) + (len))