On Thu, Oct 24, 2013 at 1:29 PM, Ilya Enkovich <enkovich....@gmail.com> wrote:

>>>> This is OK for mainline, on the condition that target independent part
>>>> is approved and committed first.
>>>>
>>>> Thanks,
>>>> Uros.
>>>
>>> Thanks for review!
>>>
>>> Attached is a version to be committed.  The only difference from the 
>>> previous one is BOUND_MODE renamed to POINTER_BOUNDS_MODE due to changes in 
>>> target independent part.  ChangeLog was not modified.
>>
>> I think you missed a couple of length -> length_nobnd updates:
>>
>> @@ -11635,7 +11680,12 @@
>>    [(simple_return)
>>     (unspec [(const_int 0)] UNSPEC_REP)]
>>    "reload_completed"
>> -  "rep%; ret"
>> +{
>> +  if (ix86_bnd_prefixed_insn_p (insn))
>> +    return "%!ret";
>> +
>> +  return "rep%; ret";
>> +}
>>    [(set_attr "length" "2")
>>     (set_attr "atom_unit" "jeu")
>>     (set_attr "length_immediate" "0")
>>
>
> There is no reason for length_nobnd because instruction length is
> always 2. Difference is in prefix used for MPX and non-MPX code.
>
>> and possibly here:
>>
>> @@ -11186,7 +11231,7 @@
>>  (define_insn "*indirect_jump"
>>    [(set (pc) (match_operand:W 0 "indirect_branch_operand" "rw"))]
>>    ""
>> -  "jmp\t%A0"
>> +  "%!jmp\t%A0"
>>    [(set_attr "type" "ibr")
>>     (set_attr "length_immediate" "0")])
>>
>> @@ -11235,7 +11280,7 @@
>>    [(set (pc) (match_operand:W 0 "indirect_branch_operand" "rw"))
>>     (use (label_ref (match_operand 1)))]
>>    ""
>> -  "jmp\t%A0"
>> +  "%!jmp\t%A0"
>>    [(set_attr "type" "ibr")
>>     (set_attr "length_immediate" "0")])
>
> For these cases 'prefix_rep' attribute makes the work due to 'ibr'
> type. Generic length should work fine.

Indeed. Thanks for explanation!

Uros.

Reply via email to