diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-25 02:03:40 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-25 02:03:40 +0000 |
commit | b8bc42e99d868c3a5913d34a1ebeaf1b58d17dc8 (patch) | |
tree | 924272e8a87e09c7f5bd7aa5ee638d29f45b3b8b /gcc/machmode.h | |
parent | b7192c3de779b21fad33425e7b68d62df95e1dc9 (diff) | |
download | gcc-b8bc42e99d868c3a5913d34a1ebeaf1b58d17dc8.tar.gz |
* genmodes.c (struct mode_data): Add contained and next_cont
fields.
(complete_mode): Maintain linked list of modes that have a
given component.
(emit_mode_unit_size): Delete.
(emit_mode_nunits): New.
(emit_insn_modes_c): Update to match.
(emit_mode_adjustments): Propagate size and alignment
adjustments from component modes to their containers.
* machmode.h (mode_unit_size): Delete.
(mode_nunits): New.
(GET_MODE_NUNITS): Just return the value in the table.
(GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and
GET_MODE_SIZE.
* expmed.c (store_bit_field, extract_bit_field): Can use a
plain move instruction if bitsize >= GET_MODE_BITSIZE of
destination/source mode, respectively.
* varasm.c (assemble_real): Write out the full size of the
constant, not just its bitsize.
(output_constant): Honor TYPE_MODE of TREE_REAL_CSTs.
* config/ia64/ia64-modes.def: Define XFmode as well as TFmode.
Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and
alignment of XF and TF modes in compliance with ia64 ABIs.
Can now hardwire the format of both modes.
* config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate.
(general_tfmode_operand, destination_tfmode_operand)
(tfreg_or_fp01_operand, spill_tfmode_operand): Rename to
general_xfmode_operand, destination_xfmode_operand,
xfreg_or_fp01_operand, spill_xfmode_operand respectively.
(ia64_init_builtins): Make TYPE_PRECISION of fpreg_type
and float80_type be 96 so they get XFmode. Use !TARGET_HPUX,
not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define
__float128.
* config/ia64/ia64.h: Default TARGET_HPUX to 0.
Change TFmode to XFmode wherever appropriate. Remove all
references to INTEL_EXTENDED_IEEE_FORMAT.
(LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96).
(PREDICATE_CODES): Update to match function renames.
* config/ia64/ia64.md: Change TF to XF throughout; rename all
patterns to match. Remove all references to
INTEL_EXTENDED_IEEE_FORMAT. Update predicate calls to match
function renames.
* config/ia64/ia64-protos.c: Update all prototypes to match
renamed functions.
* config/ia64/hpux.h: Redefine TARGET_HPUX to 1.
Remove all references to INTEL_EXTENDED_IEEE_FORMAT.
* config/ia64/lib1funcs.asm: Add __divxf3 as new name for
__divtf3; keep old name for backward compatibility.
(L__compat): New section providing forwarding stubs for
__fixtfti, __fixunstfti, __floattitf.
* config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72916 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/machmode.h')
-rw-r--r-- | gcc/machmode.h | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/gcc/machmode.h b/gcc/machmode.h index c8c63c7a9e4..16f979818c3 100644 --- a/gcc/machmode.h +++ b/gcc/machmode.h @@ -81,17 +81,6 @@ extern const unsigned char mode_class[NUM_MACHINE_MODES]; extern CONST_MODE_SIZE unsigned char mode_size[NUM_MACHINE_MODES]; #define GET_MODE_SIZE(MODE) mode_size[MODE] -/* Get the size in bytes of the basic parts of an object of mode MODE. */ - -extern const unsigned char mode_unit_size[NUM_MACHINE_MODES]; -#define GET_MODE_UNIT_SIZE(MODE) mode_unit_size[MODE] - -/* Get the number of units in the object. */ - -#define GET_MODE_NUNITS(MODE) \ - ((GET_MODE_UNIT_SIZE ((MODE)) == 0) ? 0 \ - : (GET_MODE_SIZE ((MODE)) / GET_MODE_UNIT_SIZE ((MODE)))) - /* Get the size in bits of an object of mode MODE. */ extern const unsigned short mode_bitsize[NUM_MACHINE_MODES]; @@ -104,12 +93,23 @@ extern const unsigned HOST_WIDE_INT mode_mask_array[NUM_MACHINE_MODES]; #define GET_MODE_MASK(MODE) mode_mask_array[MODE] -extern const unsigned char mode_inner[NUM_MACHINE_MODES]; - /* Return the mode of the inner elements in a vector. */ +extern const unsigned char mode_inner[NUM_MACHINE_MODES]; #define GET_MODE_INNER(MODE) mode_inner[MODE] +/* Get the size in bytes of the basic parts of an object of mode MODE. */ + +#define GET_MODE_UNIT_SIZE(MODE) \ + (GET_MODE_INNER (MODE) == VOIDmode \ + ? GET_MODE_SIZE (MODE) \ + : GET_MODE_SIZE (GET_MODE_INNER (MODE))) + +/* Get the number of units in the object. */ + +extern const unsigned char mode_nunits[NUM_MACHINE_MODES]; +#define GET_MODE_NUNITS(MODE) mode_nunits[MODE] + /* Get the next wider natural mode (eg, QI -> HI -> SI -> DI -> TI). */ extern const unsigned char mode_wider[NUM_MACHINE_MODES]; |