- add options to the list tail, so they are shown in the same order they are declared
[libfirm] / ir / tv / strcalc.h
index 3a854c5..9e58958 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.
  *
@@ -137,25 +137,46 @@ void sc_div(const void *value1, const void *value2, void *buffer);
  */
 void sc_mod(const void *value1, const void *value2, void *buffer);
 
+/**
+ * div_buffer = value1 / value2
+ * mod_buffer = value1 % value2
+ */
+void sc_divmod(const void *value1, const void *value2, void *div_buffer, void *mod_buffer);
+
+/**
+ * buffer = value1 << offset
+ */
+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 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
+ */
+void sc_zero(void *buffer);
 
 /*
  * function declarations
@@ -179,6 +200,9 @@ long sc_val_to_long(const void *val);
 void sc_min_from_bits(unsigned int num_bits, unsigned int sign, void *buffer);
 void sc_max_from_bits(unsigned int num_bits, unsigned int sign, void *buffer);
 
+/** truncates a value to lowest @p num_bits bits */
+void sc_truncate(unsigned num_bits, void *buffer);
+
 /**
  * Compares val1 and val2
  */
@@ -189,6 +213,14 @@ 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.
+ *
+ * @param value     the value
+ * @param len       number of valid bits in the value
+ * @param byte_ofs  the byte offset
+ */
 unsigned char sc_sub_bits(const void *value, int len, unsigned byte_ofs);
 
 /**