diff options
| author | Misha Brukman <brukman+llvm@gmail.com> | 2003-07-29 16:57:16 +0000 |
|---|---|---|
| committer | Misha Brukman <brukman+llvm@gmail.com> | 2003-07-29 16:57:16 +0000 |
| commit | e47f0698557453c8c336a06307bd7416ad9b2511 (patch) | |
| tree | 8f83ccad93aab537e490c67637e3a7f5a97777c5 /llvm/lib/ExecutionEngine/JIT | |
| parent | a845a566e1910e1647c10c3b7a95c0c59cf51d78 (diff) | |
| download | bcm5719-llvm-e47f0698557453c8c336a06307bd7416ad9b2511.tar.gz bcm5719-llvm-e47f0698557453c8c336a06307bd7416ad9b2511.zip | |
* Stop hard-coding a value for beginning of emitted code on Sparc since we can
now handle far calls (i.e., beyond the 30-bit limit in call instructions).
* As a side-effect, this allows us to unify and clean up the mmap() call and
code around it.
llvm-svn: 7381
Diffstat (limited to 'llvm/lib/ExecutionEngine/JIT')
| -rw-r--r-- | llvm/lib/ExecutionEngine/JIT/Emitter.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/llvm/lib/ExecutionEngine/JIT/Emitter.cpp b/llvm/lib/ExecutionEngine/JIT/Emitter.cpp index 9e62f13ce73..476ca45a229 100644 --- a/llvm/lib/ExecutionEngine/JIT/Emitter.cpp +++ b/llvm/lib/ExecutionEngine/JIT/Emitter.cpp @@ -76,20 +76,16 @@ static void *getMemory(unsigned NumPages) { /* Linux and *BSD tend to have these flags named differently. */ #if defined(MAP_ANON) && !defined(MAP_ANONYMOUS) # define MAP_ANONYMOUS MAP_ANON -#endif - pa = mmap(0, pageSize*NumPages, PROT_READ|PROT_WRITE|PROT_EXEC, - MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); /* fd = 0 */ +#endif /* defined(MAP_ANON) && !defined(MAP_ANONYMOUS) */ +#define fd 0 #elif defined(sparc) || defined(__sparc__) || defined(__sparcv9) - static unsigned long Counter = 0; - pa = mmap((void*)(0x140000000UL+Counter), pageSize*NumPages, - PROT_READ|PROT_WRITE|PROT_EXEC, - MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0); /* fd = -1 */ - Counter += pageSize*NumPages; +#define fd -1 #else - std::cerr << "This architecture is not supported by the JIT\n"; + std::cerr << "This architecture is not supported by the JIT!\n"; abort(); #endif - + pa = mmap(0, pageSize*NumPages, PROT_READ|PROT_WRITE|PROT_EXEC, + MAP_PRIVATE|MAP_ANONYMOUS, fd, 0); if (pa == MAP_FAILED) { perror("mmap"); abort(); |

