projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- added ir_bk_inner_trampoline: this allows to defer the construction of trampolines
[libfirm]
/
ir
/
tv
/
strcalc.h
diff --git
a/ir/tv/strcalc.h
b/ir/tv/strcalc.h
index
1b62619
..
2f0294e
100644
(file)
--- a/
ir/tv/strcalc.h
+++ b/
ir/tv/strcalc.h
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 1995-200
7
University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-200
8
University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
*
* This file is part of libFirm.
*
@@
-143,30
+143,35
@@
void sc_mod(const void *value1, const void *value2, void *buffer);
*/
void sc_divmod(const void *value1, const void *value2, void *div_buffer, void *mod_buffer);
*/
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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/**
* 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_rot
l(const void *value1, const void *value2, int bitsize
, int sign, void *buffer);
/**
* buffer = 0
/**
* buffer = 0
@@
-195,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);
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
*/
/**
* Compares val1 and val2
*/
@@
-204,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_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.
/**
* Return the bits of a tarval at a given byte-offset.
@@
-236,4
+243,13
@@
void init_strcalc(int precision_in_bytes);
void finish_strcalc(void);
int sc_get_precision(void);
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 */
#endif /* FIRM_TV_STRCALC_H */