[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