On Tue, 09 Sep 2014 22:45:01 BST "Steve Simon" <st...@quintile.net> wrote: > Years ago The Commander and Bart Locanthi used JIT > in the form of some C that write machine code into an > array of chars, cast it to a function pointer, and called it. > (I appologise if the details are not correct but this is the idea). > > I have a need for such a thing again - trying to speed up > a compressed video decoder. > > Anyone done such a thing this millenium? Does the x86 data execution > prevention mean you just cannot do this - my targets are desktop OSs > other than plan9 (sadly).
Have you looked at libjit or luajit? There are a bunch of projects using JIT on the fly! You may also want to look at Nils Holm's subc (a 5Kloc compiler for a subset of C + codegens for 386,arm,x86-64, each in 260..427 lines). For an example of generating assembly code using C functions.