[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