Hello Sumanth, and everyone,
Thank you for your reply.
Sumanth wrote,
Try changing MINIMUM_UNITS_PER_WORD to greater than or equal to 2 in ur
target.h file
I think you mean MIN_UNITS_PER_WORD in gcc/config/h8300/h8300.h.
Unfortunately it was defined 2.
Here are excerpts from gcc/config/h8300/h8300.h that is converted according
to patch,
which has been previously sent as
patch-sources/gcc4.4.0-patch-converted-sources/h8300.h.
-- excerpts begin
/* Define this if most significant bit is lowest numbered
in instructions that operate on numbered bit-fields.
This is not true on the H8/300. */
#define BITS_BIG_ENDIAN 0
/* Define this if most significant byte of a word is the lowest numbered.
*/
/* That is true on the H8/300. */
#define BYTES_BIG_ENDIAN 1
/* Define this if most significant word of a multiword number is lowest
numbered. */
#define WORDS_BIG_ENDIAN 1
#define MAX_BITS_PER_WORD 32
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD (TARGET_H8300H || TARGET_H8300S ? 4 : 2)
#define MIN_UNITS_PER_WORD 2
#define SHORT_TYPE_SIZE 16
#define INT_TYPE_SIZE (TARGET_INT32 ? 32 : 16)
#define LONG_TYPE_SIZE 32
//20090727 patch
//#define LONG_LONG_TYPE_SIZE 64
#define LONG_LONG_TYPE_SIZE (TARGET_INT32 ? 64 : 32)
#define FLOAT_TYPE_SIZE 32
//20090727 patch
//#define DOUBLE_TYPE_SIZE 32
#define DOUBLE_TYPE_SIZE (TARGET_INT32 ? 64 : 32)
#define LONG_DOUBLE_TYPE_SIZE DOUBLE_TYPE_SIZE
#define MAX_FIXED_MODE_SIZE 32
/* Allocation boundary (in *bits*) for storing arguments in argument list.
*/
#define PARM_BOUNDARY (TARGET_H8300H || TARGET_H8300S ? 32 : 16)
/* Allocation boundary (in *bits*) for the code of a function. */
#define FUNCTION_BOUNDARY 16
-- excerpts end
Masahiro Ariga