commit - 556cf3fcc326710d1d7db9f8340568349fe04108
commit + 5c65abd0607ea694a65fee66a05283d1021ea35e
blob - 4f4a708a8a59aae419e3804e0e2ad6537725d0cb
blob + c330c80c729c9585f20ce981f16a40a4d8bcb6b8
--- examples/test.c
+++ examples/test.c
return a0;
}
+unsigned mul(unsigned a, unsigned b)
+{
+ return a / b;
+}
+
int main (int argc, char *argv[]) {
FILE *in, *out;
int ch, *ptr;
fclose (in);
+ printf ("Result: %u\n", mul (3, 2));
+
return 0;
}
blob - 1097223b6bee26ebd2770d2554da81f7992465a1
blob + 7f88c1790ad9c4ed9776a28bab20fdbea8ae19be
--- src/cpu.c
+++ src/cpu.c
c = extend (a * b);
alu ("mulw");
break;
- case 0b000001'001: // divw
+ case 0b000001'100: // divw
c = extend (b != 0 ? (i32)a / (i32)b : -1);
alu ("divw");
break;
- case 0b000001'010: // divuw
+ case 0b000001'101: // divuw
c = extend (b != 0 ? (u32)a / (u32)b : -1);
alu ("divuw");
break;
- case 0b000001'011: // remw
+ case 0b000001'110: // remw
c = extend (b != 0 ? (i32)a % (i32)b : (i32)a);
alu ("divw");
break;
- case 0b000001'100: // remuw
+ case 0b000001'111: // remuw
c = extend (b != 0 ? (u32)a % (u32)b : (u32)b);
alu ("divuw");
break;