On Thu, Aug 4, 2011 at 4:44 PM, H.J. Lu wrote: > On Thu, Aug 4, 2011 at 3:46 PM, Joseph S. Myers wrote: >> On Thu, 4 Aug 2011, H.J. Lu wrote: >> >>> Here is the updated patch to get proper HOST_WIDE_INT bits and 1 >>> through a new file, opt-gen.c.  OK for trunk? >> >> Using another generator program like this can't be the best approach >> (apart from anything else, when built for the build system hwint.h should >> reflect the build system types not the host system types; cf. >> where I suspected that >> sort of host/build confusion of causing a reported build failure). >> >> You want opth-gen.awk to know the number of bits to give errors.  Note >> that the errors are given by generating #error into the output file.  It's >> easy enough to generate #if conditions into the file that compare with >> HOST_BITS_PER_WIDE_INT. >> >> You want opth-gen.awk to know whether to use 1LL as the shifted constant. >> You can easily enough make hwint.h contain a HOST_WIDE_INT_1 macro, >> defined to 1L or 1LL as appropriate. >> > > > Here is the updated patch.  OK for trunk? > Small update. Replace 1LL with HOST_WIDE_INT_1 in PTA_XXX. OK for trunk? Thanks. -- H.J. --- 2011-08-04 H.J. Lu Igor Zamyatin * hwint.h (HOST_WIDE_INT_1): New. * opt-functions.awk (switch_bit_fields): Initialize the host_wide_int field. (host_wide_int_var_name): New. (var_type_struct): Check and return HOST_WIDE_INT. * opt-read.awk: Handle HOST_WIDE_INT for "Variable". * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other. * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly check masks for HOST_WIDE_INT. * opts-common.c (set_option): Support HOST_WIDE_INT Flag_var. * opts.h (cl_option): Add cl_host_wide_int. Change var_value to HOST_WIDE_INT. * config/i386/i386-c.c (ix86_target_macros_internal): Replace int with HOST_WIDE_INT for isa_flag. (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for isa variables. * config/i386/i386.c (ix86_target_string): Replace int with HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa. (ix86_target_opts): Replace int with HOST_WIDE_INT on mask. (pta_flags): Removed. (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X). (pta): Use HOST_WIDE_INT on flags. (builtin_isa): Use HOST_WIDE_INT on isa. (ix86_add_new_builtins): Likewise. (def_builtin): Use HOST_WIDE_INT on mask. (def_builtin_const): Likewise. (builtin_description): Likewise. * config/i386/i386.opt (ix86_isa_flags): Replace int with HOST_WIDE_INT. (ix86_isa_flags_explicit): Likewise. (x_ix86_isa_flags_explicit): Likewise.