From f105ca1fc2c882c6fc1ff486a90b00a72e6532f4 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sun, 15 Sep 2002 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 2002-09-15 --- pc/main.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/pc/main.c b/pc/main.c index 874ed425d2ebd333e0451a4b75a1b31c56091bf9..821bc870dc9decf037806bc54f406e4f2335e00a 100644 --- a/pc/main.c +++ b/pc/main.c @@ -423,14 +423,12 @@ confinit(void) static char* mathmsg[] = { - "invalid", - "denormalized", - "div-by-zero", - "overflow", - "underflow", - "precision", - "stack", - "error", + nil, /* handled below */ + "denormalized operand", + "division by zero", + "numeric overflow", + "numeric underflow", + "precision loss", }; static void @@ -446,14 +444,23 @@ mathnote(void) * Some attention should probably be paid here to the * exception masks and error summary. */ - msg = "unknown"; - for(i = 0; i < 8; i++){ + msg = "unknown exception"; + for(i = 1; i <= 5; i++){ if(!((1<fpsave.pc); + if(status & 0x01){ + if(status & 0x30){ + if(status & 0x200) + msg = "stack overflow"; + else + msg = "stack underflow"; + }else + msg = "invalid operation"; + } + sprint(note, "sys: fp: %s fppc=0x%lux status=0x%lux", msg, up->fpsave.pc, status); postnote(up, 1, note, NDebug); }