From 965274e21f31a95689f0e1d46cbba876c158adbb Mon Sep 17 00:00:00 2001 From: Tobias Girstmair Date: Tue, 13 Nov 2018 00:47:49 +0100 Subject: [PATCH] new version --- foo.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/foo.c b/foo.c index 0ee91f8..e70f5cf 100644 --- a/foo.c +++ b/foo.c @@ -13,7 +13,7 @@ u8 i3; u8 x; u8 t; u8 o; -void g(int i) { +void g(void) { // g(i, x, t, o) -> t u8 tmp; ANDI (t, 0x07) @@ -24,14 +24,13 @@ void g(int i) { SUBI (t, -8) skip: t = data[t]; - t = (i*t) >> o; + t = ((i3<<24|i2<<16|i1<<8|i0)*t) >> o; AND (t, x) ANDI (t, 3) RET }; int main(void) { - int i = 0; unsigned short n; unsigned short s; u8 acc; @@ -45,32 +44,31 @@ int main(void) { LDI (x, 1) MOV (t, n) LDI (o, 12) - RCALL g(i); + RCALL g(); MOV (acc, t) //voice 2: MOV (x, s) t = n ^ (i2<<3 | i1>>5); LDI (o, 10) - RCALL g(i); + RCALL g(); ADD (acc, t) //voice 3: x = s / 3; t = n + ((i3<<13 | i2<<5 | i1>>3) % 3); LDI (o, 10) - RCALL g(i); + RCALL g(); ADD (acc, t) //voice 4: x = s / 5; t = 8 + n - ((i3<<14 | i2<<6 | i1>>2) % 3); LDI (o, 9) - RCALL g(i); + RCALL g(); ADD (acc, t) putchar(acc<<4); - i++; #define tmp acc LDI (tmp, 0) SUBI (i0, -1) -- 2.39.3