Why try to circumvent W^X page protection? Some sort of self-modifying program without extra pointer indirections?

Bad legacy apps like Xilinx ISE