[PATCH] [Mips64] Add support for MCJIT for MIPS64r2 and MIPS64r6

Daniel Sanders daniel.sanders at imgtec.com
Wed May 13 02:00:13 PDT 2015


This supersedes http://reviews.llvm.org/D5913 doesn't it? If so, could you mark that review abandoned.

I believe testcases similar to test/ExecutionEngine/RuntimeDyld/{AArch64,ARM,X86}/* will be required so that we can test the application of relocations without needing to execute JIT'ed code.

As with http://reviews.llvm.org/D5913, there are a couple big issues with this patch. The first is that checking for Triple::mips64/Triple::mips64el is insufficient since this (currently, see below) includes both N32 and N64 and these ABI's need to be treated differently. For example, the 3-in-1 reloc encoding is not used on N32. I don't mind if N32 support arrives in a later patch but this patch needs to identify N32 and N64 and error on N32 while handling N64 rather than quietly doing the wrong thing. The second issue is that using Triple::mips/Triple::mipsel vs Triple::mips64/Triple::mips64el to distinguish 32-bit and 64-bit ABI's is incorrect. It's valid to execute O32 binaries with a 64-bit triple, and N32/N64 binaries with a 32-bit triple. Admittedly, LLVM for Mips targets already has a number of issues in this area but I'd like to avoid adding more.


REPOSITORY
  rL LLVM

================
Comment at: unittests/ExecutionEngine/MCJIT/MCJITTestBase.h:295
@@ -294,3 +294,3 @@
     // The architectures below are known to be compatible with MCJIT as they
     // are copied from test/ExecutionEngine/MCJIT/lit.local.cfg and should be
     // kept in sync.
----------------
I think the answer is 'no' but: Does test/ExecutionEngine/MCJIT/lit.local.cfg need updating?

http://reviews.llvm.org/D9667

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list