mescc: Support rshift, have guile-mini-mes pass math test.
[mes.git] / module / language / c99 / compiler.mes
index 719ec5e7b9d44e3180cf09e607b6b7dd5606797f..d22bd35178da9467a431b46a56902b0e3a666a58 100644 (file)
                           (list (lambda (f g ta t d)
                                   (i386:accu<<base)))))))
 
+        ((rshift ,a ,b)
+         (let* ((empty (clone info #:text '()))
+                (accu ((expr->accu empty) a))
+                (base ((expr->base empty) b)))
+           (clone info #:text
+                  (append text
+                          (.text accu)
+                          (.text base)
+                          (list (lambda (f g ta t d)
+                                  (i386:accu>>base)))))))
+
         ((div ,a ,b)
          (let* ((empty (clone info #:text '()))
                 (accu ((expr->accu empty) a))
                           (list (lambda (f g ta t d)
                                   (i386:base-sub)))))))
 
+        ;; HMM
+        ((lshift . _) ((expr->accu info) o))
+        ((rshift . _) ((expr->accu info) o))
+
         ;; TODO: byte dinges
         ((Xsub ,a ,b)
          (let* ((base ((expr->base info) a))