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

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [powerpc/] [math-emu/] [mcrfs.c] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
#include <linux/types.h>
2
#include <linux/errno.h>
3
#include <asm/uaccess.h>
4
 
5
#include "soft-fp.h"
6
 
7
int
8
mcrfs(u32 *ccr, u32 crfD, u32 crfS)
9
{
10
        u32 value, clear;
11
 
12
#ifdef DEBUG
13
        printk("%s: %p (%08x) %d %d\n", __FUNCTION__, ccr, *ccr, crfD, crfS);
14
#endif
15
 
16
        clear = 15 << ((7 - crfS) << 2);
17
        if (!crfS)
18
                clear = 0x90000000;
19
 
20
        value = (__FPU_FPSCR >> ((7 - crfS) << 2)) & 15;
21
        __FPU_FPSCR &= ~(clear);
22
 
23
        *ccr &= ~(15 << ((7 - crfD) << 2));
24
        *ccr |= (value << ((7 - crfD) << 2));
25
 
26
#ifdef DEBUG
27
        printk("CR: %08x\n", __FUNCTION__, *ccr);
28
#endif
29
 
30
        return 0;
31
}

powered by: WebSVN 2.1.0

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