[PATCH] Workaround for Janus 2CC core errata
Daniel Gutson
dgutson@codesourcery.com
Tue Aug 18 16:41:00 GMT 2009
Hi,
sorry to insist, anybody could take a look to this?
Please commit it for me if approved since I don't have write access.
Thanks,
Daniel.
Daniel Gutson wrote:
> Hi,
> any update on this?
>
> Thanks!
> Daniel.
>
> Daniel Gutson wrote:
>> The attached patch implements a work-around for an errata in the Janus
>> 2CC core.
>>
>> I tested this by running the gcc test suite, including the two new
>> test cases I added in this patch.
>>
>> If accepted, please commit if for me since I don't have write access.
>>
>> Thanks,
>> Daniel.
>>
>>
>> 2009-07-01 Daniel Gutson <dgutson@codesourcery.com>
>>
>> gcc/
>> * config/arm/arm.md (*addsi3_carryin_shift): Added "length" clause
>> to handle the extra NOP.
>> (andsi_not_shiftsi_si): Likewise.
>> (*thumb1_ashlsi3): Likewise.
>> (*thumb1_ashrsi3): Likewise.
>> (*thumb1_lshrsi3): Likewise.
>> (*thumb1_rotrsi3): Likewise.
>> (*arm_shiftsi3): Likewise.
>> (*shiftsi3_compare0): Likewise.
>> (*shiftsi3_compare0_scratch): Likewise.
>> (*arm_notsi_shiftsi): Likewise.
>> (*arm_notsi_shiftsi_compare0): Likewise.
>> (*arm_not_shiftsi_compare0_scratch): Likewise.
>> (*arm_cmpsi_shiftsi): Likewise.
>> (*arm_cmpsi_shiftsi_swp): Likewise.
>> (*arm_cmpsi_negshiftsi_si): Likewise.
>> (*arith_shiftsi): Likewise.
>> (*arith_shiftsi_compare0): Likewise.
>> (*arith_shiftsi_compare0_scratch): Likewise.
>> (*sub_shiftsi): Likewise.
>> (*sub_shiftsi_compare0): Likewise.
>> (*sub_shiftsi_compare0_scratch): Likewise.
>> (*if_shift_move): Likewise.
>> (*if_move_shift): Likewise.
>> (*if_shift_shift): Likewise.
>> (*thumb1_ashlsi3_janus2): New. Duplicated pattern to handle the
>> extra NOP.
>> (*thumb1_ashrsi3_janus2): Likewise.
>> (*thumb1_lshrsi3_janus2): Likewise.
>> (*thumb1_rotrsi3_janus2): Likewise.
>> * config/arm/arm.c (arm_print_operand): Added the nop after the %S
>> pattern.
>> (arm_override_options): Added handling of the -mfix-janus-2cc flag
>> * config/arm/arm.h (janus2_code): Declare.
>> * config/arm/arm.opt (-mfix-janus-2cc): New.
>>
>> gcc/testsuite/
>> * lib/target-supports.exp (check_effective_target_arm_no_thumb):
>> New function.
>> * gcc.target/arm/janus-2cc-shift-1.c: New.
>> * gcc.target/arm/janus-2cc-shift-2.c: New.
>>
>>
>
--
Daniel Gutson
CodeSourcery
www.codesourcery.com
More information about the Gcc-patches
mailing list