MSP430: Implement 64-bit shifts in assembly code
authorJozef Lawrynowicz <jozef.l@mittosystems.com>
Sun, 16 Jun 2019 21:24:56 +0000 (21:24 +0000)
committerJozef Lawrynowicz <jozefl@gcc.gnu.org>
Sun, 16 Jun 2019 21:24:56 +0000 (21:24 +0000)
commit0fcc78f79e85b816480e0425cc8d7c496e739e88
tree588d5986dd2a505d0fff820371c546025752c25e
parent1409f3b0f39baa489d4cc467a3489dfe78653ec4
MSP430: Implement 64-bit shifts in assembly code

gcc/ChangeLog:

2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
describe how to perform MSPABI compliant 64-bit shift.
* config/msp430/msp430.md (ashldi3): New define_expand.
(ashrdi3): New define_expand.
(lshrdi3): New define_expand.

libgcc/ChangeLog:

2019-06-16  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.
* config/msp430/srai.S (__mspabi_srall): New library function for
performing a arithmetic right shift of a 64-bit value.
* config/msp430/srll.S (__mspabi_srlll): New library function for
performing a logical right shift of a 64-bit value.

gcc/testsuite/ChangeLog:

2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* gcc.target/msp430/mspabi_sllll.c: New test.
* gcc.target/msp430/mspabi_srall.c: New test.
* gcc.target/msp430/mspabi_srlll.c: New test.
* gcc.c-torture/execute/shiftdi-2.c: New test.

From-SVN: r272360
12 files changed:
gcc/ChangeLog
gcc/config/msp430/msp430.c
gcc/config/msp430/msp430.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/shiftdi-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/msp430/mspabi_sllll.c [new file with mode: 0644]
gcc/testsuite/gcc.target/msp430/mspabi_srall.c [new file with mode: 0644]
gcc/testsuite/gcc.target/msp430/mspabi_srlll.c [new file with mode: 0644]
libgcc/ChangeLog
libgcc/config/msp430/slli.S
libgcc/config/msp430/srai.S
libgcc/config/msp430/srli.S