OpenCores
URL https://opencores.org/ocsvn/mips_16/mips_16/trunk

Subversion Repositories mips_16

[/] [mips_16/] [trunk/] [bench/] [mips_16_core_top/] [test2.asm] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 Doyya
;multiply R3=R1*R2 using add and shift instructions
2
;       R1: number 1
3
;       R2: number 2
4
;       R3: ACC
5
;       R4: masked R2
6
;       R5: 16
7
;       R6: mask, {15'b0,1'b1}
8
;       R7: conuter
9
 
10
        ADDI    R1,R0,28
11
        ADDI    R2,R0,17
12
        ADDI    R6,R0,1
13
        ADDI    R7,R0,0
14
        ADDI    R5,R0,16        ;R5=16
15
L1:     ADDI    R7,R7,1         ;R7++
16
        AND             R4,R6,R2
17
        BZ              R4,L2           ;dont need add, skip
18
        NOP
19
        ADD             R3,R3,R1        ;accumulate
20
L2:     SL              R1,R1,R6        ;R1=R1<<1
21
        SRU             R2,R2,R6        ;R2=R2>>1
22
        SUB             R4,R5,R7        ;R4=R5-R7
23
        BZ              R4,L3           ;shift over, go to stop
24
        NOP
25
        BZ              R0,L1           ;continue
26
        NOP
27
L3:     BZ              R0,L3           ;stop here
28
        NOP
29
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.