[PATCH] IA-32 bitfields (take 3)

Jakub Jelinek jakub@redhat.com
Wed Aug 7 03:46:00 GMT 2002


On Wed, Aug 07, 2002 at 10:56:41AM +0200, Jakub Jelinek wrote:
> 2002-08-05  Jakub Jelinek  <jakub@redhat.com>
> 	    Richard Henderson  <rth@redhat.com>
> 
> 	* stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN
> 	to type_align when PCC_BITFIELD_TYPE_MATTERS.
> 	(place_field): Likewise.
> 	* config/i386/i386.c (x86_field_alignment): Don't check
> 	TARGET_ALIGN_DOUBLE for the second time.
> 	If field is a type, use TYPE_USER_ALIGN and the type itself
> 	instead of TREE_TYPE (field).
> 	Apply min for all MODE_INT and MODE_CLASS_INT modes.
> 	* config/rs6000/rs6000.c (rs6000_field_alignment): New.
> 	* config/rs6000/rs6000-protos.h (rs6000_field_alignment): New
> 	prototype.
> 	* config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Use it.
> 	* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
> 	* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
> 	* config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Handle if field is
> 	a type.
> 
> 	* gcc.dg/i386-bitfield1.c: New test.
> 	* g++.dg/abi/bitfield3.C: New test.

FYI bootstrapped and regression tested on i386-redhat-linux on 3.2 branch.

	Jakub



More information about the Gcc-patches mailing list