From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephane Carrez To: gdb-patches@sourceware.cygnus.com Subject: [Patch 2/7]: 68HC11 port of gdb (sim) Date: Sun, 25 Jun 2000 13:36:00 -0000 Message-id: <395689E9.2E071E0@free.fr> X-SW-Source: 2000-06/msg00300.html Content-type: multipart/mixed; boundary="----------=_1583534351-29877-12" This is a multi-part message in MIME format... ------------=_1583534351-29877-12 Content-length: 1134 Hi! This patch represents the 68hc11 simulator. I've compressed the patch because there are the following new files: gdb/sim/m68hc11/ChangeLog gdb/sim/m68hc11/config.in gdb/sim/m68hc11/configure.in gdb/sim/m68hc11/dv-m68hc11.c gdb/sim/m68hc11/dv-m68hc11eepr.c gdb/sim/m68hc11/dv-m68hc11sio.c gdb/sim/m68hc11/dv-m68hc11spi.c gdb/sim/m68hc11/dv-m68hc11tim.c gdb/sim/m68hc11/dv-nvram.c gdb/sim/m68hc11/emulos.c gdb/sim/m68hc11/gencode.c gdb/sim/m68hc11/interp.c gdb/sim/m68hc11/interrupts.c gdb/sim/m68hc11/interrupts.h gdb/sim/m68hc11/m68hc11_sim.c gdb/sim/m68hc11/sim-main.h The file gdb/sim/m68hc11/dv-nvram.c is the non-volatile ram emulation. This implementation is rather generic. It is in no way dependent of the 68hc11. May be some day, it would be good to move it to some common place. There is a ChangeLog file in gdb/sim/m68hc11. It contains my ChangeLogs starting from May 1999. Stephane Here is the ChangeLog for gdb/sim. 2000-06-25 Stephane Carrez * configure.in: Recognize m68hc11 target. * configure: Regenerate. sim-m68hc11.diffs.gz ------------=_1583534351-29877-12 Content-Type: application/x-gzip; charset=binary; name="sim-m68hc11.diffs.gz" Content-Disposition: inline; filename="sim-m68hc11.diffs.gz" Content-Transfer-Encoding: base64 Content-Length: 63278 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 YYx4WW9BenNI19K7oEU8GZF8ubqg16LQsrZwphtiWfL8ebJWao4Fxg2bi06N ftb3m3v6tKi5ijmnAb3v52247fSzojqKDNZaM1+k55NRLgIhyQkI8/0XQ6cf QAdGIopOASafNUY8ZekuFDlnjdtTMnP/EJMIGaijkZScR2uP7gGKdUJy7WEE S0+TMebwJNh8qVUjysVHK9gmt9pNOybLQ2KvQINzqXO9oQ9leW4opFdCdG24 nwX7BW7O1paYzc63AjjAYxMH3rToB8PZFhyRe2MUWcTrFtXi73ZD4OGxBX65 GPxyAHx2TkTN1YAEnN9/G6JYVq6XMLoOKlTd7y0Upbef8F+IBcUv87VYsjVu ySXxZ9EgMhQwNwux0kXnoUG5wY+1pmhAy72e+Ptuf3QJbpUQ2DIhs46574r9 2FyILN7x3JpnLaajiQfov24DyNmf8M/H2wA6J+lM7Sz/IiF83t45W4IYL8oa NDufTtqd+O4gCgStU/jc4q80n+G+YvzJ/FkueeTsVjmPqQTbwed2O8sl21kO tSNYdsD8ZnLtzNYYZasouBvjInaQEKCVeQDxoDTHaacn5rbAbYJ2ywcCOH1T PkPZtN15l4wpE5t0y7go0g3FqMZ6a/YkWGhFF+KC/+CtGns3nmVXlgZXUwq0 VOCqcuOCiAtLQTQ6f33ZvcapiF+kwXe1WO+F8jc24oZzkqNTdi2hwRA/wBsR QJgoTbPrmvgHMmZcg+f1TSYzBV5cwI3EMr8YsKDmmJO0QDrb0QQugIaDe3Ka uUmWHwgyGmZkAfomMiLbGqnp9U1sSLZNRHfEKj6H8/OfwBvgZ/Lpbw91RGd6 PU2HmEl7a+X52qPVBaJqhKLtc0Ju0V1HlkZtIYC3ztzvttv3a0iWXyjxGvjw Dem8RbRw1J68w7ziOlOmpoioS5zSVK5xTNQ+wI3B9dCXdOd5r5vKNVCBpDj9 fgqXXqbT5PCnpAKXou+Jb3BoLtNp4cs98Xcw6vLLqrlQRB2iOCb6QWqznYN2 PKWKXl+IzzZtjLQrUgFvplGN76Ls6QG92dY7XyHX0PPZsFGhgGggEJCRfZZz AEyfzE+lyFkZzPqCbHiHSxWoF6GsV84m80WAzE8lQaK0Hjq9+8XsuPtSUWUt 8HI3RFQp5pijqVYQxsrQzYjmo6ogCyoVqCY92g5PAbVuKn0xETwINDOqjIGy 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 oQnwzf8PB6wH6LVxAwA= ------------=_1583534351-29877-12-- >From Stephane.Carrez@free.fr Sun Jun 25 13:36:00 2000 From: Stephane Carrez To: gdb-patches@sourceware.cygnus.com Subject: [Patch 3/7]: 68HC11 port of gdb (sim-16bit support) Date: Sun, 25 Jun 2000 13:36:00 -0000 Message-id: <39568A20.6127987C@free.fr> X-SW-Source: 2000-06/msg00301.html Content-length: 6876 Hi! The following patch adds support for 16-bit targets in the simulator common framework. Stephane The ChangeLog for gdb/sim/common/ChangeLog is 2000-06-25 Stephane Carrez * sim-bits.h (_MSB_16, _LSB_16): Define for 16-bit targets. (MASK, LSBIT, MSBIT): Likewise and use _MSB_16 and _LSB_16. (EXTENDED): Define for 16-bit word size. * sim-bits.c (LSEXTRACTED, MSEXTRACTED, LSINSERTED, MSINSERTED, LSSEXT, MSSEXT): Implement for 16-bit word size. * sim-types.h: Added support for 16-bit targets. diff -Nrup --exclude-from=gdb-exclude.lst /src/gnu/cygnus/gdb/sim/common/sim-bits.c gdb/sim/common/sim-bits.c --- /src/gnu/cygnus/gdb/sim/common/sim-bits.c Fri Apr 16 03:34:57 1999 +++ gdb/sim/common/sim-bits.c Sat Jun 17 11:59:43 2000 @@ -72,6 +72,17 @@ LSEXTRACTED (unsigned_word val, return val; } #endif +#if (WITH_TARGET_WORD_BITSIZE == 16) + if (stop >= 16) + return 0; + else + { + if (start < 16) + val &= LSMASK (start, 0); + val >>= stop; + return val; + } +#endif } @@ -96,6 +107,17 @@ MSEXTRACTED (unsigned_word val, return val; } #endif +#if (WITH_TARGET_WORD_BITSIZE == 16) + if (stop < 16) + return 0; + else + { + if (start >= 16) + val &= MSMASK (start, 64 - 1); + val >>= (64 - stop - 1); + return val; + } +#endif } @@ -121,6 +143,18 @@ LSINSERTED (unsigned_word val, return val; } #endif +#if (WITH_TARGET_WORD_BITSIZE == 16) + /* Bit numbers are 63..0, even for 16 bit targets. + On 16 bit targets we ignore 63..16 */ + if (stop >= 16) + return 0; + else + { + val <<= stop; + val &= LSMASK (start, stop); + return val; + } +#endif } INLINE_SIM_BITS\ @@ -145,6 +179,18 @@ MSINSERTED (unsigned_word val, return val; } #endif +#if (WITH_TARGET_WORD_BITSIZE == 16) + /* Bit numbers are 0..63, even for 16 bit targets. + On 16 bit targets we ignore 0..47. */ + if (stop < 32 + 16) + return 0; + else + { + val <<= ((64 - 1) - stop); + val &= MSMASK (start, stop); + return val; + } +#endif } @@ -166,6 +212,14 @@ LSSEXT (signed_word val, return val; } #endif +#if (WITH_TARGET_WORD_BITSIZE == 16) + if (sign_bit >= 16) + return val; + else { + val = LSSEXT16 (val, sign_bit); + return val; + } +#endif } INLINE_SIM_BITS\ @@ -182,6 +236,14 @@ MSSEXT (signed_word val, return val; else { val = MSSEXT32 (val, sign_bit - 32); + return val; + } +#endif +#if (WITH_TARGET_WORD_BITSIZE == 16) + if (sign_bit < 32 + 16) + return val; + else { + val = MSSEXT16 (val, sign_bit - 32 - 16); return val; } #endif diff -Nrup --exclude-from=gdb-exclude.lst /src/gnu/cygnus/gdb/sim/common/sim-bits.h gdb/sim/common/sim-bits.h --- /src/gnu/cygnus/gdb/sim/common/sim-bits.h Fri Apr 16 03:34:57 1999 +++ gdb/sim/common/sim-bits.h Sat Jun 17 12:09:26 2000 @@ -166,20 +166,32 @@ #define _MSB_32(START, STOP) (START <= STOP \ ? (START < 32 ? 0 : START - 32) \ : (STOP < 32 ? 0 : STOP - 32)) +#define _MSB_16(START, STOP) (START <= STOP \ + ? (START < 48 ? 0 : START - 48) \ + : (STOP < 48 ? 0 : STOP - 48)) #else #define _MSB_32(START, STOP) (START >= STOP \ ? (START >= 32 ? 31 : START) \ : (STOP >= 32 ? 31 : STOP)) +#define _MSB_16(START, STOP) (START >= STOP \ + ? (START >= 16 ? 15 : START) \ + : (STOP >= 16 ? 15 : STOP)) #endif #if (WITH_TARGET_WORD_MSB == 0) #define _LSB_32(START, STOP) (START <= STOP \ ? (STOP < 32 ? 0 : STOP - 32) \ : (START < 32 ? 0 : START - 32)) +#define _LSB_16(START, STOP) (START <= STOP \ + ? (STOP < 48 ? 0 : STOP - 48) \ + : (START < 48 ? 0 : START - 48)) #else #define _LSB_32(START, STOP) (START >= STOP \ ? (STOP >= 32 ? 31 : STOP) \ : (START >= 32 ? 31 : START)) +#define _LSB_16(START, STOP) (START >= STOP \ + ? (STOP >= 16 ? 15 : STOP) \ + : (START >= 16 ? 15 : START)) #endif #if (WITH_TARGET_WORD_MSB == 0) @@ -204,11 +216,17 @@ #if (WITH_TARGET_WORD_BITSIZE == 64) #define LSBIT(POS) LSBIT64 (POS) -#else +#endif +#if (WITH_TARGET_WORD_BITSIZE == 32) #define LSBIT(POS) ((unsigned32)((POS) >= 32 \ ? 0 \ : (1 << ((POS) >= 32 ? 0 : (POS))))) #endif +#if (WITH_TARGET_WORD_BITSIZE == 16) +#define LSBIT(POS) ((unsigned16)((POS) >= 16 \ + ? 0 \ + : (1 << ((POS) >= 16 ? 0 : (POS))))) +#endif #define MSBIT8(POS) ((unsigned8) 1 << ( 8 - 1 - (POS))) @@ -218,11 +236,17 @@ #if (WITH_TARGET_WORD_BITSIZE == 64) #define MSBIT(POS) MSBIT64 (POS) -#else +#endif +#if (WITH_TARGET_WORD_BITSIZE == 32) #define MSBIT(POS) ((unsigned32)((POS) < 32 \ ? 0 \ : (1 << ((POS) < 32 ? 0 : (64 - 1) - (POS))))) #endif +#if (WITH_TARGET_WORD_BITSIZE == 16) +#define MSBIT(POS) ((unsigned16)((POS) < 48 \ + ? 0 \ + : (1 << ((POS) < 48 ? 0 : (64 - 1) - (POS))))) +#endif /* Bit operations */ @@ -287,6 +311,23 @@ _MSB_POS (32, 0), \ _MSB_32 ((START), (STOP)))))) #endif +#if (WITH_TARGET_WORD_BITSIZE == 16) +#define MASK(START, STOP) \ + (_POS_LE ((START), (STOP)) \ + ? (_POS_LE ((STOP), _MSB_POS (64, 15)) \ + ? 0 \ + : _MASKn (16, \ + _MSB_16 ((START), (STOP)), \ + _LSB_16 ((START), (STOP)))) \ + : (_MASKn (16, \ + _LSB_16 ((START), (STOP)), \ + _LSB_POS (16, 0)) \ + | (_POS_LE ((STOP), _MSB_POS (64, 15)) \ + ? 0 \ + : _MASKn (16, \ + _MSB_POS (16, 0), \ + _MSB_16 ((START), (STOP)))))) +#endif #if !defined (MASK) #error "MASK never undefined" #endif @@ -473,6 +514,9 @@ INLINE_SIM_BITS(unsigned_word) MSINSERTE #define EXTENDED(X) ((signed64)(signed32)(X)) #endif #if (WITH_TARGET_WORD_BITSIZE == 32) +#define EXTENDED(X) (X) +#endif +#if (WITH_TARGET_WORD_BITSIZE == 16) #define EXTENDED(X) (X) #endif diff -Nrup --exclude-from=gdb-exclude.lst /src/gnu/cygnus/gdb/sim/common/sim-types.h gdb/sim/common/sim-types.h --- /src/gnu/cygnus/gdb/sim/common/sim-types.h Fri Apr 16 03:34:59 1999 +++ gdb/sim/common/sim-types.h Mon Feb 21 09:00:23 2000 @@ -164,6 +164,10 @@ typedef signed64 signed_word; typedef unsigned32 unsigned_word; typedef signed32 signed_word; #endif +#if (WITH_TARGET_WORD_BITSIZE == 16) +typedef unsigned16 unsigned_word; +typedef signed16 signed_word; +#endif /* Other instructions */ @@ -174,6 +178,10 @@ typedef signed64 signed_address; #if (WITH_TARGET_ADDRESS_BITSIZE == 32) typedef unsigned32 unsigned_address; typedef signed32 signed_address; +#endif +#if (WITH_TARGET_ADDRESS_BITSIZE == 16) +typedef unsigned16 unsigned_address; +typedef signed16 signed_address; #endif typedef unsigned_address address_word;