fptrap.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 47 行

C
47
字号
#include	"u.h"#include	"../port/lib.h"#include	"mem.h"#include	"dat.h"#include	"fns.h"#include	"ureg.h"#include	"io.h"#include	"../port/error.h"char *fpcause[] ={	"invalid operation",	"division by zero",	"overflow",	"underflow",	"inexact operation",	"integer overflow",};char	*fpexcname(Ureg*, ulong, char*);voidfptrap(Ureg *ur){	char buf[ERRMAX];	int i;	ulong reason;	ur->pc &= ~2;	reason = (ulong)ur->a0;	for (i = 1; i < 6; i++)		if (reason & (1<<i)) {			sprint(buf, "fp: %s", fpcause[i-1]);			goto found;		}	sprint(buf, "fp: code 0x%lux", reason);found:	fataltrap(ur, buf);}char*fpexcname(Ureg *ur, ulong fcr31, char *buf){	USED(ur, fcr31, buf);	return buf;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?