> What I understand is that in gen_icount_start 'icount_arg' keeps a pointer
> to gen_opparam_ptr which is used in gen_icount_end to patch up the value . I
> however didnt understand what the 'horrid hack' is about. Can any one give
> me some idea on this ?
>My guess is that it's a hack because it's a layering violation. Functions
>that generate TCG (intermediate representation) should do it by calling>the tcg_ functions, and the data structures and variables like
>gen_opparam_ptr should be internal to the TCG layer. However here we>rely on knowing implementation details of how the TCG layer actually writes
>out the ops and parameters when you call tcg_gen_subi_i32().>A clean design would make the TCG layer provide some kind of API for
>writing out code and then fixing up the values afterwards, but on the other>hand if we only have one use case...
Oh I just found out from the mailing list archives that '0xdeadbeef' is a value that is later patched by the number of instructions 'num_insns' and that is what the hack is about.
Regards,
Biswa