From c3639d5b8a3f9e357d35eb9b720e7dfc83c6f6f2 Mon Sep 17 00:00:00 2001 From: Tobias Girstmair Date: Tue, 13 Nov 2018 17:51:54 +0100 Subject: [PATCH 1/1] new version --- fakeasm.h | 3 +++ foo.c | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fakeasm.h b/fakeasm.h index cfb4598..cffa6d8 100644 --- a/fakeasm.h +++ b/fakeasm.h @@ -29,3 +29,6 @@ int asmtmp = 0; #define ROL(x) asmtmp = x>>7; x <<= 1; x |= carry; carry = asmtmp; #define ROR(x) asmtmp = x&0x1; x >>= 1; x |= carry<<7; carry = asmtmp; #define NEG(x) x *= -1; +int sr_neg = 0; +#define CPI(x,n) sr_neg = (x-n < 0); //WARN: not a complete CPI mockup +#define BRPL(l) if (sr_neg) goto l; diff --git a/foo.c b/foo.c index f227598..1265e77 100644 --- a/foo.c +++ b/foo.c @@ -41,7 +41,10 @@ void mod3(void) { LSR (tmp) ANDI (Ml, 0x03) ADD (Ml, tmp) - if (Ml > 2) Ml = Ml - 3; //TODO + CPI (Ml, 3) + BRPL (skip) + Ml = Ml - 3; //TODO + skip:; #undef tmp } void g(void) { -- 2.39.3