summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpp2cc.py4
-rw-r--r--tests/not.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/pp2cc.py b/pp2cc.py
index 7249ca3..ac00ffd 100755
--- a/pp2cc.py
+++ b/pp2cc.py
@@ -568,9 +568,9 @@ class Parse(object):
# assume that the status words of the registers describes the value
# of the expression
lines.append(self.asm.branch_op("BEQ", lbl_false))
- lines.append(self.asm.binary_op("LOAD", reg, 1, label=lbl_true))
+ lines.append(self.asm.binary_op("LOAD", reg, 0, label=lbl_true))
lines.append(self.asm.branch_op("BRA", lbl_end))
- lines.append(self.asm.binary_op("LOAD", reg, 0, label=lbl_false))
+ lines.append(self.asm.binary_op("LOAD", reg, 1, label=lbl_false))
lines.append(self.asm.noop(lbl_end, register=reg))
elif op == "sizeof":
self.logger.error("Sizeof operator 'sizeof' is not supported.",
diff --git a/tests/not.c b/tests/not.c
new file mode 100644
index 0000000..b7c7682
--- /dev/null
+++ b/tests/not.c
@@ -0,0 +1,3 @@
+int main() {
+ return !0; // 1
+}