diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-04-14 01:33:32 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2013-04-14 01:33:32 +0000 |
| commit | 1fb08a8b0825aa00a27c403d91f020be40b0ba9b (patch) | |
| tree | dda6503b90750e3b6565225c603cc80669c23c10 /llvm/lib/Target/Sparc/MCTargetDesc | |
| parent | f3b02b17af0794a0a354cbd48c91abd4f3463d1e (diff) | |
| download | bcm5719-llvm-1fb08a8b0825aa00a27c403d91f020be40b0ba9b.tar.gz bcm5719-llvm-1fb08a8b0825aa00a27c403d91f020be40b0ba9b.zip | |
Add target flags to SPARC address operands.
SDNodes and MachineOperands get target flags representing the %hi() and
%lo() assembly annotations that eventually become relocations.
Also define flags to be used by the 64-bit code models.
llvm-svn: 179468
Diffstat (limited to 'llvm/lib/Target/Sparc/MCTargetDesc')
| -rw-r--r-- | llvm/lib/Target/Sparc/MCTargetDesc/SparcBaseInfo.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcBaseInfo.h b/llvm/lib/Target/Sparc/MCTargetDesc/SparcBaseInfo.h new file mode 100644 index 00000000000..aac0e8d74a8 --- /dev/null +++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcBaseInfo.h @@ -0,0 +1,62 @@ +//===-- SparcBaseInfo.h - Top level definitions for Sparc ---- --*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file contains small standalone helper functions and enum definitions +// for the Sparc target useful for the compiler back-end and the MC libraries. +// As such, it deliberately does not include references to LLVM core code gen +// types, passes, etc.. +// +//===----------------------------------------------------------------------===// + +#ifndef SPARCBASEINFO_H +#define SPARCBASEINFO_H + +namespace llvm { + +/// SPII - This namespace holds target specific flags for instruction info. +namespace SPII { + +/// Target Operand Flags. Sparc specific TargetFlags for MachineOperands and +/// SDNodes. +enum TOF { + MO_NO_FLAG, + + // Extract the low 10 bits of an address. + // Assembler: %lo(addr) + MO_LO, + + // Extract bits 31-10 of an address. Only for sethi. + // Assembler: %hi(addr) or %lm(addr) + MO_HI, + + // Extract bits 43-22 of an adress. Only for sethi. + // Assembler: %h44(addr) + MO_H44, + + // Extract bits 21-12 of an address. + // Assembler: %m44(addr) + MO_M44, + + // Extract bits 11-0 of an address. + // Assembler: %l44(addr) + MO_L44, + + // Extract bits 63-42 of an address. Only for sethi. + // Assembler: %hh(addr) + MO_HH, + + // Extract bits 41-32 of an address. + // Assembler: %hm(addr) + MO_HM +}; + +} // end namespace SPII +} // end namespace llvm + +#endif |

