diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-03-11 01:34:21 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-03-11 01:34:21 +0000 |
commit | 23ac7c78e4f009e0baa6d42f4fd0143769fbed4a (patch) | |
tree | 311441f445e3012612acf0d908978eff2b9e0a06 /include | |
parent | 6c27f5e5743481c6a519c60135cf85ac238c150a (diff) | |
download | external_llvm-23ac7c78e4f009e0baa6d42f4fd0143769fbed4a.zip external_llvm-23ac7c78e4f009e0baa6d42f4fd0143769fbed4a.tar.gz external_llvm-23ac7c78e4f009e0baa6d42f4fd0143769fbed4a.tar.bz2 |
MC: Sketch some TargetAsmBackend hooks we are going to need.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98221 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Target/TargetAsmBackend.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetAsmBackend.h b/include/llvm/Target/TargetAsmBackend.h index dfdabdb..35e768c 100644 --- a/include/llvm/Target/TargetAsmBackend.h +++ b/include/llvm/Target/TargetAsmBackend.h @@ -28,6 +28,28 @@ public: const Target &getTarget() const { return TheTarget; } + /// hasAbsolutizedSet - Check whether this target "absolutizes" + /// assignments. That is, given code like: + /// a: + /// ... + /// b: + /// tmp = a - b + /// .long tmp + /// will the value of 'tmp' be a relocatable expression, or the assembly time + /// value of L0 - L1. This distinction is only relevant for platforms that + /// support scattered symbols, since in the absence of scattered symbols (a - + /// b) cannot change after assembly. + virtual bool hasAbsolutizedSet() const { return false; } + + /// hasScatteredSymbols - Check whether this target supports scattered + /// symbols. If so, the assembler should assume that atoms can be scattered by + /// the linker. In particular, this means that the offsets between symbols + /// which are in distinct atoms is not known at link time, and the assembler + /// must generate fixups and relocations appropriately. + /// + /// Note that the assembler currently does not reason about atoms, instead it + /// assumes all temporary symbols reside in the "current atom". + virtual bool hasScatteredSymbols() const { return false; } }; } // End llvm namespace |