2 * linux/arch/m32r/lib/ashxdi3.S
4 * Copyright (C) 2001,2002 Hiroyuki Kondo, and Hirokazu Takata
9 #include <linux/config.h>
18 #ifdef CONFIG_ISA_DUAL_ISSUE
20 #ifndef __LITTLE_ENDIAN__
26 cmpz r2 || ldi r3, #32
30 mv r1, r0 || srai r0, #31
36 mv r3, r0 || srl r1, r2
37 sra r0, r2 || neg r2, r2
46 cmpz r2 || ldi r3, #32
50 mv r0, r1 || addi r2, #-32
51 sll r0, r2 || ldi r1, #0
55 mv r3, r1 || sll r0, r2
56 sll r1, r2 || neg r2, r2
63 cmpz r2 || ldi r3, #32
67 mv r1, r0 || addi r2, #-32
68 ldi r0, #0 || srl r1, r2
72 mv r3, r0 || srl r1, r2
73 srl r0, r2 || neg r2, r2
77 #else /* LITTLE_ENDIAN */
83 cmpz r2 || ldi r3, #32
87 mv r0, r1 || srai r1, #31
93 mv r3, r1 || srl r0, r2
94 sra r1, r2 || neg r2, r2
103 cmpz r2 || ldi r3, #32
104 jc r14 || cmpu r2, r3
107 mv r1, r0 || addi r2, #-32
108 sll r1, r2 || ldi r0, #0
112 mv r3, r0 || sll r1, r2
113 sll r0, r2 || neg r2, r2
120 cmpz r2 || ldi r3, #32
121 jc r14 || cmpu r2, r3
124 mv r0, r1 || addi r2, #-32
125 ldi r1, #0 || srl r0, r2
129 mv r3, r1 || srl r0, r2
130 srl r1, r2 || neg r2, r2
136 #else /* not CONFIG_ISA_DUAL_ISSUE */
138 #ifndef __LITTLE_ENDIAN__
294 #endif /* not CONFIG_ISA_DUAL_ISSUE */