[PATCH][MSP430][4/4] Implement 64-bit shifts in assembly code

Jozef Lawrynowicz jozef.l@mittosystems.com
Sun Jun 16 21:42:00 GMT 2019


On Thu, 6 Jun 2019 11:32:49 -0600
Jeff Law <law@redhat.com> wrote:

> On 6/6/19 6:42 AM, Jozef Lawrynowicz wrote:
> > On Wed, 5 Jun 2019 16:35:14 -0600
> > Jeff Law <law@redhat.com> wrote:
> >   
> >> On 6/4/19 7:17 AM, Jozef Lawrynowicz wrote:  
> >>> libgcc/ChangeLog
> >>>
> >>> 2019-06-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
> >>>
> >>> 	* config/msp430/slli.S (__mspabi_sllll): New library function for
> >>> 	performing a logical left shift of a 64-bit value.
> >>> 	(__mspabi_srall): New library function for
> >>> 	performing a arithmetic right shift of a 64-bit value.
> >>> 	(__mspabi_srlll): New library function for
> >>> 	performing a logical right shift of a 64-bit value.
> >>>  
> >> Going to assume your assembly routines are correct :-)
> >>
> >> OK
> >> jeff  
> > I assume I implemented them correctly based on the clean regtest of
> > GCC/G++ testsuites. But in case there might be a gap in the coverage
> > somewhere, how about the attached new torture test to explicitly check 64-bit
> > shifts work as expected?
> > Passes for x86_64-linux-gnu and msp430-elf.  
> I suspect this needs to be conditional on 64bit integer support (check
> either at runtime with sizeof or via dejagnu effective target stuff).
> With that fixed this is OK.
> 
> jeff

Since it seems that the use of long long when a 64-bit type is required is much
more prevalent in the testsuite that __INT64_TYPE__ (which may not be supported
on all systems), I changed the types to use long long, and made the test
require the longlong64 effective target keyword. Committed.

Thanks,
Jozef



More information about the Gcc-patches mailing list