One more patch towards JIT support for Mips.
- Add TSFlags for the instruction formats. The idea here is to use
as much encoding as possible from getBinaryCodeForInstr, and having
TSFLags formats for that would make it easier to encode most part
of the instructions (since Mips encodings are pretty straightforward)
- Improve the mips mechanism for compilation callback
- Add Mips specific code for invalidating the instruction cache
- Next patch will address wrong tablegen encoding
Commit msg added by my own but the patch is from Sasa Stankovic.
llvm-svn: 139688
diff --git a/llvm/lib/Target/Mips/MipsRelocations.h b/llvm/lib/Target/Mips/MipsRelocations.h
index 0df21be..66d1bfd 100644
--- a/llvm/lib/Target/Mips/MipsRelocations.h
+++ b/llvm/lib/Target/Mips/MipsRelocations.h
@@ -20,13 +20,22 @@
namespace llvm {
namespace Mips{
enum RelocationType {
- reloc_mips_pcrel = 1,
- reloc_mips_hi = 3,
- reloc_mips_lo = 4,
- reloc_mips_j_jal = 5
+ // reloc_mips_branch - pc relative relocation for branches. The lower 18
+ // bits of the difference between the branch target and the branch
+ // instruction, shifted right by 2.
+ reloc_mips_branch = 1,
+
+ // reloc_mips_hi - upper 16 bits of the address (modified by +1 if the
+ // lower 16 bits of the address is negative).
+ reloc_mips_hi = 2,
+
+ // reloc_mips_lo - lower 16 bits of the address.
+ reloc_mips_lo = 3,
+
+ // reloc_mips_26 - lower 28 bits of the address, shifted right by 2.
+ reloc_mips_26 = 4
};
}
}
#endif /* MIPSRELOCATIONS_H_ */
-