projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for implicit TLS model used with MS VC runtime.
[oota-llvm.git]
/
lib
/
Target
/
X86
/
MCTargetDesc
/
X86BaseInfo.h
diff --git
a/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
b/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
index c5092beb0d73c029942cbb9677f9573c76dfbdca..c41e9e7aef605b0750a33875263a05e591366d88 100644
(file)
--- a/
lib/Target/X86/MCTargetDesc/X86BaseInfo.h
+++ b/
lib/Target/X86/MCTargetDesc/X86BaseInfo.h
@@
-19,7
+19,7
@@
#include "X86MCTargetDesc.h"
#include "llvm/Support/DataTypes.h"
#include "X86MCTargetDesc.h"
#include "llvm/Support/DataTypes.h"
-#include
<cassert>
+#include
"llvm/Support/ErrorHandling.h"
namespace llvm {
namespace llvm {
@@
-164,7
+164,13
@@
namespace X86II {
/// is some TLS offset from the picbase.
///
/// This is the 32-bit TLS offset for Darwin TLS in PIC mode.
/// is some TLS offset from the picbase.
///
/// This is the 32-bit TLS offset for Darwin TLS in PIC mode.
- MO_TLVP_PIC_BASE
+ MO_TLVP_PIC_BASE,
+
+ /// MO_SECREL - On a symbol operand this indicates that the immediate is
+ /// the offset from beginning of section.
+ ///
+ /// This is the TLS offset for the COFF/Windows TLS mechanism.
+ MO_SECREL
};
enum {
};
enum {
@@
-450,7
+456,7
@@
namespace X86II {
/// of the specified instruction.
static inline unsigned getSizeOfImm(uint64_t TSFlags) {
switch (TSFlags & X86II::ImmMask) {
/// of the specified instruction.
static inline unsigned getSizeOfImm(uint64_t TSFlags) {
switch (TSFlags & X86II::ImmMask) {
- default:
assert(0 &&
"Unknown immediate size");
+ default:
llvm_unreachable(
"Unknown immediate size");
case X86II::Imm8:
case X86II::Imm8PCRel: return 1;
case X86II::Imm16:
case X86II::Imm8:
case X86II::Imm8PCRel: return 1;
case X86II::Imm16:
@@
-465,7
+471,7
@@
namespace X86II {
/// TSFlags indicates that it is pc relative.
static inline unsigned isImmPCRel(uint64_t TSFlags) {
switch (TSFlags & X86II::ImmMask) {
/// TSFlags indicates that it is pc relative.
static inline unsigned isImmPCRel(uint64_t TSFlags) {
switch (TSFlags & X86II::ImmMask) {
- default:
assert(0 &&
"Unknown immediate size");
+ default:
llvm_unreachable(
"Unknown immediate size");
case X86II::Imm8PCRel:
case X86II::Imm16PCRel:
case X86II::Imm32PCRel:
case X86II::Imm8PCRel:
case X86II::Imm16PCRel:
case X86II::Imm32PCRel:
@@
-488,8
+494,8
@@
namespace X86II {
///
static inline int getMemoryOperandNo(uint64_t TSFlags, unsigned Opcode) {
switch (TSFlags & X86II::FormMask) {
///
static inline int getMemoryOperandNo(uint64_t TSFlags, unsigned Opcode) {
switch (TSFlags & X86II::FormMask) {
- case X86II::MRMInitReg:
assert(0 &&
"FIXME: Remove this form");
- default:
assert(0 &&
"Unknown FormMask value in getMemoryOperandNo!");
+ case X86II::MRMInitReg:
llvm_unreachable(
"FIXME: Remove this form");
+ default:
llvm_unreachable(
"Unknown FormMask value in getMemoryOperandNo!");
case X86II::Pseudo:
case X86II::RawFrm:
case X86II::AddRegFrm:
case X86II::Pseudo:
case X86II::RawFrm:
case X86II::AddRegFrm: