188278ca2SAdrian Bunk/* 21da177e4SLinus Torvalds * ashldi3.S: GCC emits these for certain drivers playing 31da177e4SLinus Torvalds * with long longs. 41da177e4SLinus Torvalds * 51da177e4SLinus Torvalds * Copyright (C) 1999 David S. Miller (davem@redhat.com) 61da177e4SLinus Torvalds */ 71da177e4SLinus Torvalds 88695c37dSDavid S. Miller#include <linux/linkage.h> 98695c37dSDavid S. Miller 101da177e4SLinus Torvalds .text 118695c37dSDavid S. MillerENTRY(__ashldi3) 121da177e4SLinus Torvalds cmp %o2, 0 131da177e4SLinus Torvalds be 9f 141da177e4SLinus Torvalds mov 0x20, %g2 151da177e4SLinus Torvalds 161da177e4SLinus Torvalds sub %g2, %o2, %g2 171da177e4SLinus Torvalds cmp %g2, 0 181da177e4SLinus Torvalds bg 7f 191da177e4SLinus Torvalds sll %o0, %o2, %g3 201da177e4SLinus Torvalds 211da177e4SLinus Torvalds neg %g2 221da177e4SLinus Torvalds clr %o5 231da177e4SLinus Torvalds b 8f 241da177e4SLinus Torvalds sll %o1, %g2, %o4 251da177e4SLinus Torvalds7: 261da177e4SLinus Torvalds srl %o1, %g2, %g2 271da177e4SLinus Torvalds sll %o1, %o2, %o5 281da177e4SLinus Torvalds or %g3, %g2, %o4 291da177e4SLinus Torvalds8: 301da177e4SLinus Torvalds mov %o4, %o0 311da177e4SLinus Torvalds mov %o5, %o1 321da177e4SLinus Torvalds9: 331da177e4SLinus Torvalds retl 341da177e4SLinus Torvalds nop 358695c37dSDavid S. MillerENDPROC(__ashldi3) 36