diff options
author | Eyal Sawady <ecs@d2evs.net> | 2022-01-17 22:00:48 +0000 |
---|---|---|
committer | Quentin Carbonneaux <quentin@c9x.me> | 2022-01-23 11:43:59 +0100 |
commit | e91d12158122b23271ff49de8977c92fef7f3908 (patch) | |
tree | ea5051ef69ae917f23249fe7a6adc8569deb3718 /arm64 | |
parent | 367c8215d99054892740ad74c690b106c45ebf60 (diff) | |
download | roux-e91d12158122b23271ff49de8977c92fef7f3908.tar.gz |
Add a negation instruction
Necessary for floating-point negation, because `%result = sub 0, %operand` doesn't give the correct sign for 0/-0.
Diffstat (limited to 'arm64')
-rw-r--r-- | arm64/emit.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arm64/emit.c b/arm64/emit.c index bd0ebdc..de1859b 100644 --- a/arm64/emit.c +++ b/arm64/emit.c @@ -43,6 +43,8 @@ static struct { { Oadd, Ka, "fadd %=, %0, %1" }, { Osub, Ki, "sub %=, %0, %1" }, { Osub, Ka, "fsub %=, %0, %1" }, + { Oneg, Ki, "neg %=, %0" }, + { Oneg, Ka, "fneg %=, %0" }, { Oand, Ki, "and %=, %0, %1" }, { Oor, Ki, "orr %=, %0, %1" }, { Oxor, Ki, "eor %=, %0, %1" }, |