- Fix some more stuff in ir_spec.py
[libfirm] / ir / tv / strcalc.h
index 49b3a28..2f0294e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -146,32 +146,32 @@ void sc_divmod(const void *value1, const void *value2, void *div_buffer, void *m
 /**
  * buffer = value1 << offset
  */
-void sc_shlI(const void *val1, long offset, int radius, int sign, void *buffer);
+void sc_shlI(const void *val1, long shift_cnt, int bitsize, int sign, void *buffer);
 
 /**
  * buffer = value1 << value2
  */
-void sc_shl(const void *value1, const void *value2, int radius, int sign, void *buffer);
+void sc_shl(const void *value1, const void *value2, int bitsize, int sign, void *buffer);
 
 /**
  * buffer = value1 >>u offset
  */
-void sc_shrI(const void *val1, long offset, int radius, int sign, void *buffer);
+void sc_shrI(const void *val1, long shift_cnt, int bitsize, int sign, void *buffer);
 
 /**
  * buffer = value1 >>u value2
  */
-void sc_shr(const void *value1, const void *value2, int radius, int sign, void *buffer);
+void sc_shr(const void *value1, const void *value2, int bitsize, int sign, void *buffer);
 
 /**
  * buffer = value1 >>s value2
  */
-void sc_shrs(const void *value1, const void *value2, int radius, int sign, void *buffer);
+void sc_shrs(const void *value1, const void *value2, int bitsize, int sign, void *buffer);
 
 /**
- * buffer = value1 <<>> value2
+ * buffer = value1 <<left>> value2
  */
-void sc_rot(const void *value1, const void *value2, int radius, int sign, void *buffer);
+void sc_rotl(const void *value1, const void *value2, int bitsize, int sign, void *buffer);
 
 /**
  * buffer = 0
@@ -212,7 +212,6 @@ int sc_get_highest_set_bit(const void *value);
 int sc_get_lowest_set_bit(const void *value);
 int sc_is_zero(const void *value);
 int sc_is_negative(const void *value);
-int sc_had_carry(void);
 
 /**
  * Return the bits of a tarval at a given byte-offset.
@@ -244,4 +243,13 @@ void init_strcalc(int precision_in_bytes);
 void finish_strcalc(void);
 int sc_get_precision(void);
 
+/** Return the bit at a given position. */
+int sc_get_bit_at(const void *value, unsigned pos);
+
+/** Set the bit at the specified position. */
+void sc_set_bit_at(void *value, unsigned pos);
+
+/* Strange semantics */
+int sc_had_carry(void);
+
 #endif /* FIRM_TV_STRCALC_H */