This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] x86: fix handling of %eip/%rip


>> --- 2007-09-25/opcodes/i386-reg.tbl	2007-09-25 16:27:55.000000000 +0200
>> +++ 2007-09-25/opcodes/i386-reg.tbl	2007-09-25 17:19:30.000000000 +0200
>> @@ -187,9 +187,10 @@ xmm12, RegXMM, RegRex, 4
>>  xmm13, RegXMM, RegRex, 5
>>  xmm14, RegXMM, RegRex, 6
>>  xmm15, RegXMM, RegRex, 7
>> -// No type will make this register rejected for all purposes except
>> -// for addressing.  This saves creating one extra type for RIP.
>> -rip, BaseIndex, 0, RegRip
>> +// No type will make these registers rejected for all purposes except
>> +// for addressing.  This saves creating one extra type for RIP/EIP.
>> +rip, BaseIndex, RegRex64, RegRip
>> +eip, BaseIndex, RegRex64, RegEip
>
>Why is RegRex64 needed?

In order to avoid these being considered a register name in 16/32-bit code.
Either RegRex or RegRex64 would do here, but using RegRex64 seemed
much safer due to the very few places where it is actually being used.

OK to commit with that explanation?

Jan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]