/arch/powerpc/math-emu/mcrfs.c
https://bitbucket.org/cresqo/cm7-p500-kernel · C · 32 lines · 24 code · 8 blank · 0 comment · 1 complexity · 2dcb2132a99559e3846168e9a1af6ef1 MD5 · raw file
- #include <linux/types.h>
- #include <linux/errno.h>
- #include <asm/uaccess.h>
- #include <asm/sfp-machine.h>
- #include <math-emu/soft-fp.h>
- int
- mcrfs(u32 *ccr, u32 crfD, u32 crfS)
- {
- u32 value, clear;
- #ifdef DEBUG
- printk("%s: %p (%08x) %d %d\n", __func__, ccr, *ccr, crfD, crfS);
- #endif
- clear = 15 << ((7 - crfS) << 2);
- if (!crfS)
- clear = 0x90000000;
- value = (__FPU_FPSCR >> ((7 - crfS) << 2)) & 15;
- __FPU_FPSCR &= ~(clear);
- *ccr &= ~(15 << ((7 - crfD) << 2));
- *ccr |= (value << ((7 - crfD) << 2));
- #ifdef DEBUG
- printk("CR: %08x\n", __func__, *ccr);
- #endif
- return 0;
- }