|
From: Bin X. <xi...@pu...> - 2008-02-27 06:39:57
|
Hello, I was wondering how to get around using libc calls like "pow", "log", "setjmp/longjmp" inside Valgrind tool code? I know there are 'VG_(log2)' and shift operator, but suppose one really wants the range of a 'double'. Or generally, how much support is there for floating point code and unstructured control flow. Thanks, -B |
|
From: Julian S. <js...@ac...> - 2008-02-27 11:01:13
|
> I was wondering how to get around using libc calls like "pow", "log", You'll have to write your own, or import implementations from a GPL2+'d C library. I find dietlibc often easier to navigate than glibc. > "setjmp/longjmp" Use __builtin_setjmp, __builtin_longjmp. Those are used already. Grep the source code. > inside Valgrind tool code? I know there are 'VG_(log2)' > and shift operator, but suppose one really wants the range of a 'double'. > Or generally, how much support is there for floating point code and > unstructured control flow. Nobody (afaik) has used FP in a tool much so far. There may be code generation issues due to the JIT not saving/restoring FP registers properly around helper function calls. If you see anything strange like that let me know; it should be easy enough to fix. J |
|
From: Bin X. <xi...@pu...> - 2008-02-27 17:11:12
|
Julian Seward wrote: >> I was wondering how to get around using libc calls like "pow", "log", > > You'll have to write your own, or import implementations from a > GPL2+'d C library. I find dietlibc often easier to navigate than > glibc. > >> "setjmp/longjmp" > > Use __builtin_setjmp, __builtin_longjmp. Those are used already. > Grep the source code. > >> inside Valgrind tool code? I know there are 'VG_(log2)' >> and shift operator, but suppose one really wants the range of a 'double'. >> Or generally, how much support is there for floating point code and >> unstructured control flow. > > Nobody (afaik) has used FP in a tool much so far. There may be code > generation issues due to the JIT not saving/restoring FP registers > properly around helper function calls. If you see anything strange > like that let me know; it should be easy enough to fix. > That was fast, thanks. And thanks for such a great tool in Valgrind, if you guys haven't heard enough. -B |