X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftv%2Fstrcalc.h;h=ffb81acb7c318085012566258fb9ac6d06fa9d06;hb=87a91ac4ab602fb057b81c384db63dee3d5f76f2;hp=2557813a00a083e710f767a75f06facc117be2e6;hpb=d1c8d32451932715b5fc072fb1e9fed15c96a4c5;p=libfirm diff --git a/ir/tv/strcalc.h b/ir/tv/strcalc.h index 2557813a0..ffb81acb7 100644 --- a/ir/tv/strcalc.h +++ b/ir/tv/strcalc.h @@ -18,11 +18,35 @@ #ifndef _STRCALC_H_ #define _STRCALC_H_ +#ifdef STRCALC_DEBUG_ALL /* switch on all debug options */ +# ifndef STRCALC_DEBUG +# define STRCALC_DEBUG /* switch on debug output */ +# endif +# ifndef STRCALC_DEBUG_PRINTCOMP /* print arguments and result of each computation */ +# define STRCALC_DEBUG_PRINTCOMP +# endif +# ifndef STRCALC_DEBUG_FULLPRINT +# define STRCALC_DEBUG_FULLPRINT /* print full length of values (e.g. 128 bit instead of 64 bit using default init) */ +# endif +# ifndef STRCALC_DEBUG_GROUPPRINT +# define STRCALC_DEBUG_GROUPPRINT /* print spaces after each 8 bits */ +# endif +#endif + +#ifdef STRCALC_DEBUG + /* shortcut output for debugging */ +# define sc_print_hex(a) sc_print((a), 0, SC_HEX) +# define sc_print_dec(a) sc_print((a), 0, SC_DEC) +# define sc_print_oct(a) sc_print((a), 0, SC_OCT) +# define sc_print_bin(a) sc_print((a), 0, SC_BIN) +#endif + +/* + * constants, typedefs, enums + */ + #define DEFAULT_PRECISION_IN_BYTES 8 -/***************************************************************************** - * typedefs, enums and structs - *****************************************************************************/ enum { SC_0 = 0, SC_1, @@ -39,7 +63,7 @@ enum { SC_C, SC_D, SC_E, - SC_F, + SC_F }; /** @@ -59,7 +83,7 @@ enum { SC_AND, /**< Bitwise And */ SC_OR, /**< Bitwise Or */ SC_NOT, /**< Bitwise Not */ - SC_XOR, /**< Bitwise Exclusive Or */ + SC_XOR /**< Bitwise Exclusive Or */ }; /** @@ -70,7 +94,7 @@ enum base_t { SC_HEX, /**< hexadecimal output with BIG letters */ SC_DEC, /**< decimal output */ SC_OCT, /**< octal output */ - SC_BIN, /**< binary output */ + SC_BIN /**< binary output */ }; /* @@ -109,6 +133,9 @@ int sc_comp(const void *val1, const void *val2); 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); unsigned char sc_sub_bits(const void *value, int len, unsigned byte_ofs); /**