Unroll slightly to avoid an inner loop jump to loop end on zero crossing
[stack_machine.git] / div.c
1 #include <stdio.h>
2
3 int main(void) {
4   printf("%08x %08x\n", 0x1234 / 0x56, 0x1234 % 0x56);
5   printf("%08x %08x\n", 0x6543 / 0x21, 0x6543 % 0x21);
6   printf("%08x %08x\n", 0xb975 / 0x31, 0xb975 % 0x31);
7   printf("%08x %08x\n", 0xdb97 / 0x531, 0xdb97 % 0x531);
8
9   printf("%08x %08x\n", 0x1234 / 0x56, 0x1234 % 0x56);
10   printf("%08x %08x\n", 0x6543 / 0x21, 0x6543 % 0x21);
11   printf("%08x %08x\n", (int)0xffffb975 / 0x31, (int)0xffffb975 % 0x31);
12   printf("%08x %08x\n", (int)0xffffdb97 / 0x531, (int)0xffffdb97 % 0x531);
13
14   printf("%08x %08x\n", -0x1234 / 0x56, -0x1234 % 0x56);
15   printf("%08x %08x\n", -0x6543 / 0x21, -0x6543 % 0x21);
16   printf("%08x %08x\n", -(int)0xffffb975 / 0x31, -(int)0xffffb975 % 0x31);
17   printf("%08x %08x\n", -(int)0xffffdb97 / 0x531, -(int)0xffffdb97 % 0x531);
18
19   printf("%08x %08x\n", 0x1234 / -0x56, 0x1234 % -0x56);
20   printf("%08x %08x\n", 0x6543 / -0x21, 0x6543 % -0x21);
21   printf("%08x %08x\n", (int)0xffffb975 / -0x31, (int)0xffffb975 % -0x31);
22   printf("%08x %08x\n", (int)0xffffdb97 / -0x531, (int)0xffffdb97 % -0x531);
23
24   printf("%08x %08x\n", -0x1234 / -0x56, -0x1234 % -0x56);
25   printf("%08x %08x\n", -0x6543 / -0x21, -0x6543 % -0x21);
26   printf("%08x %08x\n", -(int)0xffffb975 / -0x31, -(int)0xffffb975 % -0x31);
27   printf("%08x %08x\n", -(int)0xffffdb97 / -0x531, -(int)0xffffdb97 % -0x531);
28
29   return 0;
30 }