mescc: Tinycc support: generalize neg.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 23 Jul 2017 07:18:36 +0000 (09:18 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 26 Jul 2017 09:36:08 +0000 (11:36 +0200)
* module/language/c99/compiler.mes (expr->accu): Generalize neg.

module/language/c99/compiler.mes

index c7dec6a0716813c0a18d27b93b402de5d8871dc0..348081ea1e27b0e099f3b5e526bff9e22e9d06c6 100644 (file)
                           (wrap-as (i386:accu-negate)))
                   #:globals (.globals test-info))))
 
-        ((neg (p-expr (fixed ,value)))
-         (append-text info (value->accu (- (cstring->number value)))))
-
-        ((neg (p-expr (ident ,name)))
-         (append-text info (append ((ident->base info) name)
-                                   (wrap-as (i386:value->accu 0))
-                                   (wrap-as (i386:sub-base)))))
+        ((neg ,expr)
+         (let ((info ((expr->base info) expr)))
+          (append-text info (append (wrap-as (i386:value->accu 0))
+                                    (wrap-as (i386:sub-base))))))
 
         ((eq ,a ,b) ((binop->accu info) a b (append (i386:sub-base) (i386:z->accu))))
         ((ge ,a ,b) ((binop->accu info) b a (i386:sub-base)))