mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
Mark function used by asm block as used, otherwise optimizer may not see the use and may delete the function.
llvm-svn: 53692
This commit is contained in:
parent
f91aa3b22f
commit
a6c5ff690a
@ -23,6 +23,11 @@
|
||||
#define VISIBILITY_HIDDEN
|
||||
#endif
|
||||
|
||||
#if (__GNUC__ >= 4)
|
||||
#define ATTRIBUTE_USED __attribute__((__used__))
|
||||
#else
|
||||
#define ATTRIBUTE_USED
|
||||
#endif
|
||||
|
||||
// C++ doesn't support 'extern template' of template specializations. GCC does,
|
||||
// but requires __extension__ before it. In the header, use this:
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include "llvm/Function.h"
|
||||
#include "llvm/CodeGen/MachineCodeEmitter.h"
|
||||
#include "llvm/Config/alloca.h"
|
||||
#include "llvm/Support/Compiler.h"
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
using namespace llvm;
|
||||
@ -315,7 +316,8 @@ extern "C" {
|
||||
/// function stub when we did not know the real target of a call. This function
|
||||
/// must locate the start of the stub or call site and pass it into the JIT
|
||||
/// compiler function.
|
||||
extern "C" void X86CompilationCallback2(intptr_t *StackPtr, intptr_t RetAddr) {
|
||||
extern "C" void ATTRIBUTE_USED
|
||||
X86CompilationCallback2(intptr_t *StackPtr, intptr_t RetAddr) {
|
||||
intptr_t *RetAddrLoc = &StackPtr[1];
|
||||
assert(*RetAddrLoc == RetAddr &&
|
||||
"Could not find return address on the stack!");
|
||||
|
Loading…
Reference in New Issue
Block a user