]> granicus.if.org Git - yasm/commitdiff
* floatnum.pxi: yasm_floatnum doesn't support any ops other than NEG,
authorPeter Johnson <peter@tortall.net>
Sun, 16 Apr 2006 08:48:28 +0000 (08:48 -0000)
committerPeter Johnson <peter@tortall.net>
Sun, 16 Apr 2006 08:48:28 +0000 (08:48 -0000)
other cleanups along the lines of intnum.

svn path=/trunk/yasm/; revision=1492

tools/python-yasm/floatnum.pxi

index a6ac6f82454dfef511cc55dde2ca93827b2db722..288f105db53e694245f34798c4cb8c648fe0622f 100644 (file)
@@ -56,27 +56,9 @@ cdef class FloatNum:
     def __dealloc__(self):
         if self.flt != NULL: yasm_floatnum_destroy(self.flt)
 
-    def __op(self, op, o):
-        if isinstance(o, FloatNum): rhs = o
-        else: rhs = FloatNum(o)
-        lhs = FloatNum(self)
-        yasm_floatnum_calc((<FloatNum>lhs).flt, op, (<FloatNum>rhs).flt, 0)
-        return lhs
-
-    def __add__(FloatNum self, o): return self.__op(YASM_EXPR_ADD, o)
-    def __sub__(FloatNum self, o): return self.__op(YASM_EXPR_SUB, o)
-    def __mul__(FloatNum self, o): return self.__op(YASM_EXPR_MUL, o)
-    def __div__(FloatNum self, o): return self.__op(YASM_EXPR_SIGNDIV, o)
-    def __floordiv__(FloatNum self, o): return self.__op(YASM_EXPR_SIGNDIV, o)
-    def __mod__(FloatNum self, o): return self.__op(YASM_EXPR_SIGNMOD, o)
-    def __neg__(FloatNum self): return self.__op(YASM_EXPR_NEG, o)
-    def __pos__(FloatNum self): return self
-    #def __abs__(FloatNum self): return self
-    #def __nonzero__(FloatNum self): return not yasm_floatnum_is_zero(self.intn)
-    def __invert__(FloatNum self): return self.__op(YASM_EXPR_NOT, o)
-    #def __lshift__(FloatNum self, o)
-    #def __rshift__(FloatNum self, o)
-    def __and__(FloatNum self, o): return self.__op(YASM_EXPR_AND, o)
-    def __or__(FloatNum self, o): return self.__op(YASM_EXPR_OR, o)
-    def __xor__(FloatNum self, o): return self.__op(YASM_EXPR_XOR, o)
+    def __neg__(self):
+        result = FloatNum(self)
+        yasm_floatnum_calc((<FloatNum>result).flt, YASM_EXPR_NEG, NULL, 0)
+        return result
+    def __pos__(self): return self