public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* RFC: Convert x86 assembler to bitfield
@ 2007-09-07 13:51 H.J. Lu
  2007-09-07 21:06 ` PATCH: " H.J. Lu
  0 siblings, 1 reply; 5+ messages in thread
From: H.J. Lu @ 2007-09-07 13:51 UTC (permalink / raw)
  To: Meissner, Michael; +Cc: Harle, Christophe, rajagopal, dwarak, binutils

[-- Attachment #1: Type: text/plain, Size: 231 bytes --]

The x86 assembler runs out of bits in unsigned int. This patch
converts it to use bitfield instead.  Here is a working patch.
I tested it on Linux/ia32 and Linux/x86-64.  I will clean it up
and submit it before Monday.


H.J.
----

[-- Attachment #2: binutils-x86-bitfield-4.patch.bz2 --]
[-- Type: application/x-bzip2, Size: 43469 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* PATCH: Convert x86 assembler to bitfield
  2007-09-07 13:51 RFC: Convert x86 assembler to bitfield H.J. Lu
@ 2007-09-07 21:06 ` H.J. Lu
  2007-09-08 19:35   ` Meissner, Michael
  0 siblings, 1 reply; 5+ messages in thread
From: H.J. Lu @ 2007-09-07 21:06 UTC (permalink / raw)
  To: Meissner, Michael; +Cc: Harle, Christophe, rajagopal, dwarak, binutils

[-- Attachment #1: Type: text/plain, Size: 8037 bytes --]

On Fri, Sep 07, 2007 at 06:51:08AM -0700, H.J. Lu wrote:
> The x86 assembler runs out of bits in unsigned int. This patch
> converts it to use bitfield instead.  Here is a working patch.
> I tested it on Linux/ia32 and Linux/x86-64.  I will clean it up
> and submit it before Monday.
> 
> 

Here is the final patch to convert x86 assembler to bitfield.
I will check it in on Sunday unless there is a strong objection
before Sunday.

Thanks.


H.J.
----
gas/

2007-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.in (AC_CHECK_HEADERS): Add limits.h.
	* configure: Regenerated.
	* config.in: Likewise.

	* config/tc-i386.c: Include "opcodes/i386-init.h".
	(_i386_insn): Use i386_operand_type for types.
	(cpu_arch_flags): Updated to new types with bitfield.
	(cpu_arch_tune_flags): Likewise.
	(cpu_arch_isa_flags): Likewise.
	(cpu_arch): Likewise.
	(i386_align_code): Likewise.
	(set_code_flag): Likewise.
	(set_16bit_gcc_code_flag): Likewise.
	(set_cpu_arch): Likewise.
	(md_assemble): Likewise.
	(parse_insn): Likewise.
	(process_operands): Likewise.
	(output_branch): Likewise.
	(output_jump): Likewise.
	(parse_real_register): Likewise.
	(mode_from_disp_size): Likewise.
	(smallest_imm_type): Likewise.
	(pi): Likewise.
	(type_names): Likewise.
	(pt): Likewise.
	(pte): Likewise.
	(swap_2_operands): Likewise.
	(optimize_imm): Likewise.
	(optimize_disp): Likewise.
	(match_template): Likewise.
	(check_string): Likewise.
	(process_suffix): Likewise.
	(check_byte_reg): Likewise.
	(check_long_reg): Likewise.
	(check_qword_reg): Likewise.
	(check_word_reg): Likewise.
	(finalize_imm): Likewise.
	(build_modrm_byte): Likewise.
	(output_insn): Likewise.
	(disp_size): Likewise.
	(imm_size): Likewise.
	(output_disp): Likewise.
	(output_imm): Likewise.
	(gotrel): Likewise.
	(i386_immediate): Likewise.
	(i386_displacement): Likewise.
	(i386_index_check): Likewise.
	(i386_operand): Likewise.
	(parse_real_register): Likewise.
	(i386_intel_operand): Likewise.
	(intel_e09): Likewise.
	(intel_bracket_expr): Likewise.
	(intel_e11): Likewise.
	(cpu_arch_flags_not): New.
	(cpu_flags_check_x64): Likewise.
	(cpu_flags_all_zero): Likewise.
	(cpu_flags_not): Likewise.
	(i386_cpu_flags_biop): Likewise.
	(cpu_flags_biop): Likewise.
	(cpu_flags_match); Likewise.
	(acc32): New.
	(acc64): Likewise.
	(control): Likewise.
	(reg16_inoutportreg): Likewise.
	(disp16): Likewise.
	(disp32): Likewise.
	(disp32s): Likewise.
	(disp16_32): Likewise.
	(anydisp): Likewise.
	(baseindex): Likewise.
	(regxmm): Likewise.
	(imm8): Likewise.
	(imm8s): Likewise.
	(imm16): Likewise.
	(imm32): Likewise.
	(imm32s): Likewise.
	(imm64): Likewise.
	(imm16_32): Likewise.
	(imm16_32s): Likewise.
	(imm16_32_32s): Likewise.
	(operand_type): Likewise.
	(operand_type_check): Likewise.
	(operand_type_match): Likewise.
	(operand_type_register_match): Likewise.
	(update_imm): Likewise.
	(set_code_flag): Also update cpu_arch_flags_not.
	(set_16bit_gcc_code_flag): Likewise.
	(md_begin): Likewise.
	(parse_insn): Use cpu_flags_check_x64 to check 64bit support.
	Use cpu_flags_match to match instructions.
	(i386_target_format): Update cpu_arch_isa_flags and
	cpu_arch_tune_flags to i386_cpu_flags type with bitfield.
	(smallest_imm_type): Check cpu_arch_tune to tune for i486.
	(match_template): Don't initialize overlap0, overlap1,
	overlap2, overlap3 and operand_types.
	(process_suffix): Handle crc32 with 64bit register.
	(MATCH): Removed.
	(CONSISTENT_REGISTER_MATCH): Likewise.

	* config/tc-i386.h (arch_entry): Updated to i386_cpu_flags
	type.

opcodes/

2007-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.in (AC_CHECK_HEADERS): Add limits.h.
	* configure: Regenerated.
	* config.in: Likewise.

	* i386-gen.c: Include "sysdep.h" instead of <stdlib.h> and
	<string.h>.  Use xstrerror instead of strerror.
	(initializer): New.
	(cpu_flag_init): Likewise.
	(bitfield): Likewise.
	(BITFIELD): New.
	(cpu_flags): Likewise.
	(opcode_modifiers): Likewise.
	(operand_types): Likewise.
	(compare): Likewise.
	(set_cpu_flags): Likewise.
	(output_cpu_flags): Likewise.
	(process_i386_cpu_flags): Likewise.
	(output_opcode_modifier): Likewise.
	(process_i386_opcode_modifier): Likewise.
	(output_operand_type): Likewise.
	(process_i386_operand_type): Likewise.
	(set_bitfield): Likewise.
	(operand_type_init): Likewise.
	(process_i386_initializers): Likewise.
	(process_i386_opcodes): Call process_i386_opcode_modifier to
	process opcode_modifier.  Call process_i386_operand_type to
	process operand_types.
	(process_i386_registers): Call process_i386_operand_type to
	process reg_type.
	(main): Check unused bits in i386_cpu_flags and i386_operand_type.
	Sort cpu_flags, opcode_modifiers and operand_types.  Call
	process_i386_initializers.

	* i386-init.h: New.
	* i386-tbl.h: Regenerated.

	* i386-opc.h: Include <limits.h>.
	(CHAR_BIT): Define as 8 if not defined.
	(Cpu186): Changed to position of bitfiled.
	(Cpu286): Likewise.
	(Cpu386): Likewise.
	(Cpu486): Likewise.
	(Cpu586): Likewise.
	(Cpu686): Likewise.
	(CpuP4): Likewise.
	(CpuK6): Likewise.
	(CpuK8): Likewise.
	(CpuMMX): Likewise.
	(CpuMMX2): Likewise.
	(CpuSSE): Likewise.
	(CpuSSE2): Likewise.
	(Cpu3dnow): Likewise.
	(Cpu3dnowA): Likewise.
	(CpuSSE3): Likewise.
	(CpuPadLock): Likewise.
	(CpuSVME): Likewise.
	(CpuVMX): Likewise.
	(CpuSSSE3): Likewise.
	(CpuSSE4a): Likewise.
	(CpuABM): Likewise.
	(CpuSSE4_1): Likewise.
	(CpuSSE4_2): Likewise.
	(Cpu64): Likewise.
	(CpuNo64): Likewise.
	(D): Likewise.
	(W): Likewise.
	(Modrm): Likewise.
	(ShortForm): Likewise.
	(Jump): Likewise.
	(JumpDword): Likewise.
	(JumpByte): Likewise.
	(JumpInterSegment): Likewise.
	(FloatMF): Likewise.
	(FloatR): Likewise.
	(FloatD): Likewise.
	(Size16): Likewise.
	(Size32): Likewise.
	(Size64): Likewise.
	(IgnoreSize): Likewise.
	(DefaultSize): Likewise.
	(No_bSuf): Likewise.
	(No_wSuf): Likewise.
	(No_lSuf): Likewise.
	(No_sSuf): Likewise.
	(No_qSuf): Likewise.
	(No_xSuf): Likewise.
	(FWait): Likewise.
	(IsString): Likewise.
	(RegKludge): Likewise.
	(IsPrefix): Likewise.
	(ImmExt): Likewise.
	(NoRex64): Likewise.
	(Rex64): Likewise.
	(Ugh): Likewise.
	(Reg8): Likewise.
	(Reg16): Likewise.
	(Reg32): Likewise.
	(Reg64): Likewise.
	(FloatReg): Likewise.
	(RegMMX): Likewise.
	(RegXMM): Likewise.
	(Imm8): Likewise.
	(Imm8S): Likewise.
	(Imm16): Likewise.
	(Imm32): Likewise.
	(Imm32S): Likewise.
	(Imm64): Likewise.
	(Imm1): Likewise.
	(BaseIndex): Likewise.
	(Disp8): Likewise.
	(Disp16): Likewise.
	(Disp32): Likewise.
	(Disp32S): Likewise.
	(Disp64): Likewise.
	(InOutPortReg): Likewise.
	(ShiftCount): Likewise.
	(Control): Likewise.
	(Debug): Likewise.
	(Test): Likewise.
	(SReg2): Likewise.
	(SReg3): Likewise.
	(Acc): Likewise.
	(FloatAcc): Likewise.
	(JumpAbsolute): Likewise.
	(EsSeg): Likewise.
	(RegMem): Likewise.
	(OTMax): Likewise.
	(Reg): Commented out.
	(WordReg): Likewise.
	(ImplicitRegister): Likewise.
	(Imm): Likewise.
	(EncImm): Likewise.
	(Disp): Likewise.
	(AnyMem): Likewise.
	(LLongMem): Likewise.
	(LongMem): Likewise.
	(ShortMem): Likewise.
	(WordMem): Likewise.
	(ByteMem): Likewise.
	(CpuMax): New
	(CpuLM): Likewise.
	(CpuNumOfUints): Likewise.
	(CpuNumOfBits): Likewise.
	(CpuUnused): Likewise.
	(OTNumOfUints): Likewise.
	(OTNumOfBits): Likewise.
	(OTUnused): Likewise.
	(i386_cpu_flags): New type.
	(i386_operand_type): Likewise.
	(i386_opcode_modifier): Likewise.
	(CpuSledgehammer): Removed.
	(CpuSSE4): Likewise.
	(CpuUnknownFlags): Likewise.
	(Reg): Likewise.
	(WordReg): Likewise.
	(ImplicitRegister): Likewise.
	(Imm): Likewise.
	(EncImm): Likewise.
	(Disp): Likewise.
	(AnyMem): Likewise.
	(LLongMem): Likewise.
	(LongMem): Likewise.
	(ShortMem): Likewise.
	(WordMem): Likewise.
	(ByteMem): Likewise.
	(template): Use i386_cpu_flags for cpu_flags, use
	i386_opcode_modifier for opcode_modifier, use
	i386_operand_type for operand_types.
	(reg_entry): Use i386_operand_type for reg_type.

	* Makefile.am (HFILES): Add i386-init.h.
	($(srcdir)/i386-init.h): New rule.
	($(srcdir)/i386-tbl.h): Depend on $(srcdir)/i386-init.h
	instead.
	 Makefile.in: Regenerated.

[-- Attachment #2: binutils-x86-bitfield-5.patch.bz2 --]
[-- Type: application/x-bzip2, Size: 43816 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: PATCH: Convert x86 assembler to bitfield
  2007-09-07 21:06 ` PATCH: " H.J. Lu
@ 2007-09-08 19:35   ` Meissner, Michael
  2007-09-08 23:02     ` H.J. Lu
  0 siblings, 1 reply; 5+ messages in thread
From: Meissner, Michael @ 2007-09-08 19:35 UTC (permalink / raw)
  To: H.J. Lu; +Cc: Harle, Christophe, rajagopal, dwarak, binutils

As I have mentioned before, this uses a C99/new GCC feature (designated
initializers) when you are building the x86 instruction tables.  I
really don't feel binutils should be using anything outside of C90
because binutils, like GCC is part of the kit needed to port to systems
using whatever compiler is available on the system.  In addition, I
wonder how many people still develop on ancient systems like SUSE SLES9
and Red Hat RHEL4 that have 3.4 and 3.3 based GCC compilers.  I really
would prefer not to have a situation like we have in GCC where you have
to have special versions of things (ie mpfr) that may are in conflict
with the versions installed on the system.

I wish some other maintainers would chime in as to whether this is a
good idea.

My concern is of course getting my patches in for SSE5 as quickly as
possible.  If it goes in quickly, I can adapt the SSE5 patches for the
new format, but if it will take a long time, I don't want my patches to
be held in limbo while we iterate over these new patches.  As I said, I
wrote the patches to cause a minimum change to the rest of the x86 port,
and with this change, we will need to make sure everything is right
because it is a much bigger change.

--
Michael Meissner
AMD, MS 83-29
90 Central Street
Boxborough, MA 01719

> -----Original Message-----
> From: H.J. Lu [mailto:hjl@lucon.org]
> Sent: Friday, September 07, 2007 5:06 PM
> To: Meissner, Michael
> Cc: Harle, Christophe; rajagopal, dwarak; binutils@sources.redhat.com
> Subject: PATCH: Convert x86 assembler to bitfield
> 
> On Fri, Sep 07, 2007 at 06:51:08AM -0700, H.J. Lu wrote:
> > The x86 assembler runs out of bits in unsigned int. This patch
> > converts it to use bitfield instead.  Here is a working patch.
> > I tested it on Linux/ia32 and Linux/x86-64.  I will clean it up
> > and submit it before Monday.
> >
> >
> 
> Here is the final patch to convert x86 assembler to bitfield.
> I will check it in on Sunday unless there is a strong objection
> before Sunday.
> 
> Thanks.
> 
> 
> H.J.
> ----
> gas/
> 
> 2007-09-07  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	* configure.in (AC_CHECK_HEADERS): Add limits.h.
> 	* configure: Regenerated.
> 	* config.in: Likewise.
> 
> 	* config/tc-i386.c: Include "opcodes/i386-init.h".
> 	(_i386_insn): Use i386_operand_type for types.
> 	(cpu_arch_flags): Updated to new types with bitfield.
> 	(cpu_arch_tune_flags): Likewise.
> 	(cpu_arch_isa_flags): Likewise.
> 	(cpu_arch): Likewise.
> 	(i386_align_code): Likewise.
> 	(set_code_flag): Likewise.
> 	(set_16bit_gcc_code_flag): Likewise.
> 	(set_cpu_arch): Likewise.
> 	(md_assemble): Likewise.
> 	(parse_insn): Likewise.
> 	(process_operands): Likewise.
> 	(output_branch): Likewise.
> 	(output_jump): Likewise.
> 	(parse_real_register): Likewise.
> 	(mode_from_disp_size): Likewise.
> 	(smallest_imm_type): Likewise.
> 	(pi): Likewise.
> 	(type_names): Likewise.
> 	(pt): Likewise.
> 	(pte): Likewise.
> 	(swap_2_operands): Likewise.
> 	(optimize_imm): Likewise.
> 	(optimize_disp): Likewise.
> 	(match_template): Likewise.
> 	(check_string): Likewise.
> 	(process_suffix): Likewise.
> 	(check_byte_reg): Likewise.
> 	(check_long_reg): Likewise.
> 	(check_qword_reg): Likewise.
> 	(check_word_reg): Likewise.
> 	(finalize_imm): Likewise.
> 	(build_modrm_byte): Likewise.
> 	(output_insn): Likewise.
> 	(disp_size): Likewise.
> 	(imm_size): Likewise.
> 	(output_disp): Likewise.
> 	(output_imm): Likewise.
> 	(gotrel): Likewise.
> 	(i386_immediate): Likewise.
> 	(i386_displacement): Likewise.
> 	(i386_index_check): Likewise.
> 	(i386_operand): Likewise.
> 	(parse_real_register): Likewise.
> 	(i386_intel_operand): Likewise.
> 	(intel_e09): Likewise.
> 	(intel_bracket_expr): Likewise.
> 	(intel_e11): Likewise.
> 	(cpu_arch_flags_not): New.
> 	(cpu_flags_check_x64): Likewise.
> 	(cpu_flags_all_zero): Likewise.
> 	(cpu_flags_not): Likewise.
> 	(i386_cpu_flags_biop): Likewise.
> 	(cpu_flags_biop): Likewise.
> 	(cpu_flags_match); Likewise.
> 	(acc32): New.
> 	(acc64): Likewise.
> 	(control): Likewise.
> 	(reg16_inoutportreg): Likewise.
> 	(disp16): Likewise.
> 	(disp32): Likewise.
> 	(disp32s): Likewise.
> 	(disp16_32): Likewise.
> 	(anydisp): Likewise.
> 	(baseindex): Likewise.
> 	(regxmm): Likewise.
> 	(imm8): Likewise.
> 	(imm8s): Likewise.
> 	(imm16): Likewise.
> 	(imm32): Likewise.
> 	(imm32s): Likewise.
> 	(imm64): Likewise.
> 	(imm16_32): Likewise.
> 	(imm16_32s): Likewise.
> 	(imm16_32_32s): Likewise.
> 	(operand_type): Likewise.
> 	(operand_type_check): Likewise.
> 	(operand_type_match): Likewise.
> 	(operand_type_register_match): Likewise.
> 	(update_imm): Likewise.
> 	(set_code_flag): Also update cpu_arch_flags_not.
> 	(set_16bit_gcc_code_flag): Likewise.
> 	(md_begin): Likewise.
> 	(parse_insn): Use cpu_flags_check_x64 to check 64bit support.
> 	Use cpu_flags_match to match instructions.
> 	(i386_target_format): Update cpu_arch_isa_flags and
> 	cpu_arch_tune_flags to i386_cpu_flags type with bitfield.
> 	(smallest_imm_type): Check cpu_arch_tune to tune for i486.
> 	(match_template): Don't initialize overlap0, overlap1,
> 	overlap2, overlap3 and operand_types.
> 	(process_suffix): Handle crc32 with 64bit register.
> 	(MATCH): Removed.
> 	(CONSISTENT_REGISTER_MATCH): Likewise.
> 
> 	* config/tc-i386.h (arch_entry): Updated to i386_cpu_flags
> 	type.
> 
> opcodes/
> 
> 2007-09-07  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	* configure.in (AC_CHECK_HEADERS): Add limits.h.
> 	* configure: Regenerated.
> 	* config.in: Likewise.
> 
> 	* i386-gen.c: Include "sysdep.h" instead of <stdlib.h> and
> 	<string.h>.  Use xstrerror instead of strerror.
> 	(initializer): New.
> 	(cpu_flag_init): Likewise.
> 	(bitfield): Likewise.
> 	(BITFIELD): New.
> 	(cpu_flags): Likewise.
> 	(opcode_modifiers): Likewise.
> 	(operand_types): Likewise.
> 	(compare): Likewise.
> 	(set_cpu_flags): Likewise.
> 	(output_cpu_flags): Likewise.
> 	(process_i386_cpu_flags): Likewise.
> 	(output_opcode_modifier): Likewise.
> 	(process_i386_opcode_modifier): Likewise.
> 	(output_operand_type): Likewise.
> 	(process_i386_operand_type): Likewise.
> 	(set_bitfield): Likewise.
> 	(operand_type_init): Likewise.
> 	(process_i386_initializers): Likewise.
> 	(process_i386_opcodes): Call process_i386_opcode_modifier to
> 	process opcode_modifier.  Call process_i386_operand_type to
> 	process operand_types.
> 	(process_i386_registers): Call process_i386_operand_type to
> 	process reg_type.
> 	(main): Check unused bits in i386_cpu_flags and
i386_operand_type.
> 	Sort cpu_flags, opcode_modifiers and operand_types.  Call
> 	process_i386_initializers.
> 
> 	* i386-init.h: New.
> 	* i386-tbl.h: Regenerated.
> 
> 	* i386-opc.h: Include <limits.h>.
> 	(CHAR_BIT): Define as 8 if not defined.
> 	(Cpu186): Changed to position of bitfiled.
> 	(Cpu286): Likewise.
> 	(Cpu386): Likewise.
> 	(Cpu486): Likewise.
> 	(Cpu586): Likewise.
> 	(Cpu686): Likewise.
> 	(CpuP4): Likewise.
> 	(CpuK6): Likewise.
> 	(CpuK8): Likewise.
> 	(CpuMMX): Likewise.
> 	(CpuMMX2): Likewise.
> 	(CpuSSE): Likewise.
> 	(CpuSSE2): Likewise.
> 	(Cpu3dnow): Likewise.
> 	(Cpu3dnowA): Likewise.
> 	(CpuSSE3): Likewise.
> 	(CpuPadLock): Likewise.
> 	(CpuSVME): Likewise.
> 	(CpuVMX): Likewise.
> 	(CpuSSSE3): Likewise.
> 	(CpuSSE4a): Likewise.
> 	(CpuABM): Likewise.
> 	(CpuSSE4_1): Likewise.
> 	(CpuSSE4_2): Likewise.
> 	(Cpu64): Likewise.
> 	(CpuNo64): Likewise.
> 	(D): Likewise.
> 	(W): Likewise.
> 	(Modrm): Likewise.
> 	(ShortForm): Likewise.
> 	(Jump): Likewise.
> 	(JumpDword): Likewise.
> 	(JumpByte): Likewise.
> 	(JumpInterSegment): Likewise.
> 	(FloatMF): Likewise.
> 	(FloatR): Likewise.
> 	(FloatD): Likewise.
> 	(Size16): Likewise.
> 	(Size32): Likewise.
> 	(Size64): Likewise.
> 	(IgnoreSize): Likewise.
> 	(DefaultSize): Likewise.
> 	(No_bSuf): Likewise.
> 	(No_wSuf): Likewise.
> 	(No_lSuf): Likewise.
> 	(No_sSuf): Likewise.
> 	(No_qSuf): Likewise.
> 	(No_xSuf): Likewise.
> 	(FWait): Likewise.
> 	(IsString): Likewise.
> 	(RegKludge): Likewise.
> 	(IsPrefix): Likewise.
> 	(ImmExt): Likewise.
> 	(NoRex64): Likewise.
> 	(Rex64): Likewise.
> 	(Ugh): Likewise.
> 	(Reg8): Likewise.
> 	(Reg16): Likewise.
> 	(Reg32): Likewise.
> 	(Reg64): Likewise.
> 	(FloatReg): Likewise.
> 	(RegMMX): Likewise.
> 	(RegXMM): Likewise.
> 	(Imm8): Likewise.
> 	(Imm8S): Likewise.
> 	(Imm16): Likewise.
> 	(Imm32): Likewise.
> 	(Imm32S): Likewise.
> 	(Imm64): Likewise.
> 	(Imm1): Likewise.
> 	(BaseIndex): Likewise.
> 	(Disp8): Likewise.
> 	(Disp16): Likewise.
> 	(Disp32): Likewise.
> 	(Disp32S): Likewise.
> 	(Disp64): Likewise.
> 	(InOutPortReg): Likewise.
> 	(ShiftCount): Likewise.
> 	(Control): Likewise.
> 	(Debug): Likewise.
> 	(Test): Likewise.
> 	(SReg2): Likewise.
> 	(SReg3): Likewise.
> 	(Acc): Likewise.
> 	(FloatAcc): Likewise.
> 	(JumpAbsolute): Likewise.
> 	(EsSeg): Likewise.
> 	(RegMem): Likewise.
> 	(OTMax): Likewise.
> 	(Reg): Commented out.
> 	(WordReg): Likewise.
> 	(ImplicitRegister): Likewise.
> 	(Imm): Likewise.
> 	(EncImm): Likewise.
> 	(Disp): Likewise.
> 	(AnyMem): Likewise.
> 	(LLongMem): Likewise.
> 	(LongMem): Likewise.
> 	(ShortMem): Likewise.
> 	(WordMem): Likewise.
> 	(ByteMem): Likewise.
> 	(CpuMax): New
> 	(CpuLM): Likewise.
> 	(CpuNumOfUints): Likewise.
> 	(CpuNumOfBits): Likewise.
> 	(CpuUnused): Likewise.
> 	(OTNumOfUints): Likewise.
> 	(OTNumOfBits): Likewise.
> 	(OTUnused): Likewise.
> 	(i386_cpu_flags): New type.
> 	(i386_operand_type): Likewise.
> 	(i386_opcode_modifier): Likewise.
> 	(CpuSledgehammer): Removed.
> 	(CpuSSE4): Likewise.
> 	(CpuUnknownFlags): Likewise.
> 	(Reg): Likewise.
> 	(WordReg): Likewise.
> 	(ImplicitRegister): Likewise.
> 	(Imm): Likewise.
> 	(EncImm): Likewise.
> 	(Disp): Likewise.
> 	(AnyMem): Likewise.
> 	(LLongMem): Likewise.
> 	(LongMem): Likewise.
> 	(ShortMem): Likewise.
> 	(WordMem): Likewise.
> 	(ByteMem): Likewise.
> 	(template): Use i386_cpu_flags for cpu_flags, use
> 	i386_opcode_modifier for opcode_modifier, use
> 	i386_operand_type for operand_types.
> 	(reg_entry): Use i386_operand_type for reg_type.
> 
> 	* Makefile.am (HFILES): Add i386-init.h.
> 	($(srcdir)/i386-init.h): New rule.
> 	($(srcdir)/i386-tbl.h): Depend on $(srcdir)/i386-init.h
> 	instead.
> 	 Makefile.in: Regenerated.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: PATCH: Convert x86 assembler to bitfield
  2007-09-08 19:35   ` Meissner, Michael
@ 2007-09-08 23:02     ` H.J. Lu
  2007-09-08 23:04       ` Meissner, Michael
  0 siblings, 1 reply; 5+ messages in thread
From: H.J. Lu @ 2007-09-08 23:02 UTC (permalink / raw)
  To: Meissner, Michael; +Cc: Harle, Christophe, rajagopal, dwarak, binutils

On Sat, Sep 08, 2007 at 03:35:22PM -0400, Meissner, Michael wrote:
> As I have mentioned before, this uses a C99/new GCC feature (designated
> initializers) when you are building the x86 instruction tables.  I
> really don't feel binutils should be using anything outside of C90
> because binutils, like GCC is part of the kit needed to port to systems

There are no designated initializers in my final patch at all. If
you found one, please let me know.

Thanks.


H.J.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: PATCH: Convert x86 assembler to bitfield
  2007-09-08 23:02     ` H.J. Lu
@ 2007-09-08 23:04       ` Meissner, Michael
  0 siblings, 0 replies; 5+ messages in thread
From: Meissner, Michael @ 2007-09-08 23:04 UTC (permalink / raw)
  To: H.J. Lu; +Cc: Harle, Christophe, rajagopal, dwarak, binutils

Ok.  Obviously, I did not look at the final patch.  I will do so
shortly.  Thanks.

--
Michael Meissner
AMD, MS 83-29
90 Central Street
Boxborough, MA 01719

> -----Original Message-----
> From: H.J. Lu [mailto:hjl@lucon.org]
> Sent: Saturday, September 08, 2007 7:02 PM
> To: Meissner, Michael
> Cc: Harle, Christophe; rajagopal, dwarak; binutils@sources.redhat.com
> Subject: Re: PATCH: Convert x86 assembler to bitfield
> 
> On Sat, Sep 08, 2007 at 03:35:22PM -0400, Meissner, Michael wrote:
> > As I have mentioned before, this uses a C99/new GCC feature
(designated
> > initializers) when you are building the x86 instruction tables.  I
> > really don't feel binutils should be using anything outside of C90
> > because binutils, like GCC is part of the kit needed to port to
systems
> 
> There are no designated initializers in my final patch at all. If
> you found one, please let me know.
> 
> Thanks.
> 
> 
> H.J.
> 



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-09-08 23:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-09-07 13:51 RFC: Convert x86 assembler to bitfield H.J. Lu
2007-09-07 21:06 ` PATCH: " H.J. Lu
2007-09-08 19:35   ` Meissner, Michael
2007-09-08 23:02     ` H.J. Lu
2007-09-08 23:04       ` Meissner, Michael

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).