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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [bfin/] [shift.s] - Blame information for rev 853

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 205 julius
        .text
2
        .global add_with_shift
3
add_with_shift:
4
        P0 = (P0 + p1) << 1;
5
        P2 = (p2 + p5) << 2;
6
        r7 = (R7 + r1) << 2;
7
        r3 = (r3 + R0) << 1;
8
 
9
        .text
10
        .global shift_with_add
11
shift_with_add:
12
        P5 = p4 + (P0 << 2);
13
        P0 = p2 + (p1 << 1);
14
 
15
        .text
16
        .global arithmetic_shift
17
arithmetic_shift:
18
        A0 = A0 >> 31;
19
        a0 = a0 << 31;
20
        a1 = a1 >> 0;
21
        A1 = A1 << 0;
22
        r7 = r5 << 31 (s);
23
        R3 = r2 >>> 22;
24
        r1.L = R2.H << 15 (S);
25
        r5.h = r2.l >>> 2;
26
        r0 <<= 0;
27
        r1 >>>= 31;
28
 
29
        r0 >>>= R1;
30
        R2 <<= R1;
31
        r3.l = Ashift  r4.h by r2.l;
32
        R7.H = ASHIFT R7.L by R0.L (S);
33
        r7.h = ashift  r7.l by r0.l (s);
34
        r6 = AShiFT R5 by R2.L;
35
        R0 = Ashift R4 by r1.l (s);
36
        r2 = ashift r6 BY r3.L (S);
37
        A0 = Ashift a0 by r1.l;
38
        a1 = ASHIFT a1 by r0.L;
39
 
40
 
41
        .text
42
        .global logical_shift
43
logical_shift:
44
        p0 = p0 >> 1;
45
        P1 = p2 >> 2;
46
        P3 = P1 << 1;
47
        p4 = p5 << 2;
48
 
49
        r0 >>= 31;
50
        R7 <<= 31;
51
        r1.H = r2.l >> 15;
52
        r7.l = r0.L << 0;
53
        r5 = r5 >> 31;
54
        r0 = r0 << 12;
55
        A0 = A0 >> 1;
56
        A0 = A0 << 0;
57
        a1 = A1 << 31;
58
        a1 = a1 >> 16;
59
 
60
        r5 >>= R7;
61
        R6 <<= r0;
62
        R1.H = LShift r2.h by r0.l;
63
        r0.l = LSHIFT r0.h by r1.l;
64
        r7.L = lshift r6.L BY r2.l;
65
        r5 = LShIft R4 bY r3.L;
66
        A0 = Lshift a0 By R6.L;
67
        A1 = LsHIFt a1 by r5.l;
68
 
69
        .text
70
        .global rotate
71
rotate:
72
        r7 = ROT r7 by -32;
73
        R6 = Rot r7 by -31;
74
        R5 = RoT R7 by 31;
75
        R4 = Rot r7 by 30;
76
        a0 = rot A0 by 0;
77
        A0 = ROT a0 BY 10;
78
        A1 = ROT A1 by -20;
79
        A1 = ROT a1 By -32;
80
 
81
        r0 = rot r1 by r2.L;
82
        R0 = Rot R4 BY R3.L;
83
        A0 = ROT A0 by r7.l;
84
        A1 = rot a1 bY r6.l;
85
 
86
 
87
 

powered by: WebSVN 2.1.0

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