fpcr
unsigned long fpcr;
__asm__ volatile ("mf_fpcr %0" : "=f" (fpcr));
return ((fpcr >> _ROUND_SHIFT) & _ROUND_MASK);
unsigned long fpcr;
__asm__ volatile ("mf_fpcr %0" : "=f" (fpcr));
fpcr &= ~((unsigned long)_ROUND_MASK << _ROUND_SHIFT);
fpcr |= (unsigned long)round << _ROUND_SHIFT;
__asm__ volatile ("mt_fpcr %0" : : "f" (fpcr));
unsigned long fpcr;
__asm__ volatile ("mf_fpcr %0" : "=f" (fpcr));
envp->__round = (fpcr >> _ROUND_SHIFT) & _ROUND_MASK;
unsigned long fpcr;
__asm__ volatile ("mf_fpcr %0" : "=f" (fpcr));
fpcr &= ~((unsigned long)_ROUND_MASK << _ROUND_SHIFT);
fpcr |= ((unsigned long)envp->__round & _ROUND_MASK) << _ROUND_SHIFT;
__asm__ volatile ("mt_fpcr %0" : : "f" (fpcr));
unsigned int fpcr;
__asm__ volatile ("fldcr %0, %%fcr63" : "=r" (fpcr));
return (fpcr & _ROUND_MASK);
unsigned int fpcr;
__asm__ volatile ("fldcr %0, %%fcr63" : "=r" (fpcr));
fpcr &= ~_ROUND_MASK;
fpcr |= round;
__asm__ volatile ("fstcr %0, %%fcr63" : : "r" (fpcr));
unsigned int fpsr, fpcr;
fpcr = envp->__control;
fpcr &= ~FE_ALL_EXCEPT;
__asm__ volatile ("fstcr %0, %%fcr63" : : "r" (fpcr));
unsigned int fpcr, omask;
__asm__ volatile ("fldcr %0, %%fcr63" : "=r" (fpcr));
omask = fpcr & FE_ALL_EXCEPT;
fpcr |= mask;
__asm__ volatile ("fstcr %0, %%fcr63" : : "r" (fpcr));
unsigned int fpcr, omask;
__asm__ volatile ("fldcr %0, %%fcr63" : "=r" (fpcr));
omask = fpcr & FE_ALL_EXCEPT;
fpcr &= ~mask;
__asm__ volatile ("fstcr %0, %%fcr63" : : "r" (fpcr));
unsigned int fpcr;
__asm__ volatile ("fldcr %0, %%fcr63" : "=r" (fpcr));
return (fpcr & FE_ALL_EXCEPT);
fp_c_to_fpcr_1(u_int64_t fpcr, u_int64_t fp_c)
fpcr &= FPCR_DYN(3);
fpcr |= (disables & (FP_X_IMP | FP_X_UFL)) << (61 - 3);
fpcr |= (disables & (FP_X_OFL | FP_X_DZ | FP_X_INV)) << (49 - 0);
fpcr |= fp_c & FP_C_MIRRORED << (FPCR_MIR_START - FP_C_MIR_START);
fpcr |= (fp_c & IEEE_MAP_DMZ) << 36;
fpcr |= FPCR_SUM;
fpcr |= FPCR_UNDZ | FPCR_UNFD;
fpcr |= (~fp_c & IEEE_TRAP_ENABLE_DNO) << 41;
return fpcr;
u_int64_t rm, fpcr, orig_fpcr;
orig_fpcr = fpcr = alpha_read_fpcr();
if (__predict_false(rm != 3 /* dynamic */ && rm != (fpcr >> 58 & 3))) {
fpcr = (fpcr & ~FPCR_DYN(3)) | FPCR_DYN(rm);
alpha_write_fpcr(fpcr);
WRITE_SPECIALREG(fpcr, fp->fp_cr);
fp->fp_cr = READ_SPECIALREG(fpcr);
WRITE_SPECIALREG(fpcr, fp->fp_cr);
fp->fp_cr = READ_SPECIALREG(fpcr);
uint64_t fpcr;
#define tf_fpcr tf_regs.fpcr
#define float_get_round(fpcr) (((fpcr) >> FPCR_RD_SHIFT) & FPCR_RD_MASK)
unsigned long fpcr;
N("fprl", fprl), N("fpit", fpit), N("fpsr", fpsr), N("fpcr", fpcr),