2006-05-30 13:56:48 +00:00
|
|
|
/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
|
|
|
|
Free Software Foundation, Inc.
|
|
|
|
|
2013-07-08 07:37:19 +00:00
|
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
|
|
*/
|
2006-05-30 13:56:48 +00:00
|
|
|
|
2015-06-02 17:08:20 +00:00
|
|
|
#include <linux/linkage.h>
|
2016-05-26 16:01:39 +00:00
|
|
|
#include <asm/assembler.h>
|
2015-06-02 17:08:20 +00:00
|
|
|
|
2006-05-30 13:56:48 +00:00
|
|
|
#ifdef __ARMEB__
|
|
|
|
#define al r1
|
|
|
|
#define ah r0
|
|
|
|
#else
|
|
|
|
#define al r0
|
|
|
|
#define ah r1
|
|
|
|
#endif
|
|
|
|
|
2016-06-03 19:05:11 +00:00
|
|
|
.pushsection .text.__ashldi3, "ax"
|
2016-05-26 16:01:39 +00:00
|
|
|
ENTRY(__ashldi3)
|
2015-06-02 17:08:20 +00:00
|
|
|
ENTRY(__aeabi_llsl)
|
2006-05-30 13:56:48 +00:00
|
|
|
|
|
|
|
subs r3, r2, #32
|
|
|
|
rsb ip, r2, #32
|
|
|
|
movmi ah, ah, lsl r2
|
|
|
|
movpl ah, al, lsl r3
|
2016-05-26 16:01:39 +00:00
|
|
|
ARM( orrmi ah, ah, al, lsr ip )
|
|
|
|
THUMB( lsrmi r3, al, ip )
|
|
|
|
THUMB( orrmi ah, ah, r3 )
|
2006-05-30 13:56:48 +00:00
|
|
|
mov al, al, lsl r2
|
2016-05-26 16:01:39 +00:00
|
|
|
ret lr
|
|
|
|
|
|
|
|
ENDPROC(__ashldi3)
|
2015-06-02 17:08:20 +00:00
|
|
|
ENDPROC(__aeabi_llsl)
|
2016-06-03 19:05:11 +00:00
|
|
|
.popsection
|