On Thu, Oct 24, 2013 at 1:29 PM, Ilya Enkovich <[email protected]> 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.