License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[sfrench/cifs-2.6.git] / arch / h8300 / lib / mulsi3.S
1 ; SPDX-License-Identifier: GPL-2.0
2 ;
3 ; mulsi3 for H8/300H - based on Renesas SH implementation
4 ;
5 ; by Toshiyasu Morita
6 ;
7 ; Old code:
8 ;
9 ; 16b * 16b = 372 states (worst case)
10 ; 32b * 32b = 724 states (worst case)
11 ;
12 ; New code:
13 ;
14 ; 16b * 16b =  48 states
15 ; 16b * 32b =  72 states
16 ; 32b * 32b =  92 states
17 ;
18
19         .global __mulsi3
20 __mulsi3:
21         mov.w   r1,r2   ; ( 2 states) b * d
22         mulxu   r0,er2  ; (22 states)
23
24         mov.w   e0,r3   ; ( 2 states) a * d
25         beq     L_skip1 ; ( 4 states)
26         mulxu   r1,er3  ; (22 states)
27         add.w   r3,e2   ; ( 2 states)
28
29 L_skip1:
30         mov.w   e1,r3   ; ( 2 states) c * b
31         beq     L_skip2 ; ( 4 states)
32         mulxu   r0,er3  ; (22 states)
33         add.w   r3,e2   ; ( 2 states)
34
35 L_skip2:
36         mov.l   er2,er0 ; ( 2 states)
37         rts             ; (10 states)
38
39         .end