Mercurial > projects > ldc
view gen/linkage.h @ 1083:c1e9f612e2e2
Fix for dual operand form of fistp, also make reg ST(0) explicit and fix lindquists
previous code that allowed dual operand form of fstp but dissallowed the single
operand form accidently
author | Kelly Wilson <wilsonk cpsc.ucalgary.ca> |
---|---|
date | Tue, 10 Mar 2009 06:23:26 -0600 |
parents | f0b6549055ab |
children | 123812e02bc8 |
line wrap: on
line source
#ifndef LDC_GEN_LINKAGE_H #define LDC_GEN_LINKAGE_H #include "gen/revisions.h" // Make it easier to test new linkage types // Also used to adapt to some changes in LLVM between 2.5 and 2.6 // LLVM r66339 introduces LinkOnceODRLinkage, which is just what we want here. // (It also renamed LinkOnceLinkage, so this #if is needed for LDC to compile // with both 2.5 and trunk) #if LLVM_REV >= 66339 # define TEMPLATE_LINKAGE_TYPE llvm::GlobalValue::LinkOnceODRLinkage # define TYPEINFO_LINKAGE_TYPE llvm::GlobalValue::LinkOnceODRLinkage // The One-Definition-Rule shouldn't matter for debug info, right? # define DEBUGINFO_LINKONCE_LINKAGE_TYPE \ llvm::GlobalValue::LinkOnceAnyLinkage // For 2.5 and any LLVM revision before 66339 we want to use LinkOnceLinkage // It's equivalent to LinkOnceAnyLinkage in trunk except that the inliner had a // hack (removed in r66339) to allow inlining of templated functions even though // LinkOnce doesn't technically allow that. #else # define TEMPLATE_LINKAGE_TYPE llvm::GlobalValue::LinkOnceLinkage # define TYPEINFO_LINKAGE_TYPE llvm::GlobalValue::LinkOnceLinkage # define DEBUGINFO_LINKONCE_LINKAGE_TYPE \ llvm::GlobalValue::LinkOnceLinkage #endif #endif