Issue was found during compilation of V8 code inside android project with clang-3.9.
The folowing messages was shown:
/tmp/preprocessor-v8-msa-repro-f130c4.s: Assembler messages: /tmp/preprocessor-v8-msa-repro-f130c4.s:33112: Error: operand 2 out of range `st.d $w0,23($16)' clang-3.9: error: assembler command failed with exit code 1 (use -v to see invocation)
This issue is also manifesting on the latest upstream clang. More information here.
This patch implements checks for unaligned and out of range offsets for ST.* and LD.* Mips MSA instructions.