M7350/kernel/arch/sparc/lib/ashldi3.S

36 lines
462 B
ArmAsm
Raw Normal View History

2024-09-09 08:52:07 +00:00
/*
* ashldi3.S: GCC emits these for certain drivers playing
* with long longs.
*
* Copyright (C) 1999 David S. Miller (davem@redhat.com)
*/
2024-09-09 08:57:42 +00:00
#include <linux/linkage.h>
2024-09-09 08:52:07 +00:00
.text
2024-09-09 08:57:42 +00:00
ENTRY(__ashldi3)
2024-09-09 08:52:07 +00:00
cmp %o2, 0
be 9f
mov 0x20, %g2
sub %g2, %o2, %g2
cmp %g2, 0
bg 7f
sll %o0, %o2, %g3
neg %g2
clr %o5
b 8f
sll %o1, %g2, %o4
7:
srl %o1, %g2, %g2
sll %o1, %o2, %o5
or %g3, %g2, %o4
8:
mov %o4, %o0
mov %o5, %o1
9:
retl
nop
2024-09-09 08:57:42 +00:00
ENDPROC(__ashldi3)