summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/MBlaze/MBlazeRelocations.h
diff options
context:
space:
mode:
authorWesley Peck <peckw@wesleypeck.com>2010-10-21 03:09:55 +0000
committerWesley Peck <peckw@wesleypeck.com>2010-10-21 03:09:55 +0000
commitf608ac4db9c4ef058efb5d6139aee44cb8e6ea4e (patch)
tree617c85aaf232af897cc221088690dd45fabf7a05 /llvm/lib/Target/MBlaze/MBlazeRelocations.h
parent612703a831e0446828957b4a41432c4e8a36889d (diff)
downloadbcm5719-llvm-f608ac4db9c4ef058efb5d6139aee44cb8e6ea4e.tar.gz
bcm5719-llvm-f608ac4db9c4ef058efb5d6139aee44cb8e6ea4e.zip
Major update of the MicroBlaze backend. The new features are:
1. A delay slot filler that searches for valid instructions to fill the delay slot with. Previously NOPs would always be inserted into delay slots. 2. Support for MC based instruction printer added. 3. Support for MC based machine code generation and ELF file generation. ELF file generation does not yet completely work as much of the ELF support infrastructure is still x86/x86-64 specific. 4. General clean up of the MBlaze backend code. Much of the tablegen code has been cleanup and simplified. Bug Fixes: 1. Removed duplicate periods from subtarget feature descriptions. 2. Many of the instructions had bad machine code information in the tablegen files. Much of this has been fixed. llvm-svn: 116986
Diffstat (limited to 'llvm/lib/Target/MBlaze/MBlazeRelocations.h')
-rw-r--r--llvm/lib/Target/MBlaze/MBlazeRelocations.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/llvm/lib/Target/MBlaze/MBlazeRelocations.h b/llvm/lib/Target/MBlaze/MBlazeRelocations.h
new file mode 100644
index 00000000000..c298eda2195
--- /dev/null
+++ b/llvm/lib/Target/MBlaze/MBlazeRelocations.h
@@ -0,0 +1,47 @@
+//===- MBlazeRelocations.h - MBlaze Code Relocations ------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the MBlaze target-specific relocation types.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MBLAZERELOCATIONS_H
+#define MBLAZERELOCATIONS_H
+
+#include "llvm/CodeGen/MachineRelocation.h"
+
+namespace llvm {
+ namespace MBlaze {
+ enum RelocationType {
+ /// reloc_pcrel_word - PC relative relocation, add the relocated value to
+ /// the value already in memory, after we adjust it for where the PC is.
+ reloc_pcrel_word = 0,
+
+ /// reloc_picrel_word - PIC base relative relocation, add the relocated
+ /// value to the value already in memory, after we adjust it for where the
+ /// PIC base is.
+ reloc_picrel_word = 1,
+
+ /// reloc_absolute_word - absolute relocation, just add the relocated
+ /// value to the value already in memory.
+ reloc_absolute_word = 2,
+
+ /// reloc_absolute_word_sext - absolute relocation, just add the relocated
+ /// value to the value already in memory. In object files, it represents a
+ /// value which must be sign-extended when resolving the relocation.
+ reloc_absolute_word_sext = 3,
+
+ /// reloc_absolute_dword - absolute relocation, just add the relocated
+ /// value to the value already in memory.
+ reloc_absolute_dword = 4
+ };
+ }
+}
+
+#endif
OpenPOWER on IntegriCloud