From ac1e9eca7030ead24000a8ab765b573ab0d38de2 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Sat, 24 Oct 2009 00:17:08 +0000 Subject: cpu/ * m32c.opc (opc.h): cgen-types.h -> cgen/basic-modes.h. cgen-ops.h -> cgen/basic-ops.h. include/opcode/ * cgen-bitset.h: Delete, moved to ../cgen/bitset.h. * cgen.h: Update. Improve multi-inclusion macro name. include/cgen/ * basic-modes.h: New file. Moved here from opcodes/cgen-types.h. * basic-ops.h: New file. Moved here from opcodes/cgen-ops.h. * bitset.h: New file. Moved here from ../opcode/cgen-bitset.h. Update license to GPL v3. opcodes/ * cgen-ops.h: Delete, moved to ../include/cgen/basic-ops.h. * cgen-types.h: Delete, moved to ../include/cgen/basic-modes.h. * cgen-bitset.c: Update. * fr30-desc.h: Regenerate. * frv-desc.h: Regenerate. * ip2k-desc.h: Regenerate. * iq2000-desc.h: Regenerate. * lm32-desc.h: Regenerate. * m32c-desc.h: Regenerate. * m32c-opc.h: Regenerate. * m32r-desc.h: Regenerate. * mep-desc.h: Regenerate. * mt-desc.h: Regenerate. * openrisc-desc.h: Regenerate. * xc16x-desc.h: Regenerate. * xstormy16-desc.h: Regenerate. --- cpu/ChangeLog | 5 + cpu/m32c.opc | 4 +- include/cgen/ChangeLog | 6 + include/cgen/basic-modes.h | 49 +++++ include/cgen/basic-ops.h | 347 ++++++++++++++++++++++++++++++++++ include/cgen/bitset.h | 56 ++++++ include/opcode/ChangeLog | 5 + include/opcode/cgen-bitset.h | 55 ------ include/opcode/cgen.h | 11 +- opcodes/ChangeLog | 19 ++ opcodes/cgen-bitset.c | 5 +- opcodes/cgen-ops.h | 432 ------------------------------------------- opcodes/cgen-types.h | 42 ----- opcodes/fr30-desc.h | 2 - opcodes/frv-desc.h | 2 - opcodes/ip2k-desc.h | 2 - opcodes/iq2000-desc.h | 2 - opcodes/lm32-desc.h | 2 - opcodes/m32c-desc.h | 2 - opcodes/m32c-opc.h | 4 +- opcodes/m32r-desc.h | 2 - opcodes/mep-desc.h | 2 - opcodes/mt-desc.h | 2 - opcodes/openrisc-desc.h | 2 - opcodes/xc16x-desc.h | 2 - opcodes/xstormy16-desc.h | 2 - 26 files changed, 500 insertions(+), 564 deletions(-) create mode 100644 include/cgen/ChangeLog create mode 100644 include/cgen/basic-modes.h create mode 100644 include/cgen/basic-ops.h create mode 100644 include/cgen/bitset.h delete mode 100644 include/opcode/cgen-bitset.h delete mode 100644 opcodes/cgen-ops.h delete mode 100644 opcodes/cgen-types.h diff --git a/cpu/ChangeLog b/cpu/ChangeLog index 2b8c45a4545..432540fc001 100644 --- a/cpu/ChangeLog +++ b/cpu/ChangeLog @@ -1,3 +1,8 @@ +2009-10-23 Doug Evans + + * m32c.opc (opc.h): cgen-types.h -> cgen/basic-modes.h. + cgen-ops.h -> cgen/basic-ops.h. + 2009-09-25 Alan Modra * m32r.cpu (stb-plus): Typo fix. diff --git a/cpu/m32c.opc b/cpu/m32c.opc index 40c3075fac8..bc983ea3e05 100644 --- a/cpu/m32c.opc +++ b/cpu/m32c.opc @@ -40,8 +40,8 @@ /* -- opc.h */ /* Needed for RTL's 'ext' and 'trunc' operators. */ -#include "cgen-types.h" -#include "cgen-ops.h" +#include "cgen/basic-modes.h" +#include "cgen/basic-ops.h" /* We can't use the default hash size because many bits are used by operands. */ diff --git a/include/cgen/ChangeLog b/include/cgen/ChangeLog new file mode 100644 index 00000000000..b9da0e687c7 --- /dev/null +++ b/include/cgen/ChangeLog @@ -0,0 +1,6 @@ +2009-10-23 Doug Evans + + * basic-modes.h: New file. Moved here from opcodes/cgen-types.h. + * basic-ops.h: New file. Moved here from opcodes/cgen-ops.h. + * bitset.h: New file. Moved here from ../opcode/cgen-bitset.h. + Update license to GPL v3. diff --git a/include/cgen/basic-modes.h b/include/cgen/basic-modes.h new file mode 100644 index 00000000000..7583ee4586b --- /dev/null +++ b/include/cgen/basic-modes.h @@ -0,0 +1,49 @@ +/* Basic CGEN modes. + Copyright 2005, 2007, 2009 Free Software Foundation, Inc. + Contributed by Red Hat. + + This file is part of the GNU opcodes library. + + This library 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 3, or (at your option) + any later version. + + It 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 library; see the file COPYING3. If not, write to the + Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#ifndef CGEN_BASIC_MODES_H +#define CGEN_BASIC_MODES_H + +/* This file doesn't contain all modes, + just the basic/portable ones. + It also provides access to stdint.h (*1) so the includer doesn't have + to deal with the portability issues. + (*1): To the extent that bfd_stdint.h does for now. */ + +/* IWBN to avoid unnecessary dependencies on bfd-anything. */ +#include "bfd_stdint.h" + +typedef int8_t QI; +typedef uint8_t UQI; + +typedef int16_t HI; +typedef uint16_t UHI; + +typedef int32_t SI; +typedef uint32_t USI; + +typedef int64_t DI; +typedef uint64_t UDI; + +typedef int INT; +typedef unsigned int UINT; + +#endif /* CGEN_BASIC_MODES_H */ diff --git a/include/cgen/basic-ops.h b/include/cgen/basic-ops.h new file mode 100644 index 00000000000..324f0b15ebd --- /dev/null +++ b/include/cgen/basic-ops.h @@ -0,0 +1,347 @@ +/* Basic semantics ops support for CGEN. + Copyright 2005, 2007, 2009 Free Software Foundation, Inc. + Contributed by Red Hat. + + This file is part of the GNU opcodes library. + + This library 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 3, or (at your option) + any later version. + + It 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 library; see the file COPYING3. If not, write to the + Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#ifndef CGEN_BASIC_OPS_H +#define CGEN_BASIC_OPS_H + +#include + +#if defined (__GNUC__) && ! defined (SEMOPS_DEFINE_INLINE) +#define SEMOPS_DEFINE_INLINE +#define SEMOPS_INLINE extern inline +#else +#define SEMOPS_INLINE +#endif + +/* These don't really have a mode. */ +#define ANDIF(x, y) ((x) && (y)) +#define ORIF(x, y) ((x) || (y)) + +#define SUBBI(x, y) ((x) - (y)) +#define ANDBI(x, y) ((x) & (y)) +#define ORBI(x, y) ((x) | (y)) +#define XORBI(x, y) ((x) ^ (y)) +#define NEGBI(x) (- (x)) +#define NOTBI(x) (! (BI) (x)) +#define INVBI(x) (~ (x)) +#define EQBI(x, y) ((BI) (x) == (BI) (y)) +#define NEBI(x, y) ((BI) (x) != (BI) (y)) +#define LTBI(x, y) ((BI) (x) < (BI) (y)) +#define LEBI(x, y) ((BI) (x) <= (BI) (y)) +#define GTBI(x, y) ((BI) (x) > (BI) (y)) +#define GEBI(x, y) ((BI) (x) >= (BI) (y)) +#define LTUBI(x, y) ((BI) (x) < (BI) (y)) +#define LEUBI(x, y) ((BI) (x) <= (BI) (y)) +#define GTUBI(x, y) ((BI) (x) > (BI) (y)) +#define GEUBI(x, y) ((BI) (x) >= (BI) (y)) + +#define ADDQI(x, y) ((x) + (y)) +#define SUBQI(x, y) ((x) - (y)) +#define MULQI(x, y) ((x) * (y)) +#define DIVQI(x, y) ((QI) (x) / (QI) (y)) +#define UDIVQI(x, y) ((UQI) (x) / (UQI) (y)) +#define MODQI(x, y) ((QI) (x) % (QI) (y)) +#define UMODQI(x, y) ((UQI) (x) % (UQI) (y)) +#define SRAQI(x, y) ((QI) (x) >> (y)) +#define SRLQI(x, y) ((UQI) (x) >> (y)) +#define SLLQI(x, y) ((UQI) (x) << (y)) +extern QI RORQI (QI, int); +extern QI ROLQI (QI, int); +#define ANDQI(x, y) ((x) & (y)) +#define ORQI(x, y) ((x) | (y)) +#define XORQI(x, y) ((x) ^ (y)) +#define NEGQI(x) (- (x)) +#define NOTQI(x) (! (QI) (x)) +#define INVQI(x) (~ (x)) +#define ABSQI(x) ((x) < 0 ? -(x) : (x)) +#define EQQI(x, y) ((QI) (x) == (QI) (y)) +#define NEQI(x, y) ((QI) (x) != (QI) (y)) +#define LTQI(x, y) ((QI) (x) < (QI) (y)) +#define LEQI(x, y) ((QI) (x) <= (QI) (y)) +#define GTQI(x, y) ((QI) (x) > (QI) (y)) +#define GEQI(x, y) ((QI) (x) >= (QI) (y)) +#define LTUQI(x, y) ((UQI) (x) < (UQI) (y)) +#define LEUQI(x, y) ((UQI) (x) <= (UQI) (y)) +#define GTUQI(x, y) ((UQI) (x) > (UQI) (y)) +#define GEUQI(x, y) ((UQI) (x) >= (UQI) (y)) + +#define ADDHI(x, y) ((x) + (y)) +#define SUBHI(x, y) ((x) - (y)) +#define MULHI(x, y) ((x) * (y)) +#define DIVHI(x, y) ((HI) (x) / (HI) (y)) +#define UDIVHI(x, y) ((UHI) (x) / (UHI) (y)) +#define MODHI(x, y) ((HI) (x) % (HI) (y)) +#define UMODHI(x, y) ((UHI) (x) % (UHI) (y)) +#define SRAHI(x, y) ((HI) (x) >> (y)) +#define SRLHI(x, y) ((UHI) (x) >> (y)) +#define SLLHI(x, y) ((UHI) (x) << (y)) +extern HI RORHI (HI, int); +extern HI ROLHI (HI, int); +#define ANDHI(x, y) ((x) & (y)) +#define ORHI(x, y) ((x) | (y)) +#define XORHI(x, y) ((x) ^ (y)) +#define NEGHI(x) (- (x)) +#define NOTHI(x) (! (HI) (x)) +#define INVHI(x) (~ (x)) +#define ABSHI(x) ((x) < 0 ? -(x) : (x)) +#define EQHI(x, y) ((HI) (x) == (HI) (y)) +#define NEHI(x, y) ((HI) (x) != (HI) (y)) +#define LTHI(x, y) ((HI) (x) < (HI) (y)) +#define LEHI(x, y) ((HI) (x) <= (HI) (y)) +#define GTHI(x, y) ((HI) (x) > (HI) (y)) +#define GEHI(x, y) ((HI) (x) >= (HI) (y)) +#define LTUHI(x, y) ((UHI) (x) < (UHI) (y)) +#define LEUHI(x, y) ((UHI) (x) <= (UHI) (y)) +#define GTUHI(x, y) ((UHI) (x) > (UHI) (y)) +#define GEUHI(x, y) ((UHI) (x) >= (UHI) (y)) + +#define ADDSI(x, y) ((x) + (y)) +#define SUBSI(x, y) ((x) - (y)) +#define MULSI(x, y) ((x) * (y)) +#define DIVSI(x, y) ((SI) (x) / (SI) (y)) +#define UDIVSI(x, y) ((USI) (x) / (USI) (y)) +#define MODSI(x, y) ((SI) (x) % (SI) (y)) +#define UMODSI(x, y) ((USI) (x) % (USI) (y)) +#define SRASI(x, y) ((SI) (x) >> (y)) +#define SRLSI(x, y) ((USI) (x) >> (y)) +#define SLLSI(x, y) ((USI) (x) << (y)) +extern SI RORSI (SI, int); +extern SI ROLSI (SI, int); +#define ANDSI(x, y) ((x) & (y)) +#define ORSI(x, y) ((x) | (y)) +#define XORSI(x, y) ((x) ^ (y)) +#define NEGSI(x) (- (x)) +#define NOTSI(x) (! (SI) (x)) +#define INVSI(x) (~ (x)) +#define ABSSI(x) ((x) < 0 ? -(x) : (x)) +#define EQSI(x, y) ((SI) (x) == (SI) (y)) +#define NESI(x, y) ((SI) (x) != (SI) (y)) +#define LTSI(x, y) ((SI) (x) < (SI) (y)) +#define LESI(x, y) ((SI) (x) <= (SI) (y)) +#define GTSI(x, y) ((SI) (x) > (SI) (y)) +#define GESI(x, y) ((SI) (x) >= (SI) (y)) +#define LTUSI(x, y) ((USI) (x) < (USI) (y)) +#define LEUSI(x, y) ((USI) (x) <= (USI) (y)) +#define GTUSI(x, y) ((USI) (x) > (USI) (y)) +#define GEUSI(x, y) ((USI) (x) >= (USI) (y)) + +#ifdef DI_FN_SUPPORT +extern DI ADDDI (DI, DI); +extern DI SUBDI (DI, DI); +extern DI MULDI (DI, DI); +extern DI DIVDI (DI, DI); +extern DI UDIVDI (DI, DI); +extern DI MODDI (DI, DI); +extern DI UMODDI (DI, DI); +extern DI SRADI (DI, int); +extern UDI SRLDI (UDI, int); +extern UDI SLLDI (UDI, int); +extern DI RORDI (DI, int); +extern DI ROLDI (DI, int); +extern DI ANDDI (DI, DI); +extern DI ORDI (DI, DI); +extern DI XORDI (DI, DI); +extern DI NEGDI (DI); +extern int NOTDI (DI); +extern DI INVDI (DI); +extern int EQDI (DI, DI); +extern int NEDI (DI, DI); +extern int LTDI (DI, DI); +extern int LEDI (DI, DI); +extern int GTDI (DI, DI); +extern int GEDI (DI, DI); +extern int LTUDI (UDI, UDI); +extern int LEUDI (UDI, UDI); +extern int GTUDI (UDI, UDI); +extern int GEUDI (UDI, UDI); +#else /* ! DI_FN_SUPPORT */ +#define ADDDI(x, y) ((x) + (y)) +#define SUBDI(x, y) ((x) - (y)) +#define MULDI(x, y) ((x) * (y)) +#define DIVDI(x, y) ((DI) (x) / (DI) (y)) +#define UDIVDI(x, y) ((UDI) (x) / (UDI) (y)) +#define MODDI(x, y) ((DI) (x) % (DI) (y)) +#define UMODDI(x, y) ((UDI) (x) % (UDI) (y)) +#define SRADI(x, y) ((DI) (x) >> (y)) +#define SRLDI(x, y) ((UDI) (x) >> (y)) +#define SLLDI(x, y) ((UDI) (x) << (y)) +extern DI RORDI (DI, int); +extern DI ROLDI (DI, int); +#define ANDDI(x, y) ((x) & (y)) +#define ORDI(x, y) ((x) | (y)) +#define XORDI(x, y) ((x) ^ (y)) +#define NEGDI(x) (- (x)) +#define NOTDI(x) (! (DI) (x)) +#define INVDI(x) (~ (x)) +#define ABSDI(x) ((x) < 0 ? -(x) : (x)) +#define EQDI(x, y) ((DI) (x) == (DI) (y)) +#define NEDI(x, y) ((DI) (x) != (DI) (y)) +#define LTDI(x, y) ((DI) (x) < (DI) (y)) +#define LEDI(x, y) ((DI) (x) <= (DI) (y)) +#define GTDI(x, y) ((DI) (x) > (DI) (y)) +#define GEDI(x, y) ((DI) (x) >= (DI) (y)) +#define LTUDI(x, y) ((UDI) (x) < (UDI) (y)) +#define LEUDI(x, y) ((UDI) (x) <= (UDI) (y)) +#define GTUDI(x, y) ((UDI) (x) > (UDI) (y)) +#define GEUDI(x, y) ((UDI) (x) >= (UDI) (y)) +#endif /* DI_FN_SUPPORT */ + +#define EXTBIQI(x) ((QI) (BI) (x)) +#define EXTBIHI(x) ((HI) (BI) (x)) +#define EXTBISI(x) ((SI) (BI) (x)) +#if defined (DI_FN_SUPPORT) +extern DI EXTBIDI (BI); +#else +#define EXTBIDI(x) ((DI) (BI) (x)) +#endif +#define EXTQIHI(x) ((HI) (QI) (x)) +#define EXTQISI(x) ((SI) (QI) (x)) +#if defined (DI_FN_SUPPORT) +extern DI EXTQIDI (QI); +#else +#define EXTQIDI(x) ((DI) (QI) (x)) +#endif +#define EXTHIHI(x) ((HI) (HI) (x)) +#define EXTHISI(x) ((SI) (HI) (x)) +#define EXTSISI(x) ((SI) (SI) (x)) +#if defined (DI_FN_SUPPORT) +extern DI EXTHIDI (HI); +#else +#define EXTHIDI(x) ((DI) (HI) (x)) +#endif +#if defined (DI_FN_SUPPORT) +extern DI EXTSIDI (SI); +#else +#define EXTSIDI(x) ((DI) (SI) (x)) +#endif + +#define ZEXTBIQI(x) ((QI) (BI) (x)) +#define ZEXTBIHI(x) ((HI) (BI) (x)) +#define ZEXTBISI(x) ((SI) (BI) (x)) +#if defined (DI_FN_SUPPORT) +extern DI ZEXTBIDI (BI); +#else +#define ZEXTBIDI(x) ((DI) (BI) (x)) +#endif +#define ZEXTQIHI(x) ((HI) (UQI) (x)) +#define ZEXTQISI(x) ((SI) (UQI) (x)) +#if defined (DI_FN_SUPPORT) +extern DI ZEXTQIDI (QI); +#else +#define ZEXTQIDI(x) ((DI) (UQI) (x)) +#endif +#define ZEXTHISI(x) ((SI) (UHI) (x)) +#define ZEXTHIHI(x) ((HI) (UHI) (x)) +#define ZEXTSISI(x) ((SI) (USI) (x)) +#if defined (DI_FN_SUPPORT) +extern DI ZEXTHIDI (HI); +#else +#define ZEXTHIDI(x) ((DI) (UHI) (x)) +#endif +#if defined (DI_FN_SUPPORT) +extern DI ZEXTSIDI (SI); +#else +#define ZEXTSIDI(x) ((DI) (USI) (x)) +#endif + +#define TRUNCQIBI(x) ((BI) (QI) (x)) +#define TRUNCHIBI(x) ((BI) (HI) (x)) +#define TRUNCHIQI(x) ((QI) (HI) (x)) +#define TRUNCSIBI(x) ((BI) (SI) (x)) +#define TRUNCSIQI(x) ((QI) (SI) (x)) +#define TRUNCSIHI(x) ((HI) (SI) (x)) +#define TRUNCSISI(x) ((SI) (SI) (x)) +#if defined (DI_FN_SUPPORT) +extern BI TRUNCDIBI (DI); +#else +#define TRUNCDIBI(x) ((BI) (DI) (x)) +#endif +#if defined (DI_FN_SUPPORT) +extern QI TRUNCDIQI (DI); +#else +#define TRUNCDIQI(x) ((QI) (DI) (x)) +#endif +#if defined (DI_FN_SUPPORT) +extern HI TRUNCDIHI (DI); +#else +#define TRUNCDIHI(x) ((HI) (DI) (x)) +#endif +#if defined (DI_FN_SUPPORT) +extern SI TRUNCDISI (DI); +#else +#define TRUNCDISI(x) ((SI) (DI) (x)) +#endif + +/* Composing/decomposing the various types. + Word ordering is endian-independent. Words are specified most to least + significant and word number 0 is the most significant word. + ??? May also wish an endian-dependent version. Later. */ + +QI SUBWORDSIQI (SI, int); +HI SUBWORDSIHI (SI, int); +QI SUBWORDDIQI (DI, int); +HI SUBWORDDIHI (DI, int); +SI SUBWORDDISI (DI, int); + +#ifdef SEMOPS_DEFINE_INLINE + +SEMOPS_INLINE QI +SUBWORDSIQI (SI in, int byte) +{ + assert (byte >= 0 && byte <= 3); + return (UQI) (in >> (8 * (3 - byte))) & 0xFF; +} + +SEMOPS_INLINE HI +SUBWORDSIHI (SI in, int word) +{ + if (word == 0) + return (USI) in >> 16; + else + return in; +} + +SEMOPS_INLINE QI +SUBWORDDIQI (DI in, int byte) +{ + assert (byte >= 0 && byte <= 7); + return (UQI) (in >> (8 * (7 - byte))) & 0xFF; +} + +SEMOPS_INLINE HI +SUBWORDDIHI (DI in, int word) +{ + assert (word >= 0 && word <= 3); + return (UHI) (in >> (16 * (3 - word))) & 0xFFFF; +} + +SEMOPS_INLINE SI +SUBWORDDISI (DI in, int word) +{ + if (word == 0) + return (UDI) in >> 32; + else + return in; +} + +#endif /* SUBWORD,JOIN */ + +#endif /* CGEN_BASIC_OPS_H */ diff --git a/include/cgen/bitset.h b/include/cgen/bitset.h new file mode 100644 index 00000000000..7a6a9930456 --- /dev/null +++ b/include/cgen/bitset.h @@ -0,0 +1,56 @@ +/* Header file the type CGEN_BITSET. + Copyright 2002, 2005, 2009 Free Software Foundation, Inc. + + This file is part of the GNU opcodes library. + + This library 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 3, or (at your option) + any later version. + + It 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 library; see the file COPYING3. If not, write to the + Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#ifndef CGEN_BITSET_H +#define CGEN_BITSET_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* A bitmask represented as a string. + Each member of the set is represented as a bit + in the string. Bytes are indexed from left to right in the string and + bits from most significant to least within each byte. + + For example, the bit representing member number 6 is (set->bits[0] & 0x02). +*/ +typedef struct cgen_bitset +{ + unsigned length; + char *bits; +} CGEN_BITSET; + +extern CGEN_BITSET *cgen_bitset_create PARAMS ((unsigned)); +extern void cgen_bitset_init PARAMS ((CGEN_BITSET *, unsigned)); +extern void cgen_bitset_clear PARAMS ((CGEN_BITSET *)); +extern void cgen_bitset_add PARAMS ((CGEN_BITSET *, unsigned)); +extern void cgen_bitset_set PARAMS ((CGEN_BITSET *, unsigned)); +extern int cgen_bitset_compare PARAMS ((CGEN_BITSET *, CGEN_BITSET *)); +extern void cgen_bitset_union PARAMS ((CGEN_BITSET *, CGEN_BITSET *, CGEN_BITSET *)); +extern int cgen_bitset_intersect_p PARAMS ((CGEN_BITSET *, CGEN_BITSET *)); +extern int cgen_bitset_contains PARAMS ((CGEN_BITSET *, unsigned)); +extern CGEN_BITSET *cgen_bitset_copy PARAMS ((CGEN_BITSET *)); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 44d1432a2b8..ec2bf97ddab 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,8 @@ +2009-10-23 Doug Evans + + * cgen-bitset.h: Delete, moved to ../cgen/bitset.h. + * cgen.h: Update. Improve multi-inclusion macro name. + 2009-10-02 Peter Bergner * ppc.h (PPC_OPCODE_476): Define. diff --git a/include/opcode/cgen-bitset.h b/include/opcode/cgen-bitset.h deleted file mode 100644 index 1b6fbe32cf9..00000000000 --- a/include/opcode/cgen-bitset.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Header file the type CGEN_BITSET. - -Copyright 2002, 2005 Free Software Foundation, Inc. - -This file is part of GDB, the GNU debugger, and the GNU Binutils. - -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 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. */ -#ifndef CGEN_BITSET_H -#define CGEN_BITSET_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* A bitmask represented as a string. - Each member of the set is represented as a bit - in the string. Bytes are indexed from left to right in the string and - bits from most significant to least within each byte. - - For example, the bit representing member number 6 is (set->bits[0] & 0x02). -*/ -typedef struct cgen_bitset -{ - unsigned length; - char *bits; -} CGEN_BITSET; - -extern CGEN_BITSET *cgen_bitset_create PARAMS ((unsigned)); -extern void cgen_bitset_init PARAMS ((CGEN_BITSET *, unsigned)); -extern void cgen_bitset_clear PARAMS ((CGEN_BITSET *)); -extern void cgen_bitset_add PARAMS ((CGEN_BITSET *, unsigned)); -extern void cgen_bitset_set PARAMS ((CGEN_BITSET *, unsigned)); -extern int cgen_bitset_compare PARAMS ((CGEN_BITSET *, CGEN_BITSET *)); -extern void cgen_bitset_union PARAMS ((CGEN_BITSET *, CGEN_BITSET *, CGEN_BITSET *)); -extern int cgen_bitset_intersect_p PARAMS ((CGEN_BITSET *, CGEN_BITSET *)); -extern int cgen_bitset_contains PARAMS ((CGEN_BITSET *, unsigned)); -extern CGEN_BITSET *cgen_bitset_copy PARAMS ((CGEN_BITSET *)); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h index e8fd5d3d9f7..0d9fa717400 100644 --- a/include/opcode/cgen.h +++ b/include/opcode/cgen.h @@ -1,6 +1,6 @@ /* Header file for targets using CGEN: Cpu tools GENerator. -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. This file is part of GDB, the GNU debugger, and the GNU Binutils. @@ -19,11 +19,12 @@ 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifndef CGEN_H -#define CGEN_H +#ifndef OPCODE_CGEN_H +#define OPCODE_CGEN_H #include "symcat.h" -#include "cgen-bitset.h" +#include "cgen/bitset.h" + /* ??? This file requires bfd.h but only to get bfd_vma. Seems like an awful lot to require just to get such a fundamental type. Perhaps the definition of bfd_vma can be moved outside of bfd.h. @@ -1470,4 +1471,4 @@ extern void cgen_clear_signed_overflow_ok (CGEN_CPU_DESC); /* Will an error message be generated if a signed field in an instruction overflows ? */ extern unsigned int cgen_signed_overflow_ok_p (CGEN_CPU_DESC); -#endif /* CGEN_H */ +#endif /* OPCODE_CGEN_H */ diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index a545ea947a0..b4bc9aca0a2 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,22 @@ +2009-10-23 Doug Evans + + * cgen-ops.h: Delete, moved to ../include/cgen/basic-ops.h. + * cgen-types.h: Delete, moved to ../include/cgen/basic-modes.h. + * cgen-bitset.c: Update. + * fr30-desc.h: Regenerate. + * frv-desc.h: Regenerate. + * ip2k-desc.h: Regenerate. + * iq2000-desc.h: Regenerate. + * lm32-desc.h: Regenerate. + * m32c-desc.h: Regenerate. + * m32c-opc.h: Regenerate. + * m32r-desc.h: Regenerate. + * mep-desc.h: Regenerate. + * mt-desc.h: Regenerate. + * openrisc-desc.h: Regenerate. + * xc16x-desc.h: Regenerate. + * xstormy16-desc.h: Regenerate. + 2009-10-22 DJ Delorie * rx-decode.opc (decode_opcode): Fix flags for MUL, SUNTIL, and SWHILE. diff --git a/opcodes/cgen-bitset.c b/opcodes/cgen-bitset.c index 4f4bcc0d33b..34d31d71c19 100644 --- a/opcodes/cgen-bitset.c +++ b/opcodes/cgen-bitset.c @@ -1,5 +1,5 @@ /* CGEN generic opcode support. - Copyright 2002, 2005, 2007 + Copyright 2002, 2005, 2007, 2009 Free Software Foundation, Inc. This file is part of libopcodes. @@ -21,10 +21,11 @@ /* Functions for manipulating CGEN_BITSET. */ #include "libiberty.h" -#include "opcode/cgen-bitset.h" +#include "cgen/bitset.h" #include /* Create a bit mask. */ + CGEN_BITSET * cgen_bitset_create (unsigned bit_count) { diff --git a/opcodes/cgen-ops.h b/opcodes/cgen-ops.h deleted file mode 100644 index 4f1e765bb9e..00000000000 --- a/opcodes/cgen-ops.h +++ /dev/null @@ -1,432 +0,0 @@ -/* Semantics ops support for CGEN-based opcode libraries. - Copyright (C) 2005, 2007 Free Software Foundation, Inc. - Contributed by Red Hat. - - This file is part of the GNU opcodes library. - - 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 3, or (at your option) - any later version. - - It 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. */ - -#ifndef CGEN_SEM_OPS_H -#define CGEN_SEM_OPS_H - -#include - -#if defined (__GNUC__) && ! defined (SEMOPS_DEFINE_INLINE) -#define SEMOPS_DEFINE_INLINE -#define SEMOPS_INLINE extern inline -#else -#define SEMOPS_INLINE -#endif - -/* TODO: Lazy encoding/decoding of fp values. */ - -/* These don't really have a mode. */ -#define ANDIF(x, y) ((x) && (y)) -#define ORIF(x, y) ((x) || (y)) - -#define SUBBI(x, y) ((x) - (y)) -#define ANDBI(x, y) ((x) & (y)) -#define ORBI(x, y) ((x) | (y)) -#define XORBI(x, y) ((x) ^ (y)) -#define NEGBI(x) (- (x)) -#define NOTBI(x) (! (BI) (x)) -#define INVBI(x) (~ (x)) -#define EQBI(x, y) ((BI) (x) == (BI) (y)) -#define NEBI(x, y) ((BI) (x) != (BI) (y)) -#define LTBI(x, y) ((BI) (x) < (BI) (y)) -#define LEBI(x, y) ((BI) (x) <= (BI) (y)) -#define GTBI(x, y) ((BI) (x) > (BI) (y)) -#define GEBI(x, y) ((BI) (x) >= (BI) (y)) -#define LTUBI(x, y) ((BI) (x) < (BI) (y)) -#define LEUBI(x, y) ((BI) (x) <= (BI) (y)) -#define GTUBI(x, y) ((BI) (x) > (BI) (y)) -#define GEUBI(x, y) ((BI) (x) >= (BI) (y)) - -#define ADDQI(x, y) ((x) + (y)) -#define SUBQI(x, y) ((x) - (y)) -#define MULQI(x, y) ((x) * (y)) -#define DIVQI(x, y) ((QI) (x) / (QI) (y)) -#define UDIVQI(x, y) ((UQI) (x) / (UQI) (y)) -#define MODQI(x, y) ((QI) (x) % (QI) (y)) -#define UMODQI(x, y) ((UQI) (x) % (UQI) (y)) -#define SRAQI(x, y) ((QI) (x) >> (y)) -#define SRLQI(x, y) ((UQI) (x) >> (y)) -#define SLLQI(x, y) ((UQI) (x) << (y)) -extern QI RORQI (QI, int); -extern QI ROLQI (QI, int); -#define ANDQI(x, y) ((x) & (y)) -#define ORQI(x, y) ((x) | (y)) -#define XORQI(x, y) ((x) ^ (y)) -#define NEGQI(x) (- (x)) -#define NOTQI(x) (! (QI) (x)) -#define INVQI(x) (~ (x)) -#define ABSQI(x) ((x) < 0 ? -(x) : (x)) -#define EQQI(x, y) ((QI) (x) == (QI) (y)) -#define NEQI(x, y) ((QI) (x) != (QI) (y)) -#define LTQI(x, y) ((QI) (x) < (QI) (y)) -#define LEQI(x, y) ((QI) (x) <= (QI) (y)) -#define GTQI(x, y) ((QI) (x) > (QI) (y)) -#define GEQI(x, y) ((QI) (x) >= (QI) (y)) -#define LTUQI(x, y) ((UQI) (x) < (UQI) (y)) -#define LEUQI(x, y) ((UQI) (x) <= (UQI) (y)) -#define GTUQI(x, y) ((UQI) (x) > (UQI) (y)) -#define GEUQI(x, y) ((UQI) (x) >= (UQI) (y)) - -#define ADDHI(x, y) ((x) + (y)) -#define SUBHI(x, y) ((x) - (y)) -#define MULHI(x, y) ((x) * (y)) -#define DIVHI(x, y) ((HI) (x) / (HI) (y)) -#define UDIVHI(x, y) ((UHI) (x) / (UHI) (y)) -#define MODHI(x, y) ((HI) (x) % (HI) (y)) -#define UMODHI(x, y) ((UHI) (x) % (UHI) (y)) -#define SRAHI(x, y) ((HI) (x) >> (y)) -#define SRLHI(x, y) ((UHI) (x) >> (y)) -#define SLLHI(x, y) ((UHI) (x) << (y)) -extern HI RORHI (HI, int); -extern HI ROLHI (HI, int); -#define ANDHI(x, y) ((x) & (y)) -#define ORHI(x, y) ((x) | (y)) -#define XORHI(x, y) ((x) ^ (y)) -#define NEGHI(x) (- (x)) -#define NOTHI(x) (! (HI) (x)) -#define INVHI(x) (~ (x)) -#define ABSHI(x) ((x) < 0 ? -(x) : (x)) -#define EQHI(x, y) ((HI) (x) == (HI) (y)) -#define NEHI(x, y) ((HI) (x) != (HI) (y)) -#define LTHI(x, y) ((HI) (x) < (HI) (y)) -#define LEHI(x, y) ((HI) (x) <= (HI) (y)) -#define GTHI(x, y) ((HI) (x) > (HI) (y)) -#define GEHI(x, y) ((HI) (x) >= (HI) (y)) -#define LTUHI(x, y) ((UHI) (x) < (UHI) (y)) -#define LEUHI(x, y) ((UHI) (x) <= (UHI) (y)) -#define GTUHI(x, y) ((UHI) (x) > (UHI) (y)) -#define GEUHI(x, y) ((UHI) (x) >= (UHI) (y)) - -#define ADDSI(x, y) ((x) + (y)) -#define SUBSI(x, y) ((x) - (y)) -#define MULSI(x, y) ((x) * (y)) -#define DIVSI(x, y) ((SI) (x) / (SI) (y)) -#define UDIVSI(x, y) ((USI) (x) / (USI) (y)) -#define MODSI(x, y) ((SI) (x) % (SI) (y)) -#define UMODSI(x, y) ((USI) (x) % (USI) (y)) -#define SRASI(x, y) ((SI) (x) >> (y)) -#define SRLSI(x, y) ((USI) (x) >> (y)) -#define SLLSI(x, y) ((USI) (x) << (y)) -extern SI RORSI (SI, int); -extern SI ROLSI (SI, int); -#define ANDSI(x, y) ((x) & (y)) -#define ORSI(x, y) ((x) | (y)) -#define XORSI(x, y) ((x) ^ (y)) -#define NEGSI(x) (- (x)) -#define NOTSI(x) (! (SI) (x)) -#define INVSI(x) (~ (x)) -#define ABSSI(x) ((x) < 0 ? -(x) : (x)) -#define EQSI(x, y) ((SI) (x) == (SI) (y)) -#define NESI(x, y) ((SI) (x) != (SI) (y)) -#define LTSI(x, y) ((SI) (x) < (SI) (y)) -#define LESI(x, y) ((SI) (x) <= (SI) (y)) -#define GTSI(x, y) ((SI) (x) > (SI) (y)) -#define GESI(x, y) ((SI) (x) >= (SI) (y)) -#define LTUSI(x, y) ((USI) (x) < (USI) (y)) -#define LEUSI(x, y) ((USI) (x) <= (USI) (y)) -#define GTUSI(x, y) ((USI) (x) > (USI) (y)) -#define GEUSI(x, y) ((USI) (x) >= (USI) (y)) - -#ifdef DI_FN_SUPPORT -extern DI ADDDI (DI, DI); -extern DI SUBDI (DI, DI); -extern DI MULDI (DI, DI); -extern DI DIVDI (DI, DI); -extern DI UDIVDI (DI, DI); -extern DI MODDI (DI, DI); -extern DI UMODDI (DI, DI); -extern DI SRADI (DI, int); -extern UDI SRLDI (UDI, int); -extern UDI SLLDI (UDI, int); -extern DI RORDI (DI, int); -extern DI ROLDI (DI, int); -extern DI ANDDI (DI, DI); -extern DI ORDI (DI, DI); -extern DI XORDI (DI, DI); -extern DI NEGDI (DI); -extern int NOTDI (DI); -extern DI INVDI (DI); -extern int EQDI (DI, DI); -extern int NEDI (DI, DI); -extern int LTDI (DI, DI); -extern int LEDI (DI, DI); -extern int GTDI (DI, DI); -extern int GEDI (DI, DI); -extern int LTUDI (UDI, UDI); -extern int LEUDI (UDI, UDI); -extern int GTUDI (UDI, UDI); -extern int GEUDI (UDI, UDI); -#else /* ! DI_FN_SUPPORT */ -#define ADDDI(x, y) ((x) + (y)) -#define SUBDI(x, y) ((x) - (y)) -#define MULDI(x, y) ((x) * (y)) -#define DIVDI(x, y) ((DI) (x) / (DI) (y)) -#define UDIVDI(x, y) ((UDI) (x) / (UDI) (y)) -#define MODDI(x, y) ((DI) (x) % (DI) (y)) -#define UMODDI(x, y) ((UDI) (x) % (UDI) (y)) -#define SRADI(x, y) ((DI) (x) >> (y)) -#define SRLDI(x, y) ((UDI) (x) >> (y)) -#define SLLDI(x, y) ((UDI) (x) << (y)) -extern DI RORDI (DI, int); -extern DI ROLDI (DI, int); -#define ANDDI(x, y) ((x) & (y)) -#define ORDI(x, y) ((x) | (y)) -#define XORDI(x, y) ((x) ^ (y)) -#define NEGDI(x) (- (x)) -#define NOTDI(x) (! (DI) (x)) -#define INVDI(x) (~ (x)) -#define ABSDI(x) ((x) < 0 ? -(x) : (x)) -#define EQDI(x, y) ((DI) (x) == (DI) (y)) -#define NEDI(x, y) ((DI) (x) != (DI) (y)) -#define LTDI(x, y) ((DI) (x) < (DI) (y)) -#define LEDI(x, y) ((DI) (x) <= (DI) (y)) -#define GTDI(x, y) ((DI) (x) > (DI) (y)) -#define GEDI(x, y) ((DI) (x) >= (DI) (y)) -#define LTUDI(x, y) ((UDI) (x) < (UDI) (y)) -#define LEUDI(x, y) ((UDI) (x) <= (UDI) (y)) -#define GTUDI(x, y) ((UDI) (x) > (UDI) (y)) -#define GEUDI(x, y) ((UDI) (x) >= (UDI) (y)) -#endif /* DI_FN_SUPPORT */ - -#define EXTBIQI(x) ((QI) (BI) (x)) -#define EXTBIHI(x) ((HI) (BI) (x)) -#define EXTBISI(x) ((SI) (BI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI EXTBIDI (BI); -#else -#define EXTBIDI(x) ((DI) (BI) (x)) -#endif -#define EXTQIHI(x) ((HI) (QI) (x)) -#define EXTQISI(x) ((SI) (QI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI EXTQIDI (QI); -#else -#define EXTQIDI(x) ((DI) (QI) (x)) -#endif -#define EXTHIHI(x) ((HI) (HI) (x)) -#define EXTHISI(x) ((SI) (HI) (x)) -#define EXTSISI(x) ((SI) (SI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI EXTHIDI (HI); -#else -#define EXTHIDI(x) ((DI) (HI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern DI EXTSIDI (SI); -#else -#define EXTSIDI(x) ((DI) (SI) (x)) -#endif - -#define ZEXTBIQI(x) ((QI) (BI) (x)) -#define ZEXTBIHI(x) ((HI) (BI) (x)) -#define ZEXTBISI(x) ((SI) (BI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI ZEXTBIDI (BI); -#else -#define ZEXTBIDI(x) ((DI) (BI) (x)) -#endif -#define ZEXTQIHI(x) ((HI) (UQI) (x)) -#define ZEXTQISI(x) ((SI) (UQI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI ZEXTQIDI (QI); -#else -#define ZEXTQIDI(x) ((DI) (UQI) (x)) -#endif -#define ZEXTHISI(x) ((SI) (UHI) (x)) -#define ZEXTHIHI(x) ((HI) (UHI) (x)) -#define ZEXTSISI(x) ((SI) (USI) (x)) -#if defined (DI_FN_SUPPORT) -extern DI ZEXTHIDI (HI); -#else -#define ZEXTHIDI(x) ((DI) (UHI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern DI ZEXTSIDI (SI); -#else -#define ZEXTSIDI(x) ((DI) (USI) (x)) -#endif - -#define TRUNCQIBI(x) ((BI) (QI) (x)) -#define TRUNCHIBI(x) ((BI) (HI) (x)) -#define TRUNCHIQI(x) ((QI) (HI) (x)) -#define TRUNCSIBI(x) ((BI) (SI) (x)) -#define TRUNCSIQI(x) ((QI) (SI) (x)) -#define TRUNCSIHI(x) ((HI) (SI) (x)) -#define TRUNCSISI(x) ((SI) (SI) (x)) -#if defined (DI_FN_SUPPORT) -extern BI TRUNCDIBI (DI); -#else -#define TRUNCDIBI(x) ((BI) (DI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern QI TRUNCDIQI (DI); -#else -#define TRUNCDIQI(x) ((QI) (DI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern HI TRUNCDIHI (DI); -#else -#define TRUNCDIHI(x) ((HI) (DI) (x)) -#endif -#if defined (DI_FN_SUPPORT) -extern SI TRUNCDISI (DI); -#else -#define TRUNCDISI(x) ((SI) (DI) (x)) -#endif - -/* Composing/decomposing the various types. - Word ordering is endian-independent. Words are specified most to least - significant and word number 0 is the most significant word. - ??? May also wish an endian-dependent version. Later. */ - -QI SUBWORDSIQI (SI, int); -HI SUBWORDSIHI (SI, int); -SI SUBWORDSFSI (SF); -SF SUBWORDSISF (SI); -DI SUBWORDDFDI (DF); -DF SUBWORDDIDF (DI); -QI SUBWORDDIQI (DI, int); -HI SUBWORDDIHI (DI, int); -SI SUBWORDDISI (DI, int); -SI SUBWORDDFSI (DF, int); -SI SUBWORDXFSI (XF, int); -SI SUBWORDTFSI (TF, int); - -UQI SUBWORDSIUQI (SI, int); -UQI SUBWORDDIUQI (DI, int); - -#ifdef SEMOPS_DEFINE_INLINE - -SEMOPS_INLINE SF -SUBWORDSISF (SI in) -{ - union { SI in; SF out; } x; - x.in = in; - return x.out; -} - -SEMOPS_INLINE DF -SUBWORDDIDF (DI in) -{ - union { DI in; DF out; } x; - x.in = in; - return x.out; -} - -SEMOPS_INLINE QI -SUBWORDSIQI (SI in, int byte) -{ - assert (byte >= 0 && byte <= 3); - return (UQI) (in >> (8 * (3 - byte))) & 0xFF; -} - -SEMOPS_INLINE UQI -SUBWORDSIUQI (SI in, int byte) -{ - assert (byte >= 0 && byte <= 3); - return (UQI) (in >> (8 * (3 - byte))) & 0xFF; -} - -SEMOPS_INLINE QI -SUBWORDDIQI (DI in, int byte) -{ - assert (byte >= 0 && byte <= 7); - return (UQI) (in >> (8 * (7 - byte))) & 0xFF; -} - -SEMOPS_INLINE HI -SUBWORDDIHI (DI in, int word) -{ - assert (word >= 0 && word <= 3); - return (UHI) (in >> (16 * (3 - word))) & 0xFFFF; -} - -SEMOPS_INLINE HI -SUBWORDSIHI (SI in, int word) -{ - if (word == 0) - return (USI) in >> 16; - else - return in; -} - -SEMOPS_INLINE SI -SUBWORDSFSI (SF in) -{ - union { SF in; SI out; } x; - x.in = in; - return x.out; -} - -SEMOPS_INLINE DI -SUBWORDDFDI (DF in) -{ - union { DF in; DI out; } x; - x.in = in; - return x.out; -} - -SEMOPS_INLINE UQI -SUBWORDDIUQI (DI in, int byte) -{ - assert (byte >= 0 && byte <= 7); - return (UQI) (in >> (8 * (7 - byte))); -} - -SEMOPS_INLINE SI -SUBWORDDISI (DI in, int word) -{ - if (word == 0) - return (UDI) in >> 32; - else - return in; -} - -SEMOPS_INLINE SI -SUBWORDDFSI (DF in, int word) -{ - /* Note: typedef UDI DF; */ - if (word == 0) - return (UDI) in >> 32; - else - return in; -} - -SEMOPS_INLINE SI -SUBWORDXFSI (XF in, int word) -{ - /* Note: typedef struct { SI parts[3]; } XF; */ - union { XF in; SI out[3]; } x; - x.in = in; - return x.out[word]; -} - -SEMOPS_INLINE SI -SUBWORDTFSI (TF in, int word) -{ - /* Note: typedef struct { SI parts[4]; } TF; */ - union { TF in; SI out[4]; } x; - x.in = in; - return x.out[word]; -} - -#endif /* SUBWORD,JOIN */ - -#endif /* CGEN_SEM_OPS_H */ diff --git a/opcodes/cgen-types.h b/opcodes/cgen-types.h deleted file mode 100644 index a27c84adce9..00000000000 --- a/opcodes/cgen-types.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Type definitions for CGEN-based opcode libraries. - Copyright (C) 2005, 2007 Free Software Foundation, Inc. - Contributed by Red Hat. - - This file is part of the GNU opcodes library. - - This library 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 3, or (at your option) - any later version. - - It 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. */ - -#ifndef CGEN_TYPES_H -#define CGEN_TYPES_H - -#include "../bfd/bfd_stdint.h" - -typedef int8_t QI; -typedef uint8_t UQI; -typedef int16_t HI; -typedef uint16_t UHI; -typedef int32_t SI; -typedef uint32_t USI; -typedef int64_t DI; -typedef uint64_t UDI; - -typedef int INT; -typedef unsigned int UINT; - -typedef float SF; -typedef double DF; -typedef long double XF, TF; - -#endif /* CGEN_TYPES_H */ diff --git a/opcodes/fr30-desc.h b/opcodes/fr30-desc.h index 30acd8a105e..880f065bd42 100644 --- a/opcodes/fr30-desc.h +++ b/opcodes/fr30-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef FR30_CPU_H #define FR30_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH fr30 /* Given symbol S, return fr30_cgen_. */ diff --git a/opcodes/frv-desc.h b/opcodes/frv-desc.h index b2bb4c9f8dd..d133c0c6ca9 100644 --- a/opcodes/frv-desc.h +++ b/opcodes/frv-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef FRV_CPU_H #define FRV_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH frv /* Given symbol S, return frv_cgen_. */ diff --git a/opcodes/ip2k-desc.h b/opcodes/ip2k-desc.h index f9b8454b70b..6c1caffa933 100644 --- a/opcodes/ip2k-desc.h +++ b/opcodes/ip2k-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef IP2K_CPU_H #define IP2K_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH ip2k /* Given symbol S, return ip2k_cgen_. */ diff --git a/opcodes/iq2000-desc.h b/opcodes/iq2000-desc.h index c87fa660410..88596c9ce0a 100644 --- a/opcodes/iq2000-desc.h +++ b/opcodes/iq2000-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef IQ2000_CPU_H #define IQ2000_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH iq2000 /* Given symbol S, return iq2000_cgen_. */ diff --git a/opcodes/lm32-desc.h b/opcodes/lm32-desc.h index 43f8ec93838..04d7154a730 100644 --- a/opcodes/lm32-desc.h +++ b/opcodes/lm32-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef LM32_CPU_H #define LM32_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH lm32 /* Given symbol S, return lm32_cgen_. */ diff --git a/opcodes/m32c-desc.h b/opcodes/m32c-desc.h index 59093f76f07..7abb307b0f5 100644 --- a/opcodes/m32c-desc.h +++ b/opcodes/m32c-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef M32C_CPU_H #define M32C_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH m32c /* Given symbol S, return m32c_cgen_. */ diff --git a/opcodes/m32c-opc.h b/opcodes/m32c-opc.h index 67461feba07..3174b198f3e 100644 --- a/opcodes/m32c-opc.h +++ b/opcodes/m32c-opc.h @@ -28,8 +28,8 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. /* -- opc.h */ /* Needed for RTL's 'ext' and 'trunc' operators. */ -#include "cgen-types.h" -#include "cgen-ops.h" +#include "cgen/basic-modes.h" +#include "cgen/basic-ops.h" /* We can't use the default hash size because many bits are used by operands. */ diff --git a/opcodes/m32r-desc.h b/opcodes/m32r-desc.h index 0d7607500fb..b8100620dfe 100644 --- a/opcodes/m32r-desc.h +++ b/opcodes/m32r-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef M32R_CPU_H #define M32R_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH m32r /* Given symbol S, return m32r_cgen_. */ diff --git a/opcodes/mep-desc.h b/opcodes/mep-desc.h index 7c4db3b96b1..5e9e0261984 100644 --- a/opcodes/mep-desc.h +++ b/opcodes/mep-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef MEP_CPU_H #define MEP_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH mep /* Given symbol S, return mep_cgen_. */ diff --git a/opcodes/mt-desc.h b/opcodes/mt-desc.h index e1aefe3abbf..69e12fbc55b 100644 --- a/opcodes/mt-desc.h +++ b/opcodes/mt-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef MT_CPU_H #define MT_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH mt /* Given symbol S, return mt_cgen_. */ diff --git a/opcodes/openrisc-desc.h b/opcodes/openrisc-desc.h index e43c12d669a..424c55a807f 100644 --- a/opcodes/openrisc-desc.h +++ b/opcodes/openrisc-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef OPENRISC_CPU_H #define OPENRISC_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH openrisc /* Given symbol S, return openrisc_cgen_. */ diff --git a/opcodes/xc16x-desc.h b/opcodes/xc16x-desc.h index 460f1bb2acc..302e2859bb4 100644 --- a/opcodes/xc16x-desc.h +++ b/opcodes/xc16x-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef XC16X_CPU_H #define XC16X_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH xc16x /* Given symbol S, return xc16x_cgen_. */ diff --git a/opcodes/xstormy16-desc.h b/opcodes/xstormy16-desc.h index 25ab04a834e..00ed60ea3ac 100644 --- a/opcodes/xstormy16-desc.h +++ b/opcodes/xstormy16-desc.h @@ -25,8 +25,6 @@ This file is part of the GNU Binutils and/or GDB, the GNU debugger. #ifndef XSTORMY16_CPU_H #define XSTORMY16_CPU_H -#include "opcode/cgen-bitset.h" - #define CGEN_ARCH xstormy16 /* Given symbol S, return xstormy16_cgen_. */ -- cgit v1.2.3