A reserved register field in floating point ops is not zerod as it should be. Reference: /n/sources/patch/applied/kl-reserved2 Date: Sat Jan 15 15:23:17 CET 2005 --- /sys/src/cmd/kl/asm.c Sat Jan 15 15:23:17 2005 +++ /sys/src/cmd/kl/asm.c Sat Jan 15 15:23:17 2005 @@ -1001,6 +1001,11 @@ } } break; + + case 57: /* op r1,r2 with reserved rs1 */ + r = 0; + o1 = OP_RRR(opcode(p->as), p->from.reg, r, p->to.reg); + break; } if(aflag) return o1; --- /sys/src/cmd/kl/optab.c Sat Jan 15 15:23:17 2005 +++ /sys/src/cmd/kl/optab.c Sat Jan 15 15:23:17 2005 @@ -174,8 +174,8 @@ { AFMOVD, C_FREG, C_NONE, C_FREG, 49, 8, 0 }, { AFCMPD, C_FREG, C_NONE, C_FREG, 50, 4, 0 }, - { AFABSF, C_FREG, C_NONE, C_FREG, 21, 4, 0 }, - { AFMOVF, C_FREG, C_NONE, C_FREG, 21, 4, 0 }, + { AFABSF, C_FREG, C_NONE, C_FREG, 57, 4, 0 }, + { AFMOVF, C_FREG, C_NONE, C_FREG, 57, 4, 0 }, { AFADDD, C_FREG, C_NONE, C_FREG, 21, 4, 0 }, { AFADDD, C_FREG, C_REG, C_FREG, 21, 4, 0 },