Hi Luc, On 11 August 2017 at 12:49, Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> wrote: > On Fri, Aug 11, 2017 at 11:28:23AM +0100, Dibyendu Majumdar wrote: >> On 10 August 2017 at 23:34, Luc Van Oostenryck >> <luc.vanoostenryck@xxxxxxxxx> wrote: >> > * the OP_PUSH instructions do a perfect job of giving a type to functions >> > arguments >> > * the OP_PUSH instructions also nicely abstract away the *operation* of >> > argument passing that all architectures have. It's a good thing. >> > >> >> It is true that OP_PUSH instructions resolved the issue I was having. >> However there is something odd about them as they are not really >> instructions in the instruction stream, are they? They get added as >> arguments to the OP_CALL instruction. The solution works great though. > > Yes, they are somehow odd. I am trying to think why I find them odd. I suppose being used to LLVM IR - where each instruction results in a new value, I wasn't sure how the push instruction plays with everything else. But since we ignore them in the LLVM backend except as arguments to CALL, it doesn't make any difference in practical terms. I also ignore these instructions in my NanoJIT backend except as arguments to CALL. Regards Dibyendu -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html