On 10/20/2017 05:50 PM, Quentin Monnet wrote: [...]
The remaining four bytes are taken from the "immediate" field of the second instruction, which leaves the first four fields (offset, source and destination registers, and in particular opcode) unused. As far as I know, these fields remain at zero, and this makes it the only “instruction” to have a null code (although I am not sure this is a strict requirement, because I did not find the code in the verifier that would reject a program having a non-null opcode right after a "load double word immediate" instruction).
It's in replace_map_fd_with_map_ptr(), invalid insns for the 2nd part are rejected there, they have to be otherwise it's not extendable anymore from abi pov; check also 'test1* ld_imm64' in the verifier test cases. Cheers, Daniel