From 1155d31ef6d3b7926bff0aaf63a990843cad3fd2 Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Wed, 29 Sep 2004 23:01:17 +0000 Subject: [PATCH] Change the #ifdefs to allow compilation with a V8 compiler, but the JIT still won't work if not compiled in V9 mode, currently by GCC only, because Sun's system compiler does not tell us if it's a V8 or V9 system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16602 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/SparcV9/SparcV9CodeEmitter.cpp | 10 +++++----- lib/Target/SparcV9/SparcV9TargetMachine.cpp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/Target/SparcV9/SparcV9CodeEmitter.cpp b/lib/Target/SparcV9/SparcV9CodeEmitter.cpp index b46d07eb7b0..fa7ef249a9f 100644 --- a/lib/Target/SparcV9/SparcV9CodeEmitter.cpp +++ b/lib/Target/SparcV9/SparcV9CodeEmitter.cpp @@ -211,7 +211,7 @@ void JITResolver::insertFarJumpAtAddr(int64_t Target, uint64_t Addr) { void JITResolver::SaveRegisters(uint64_t DoubleFP[], uint64_t CC[], uint64_t Globals[]) { -#if defined(sparc) || defined(__sparc__) || defined(__sparcv9) +#if defined(__sparcv9) __asm__ __volatile__ (// Save condition-code registers "stx %%fsr, %0;\n\t" @@ -267,7 +267,7 @@ void JITResolver::SaveRegisters(uint64_t DoubleFP[], uint64_t CC[], void JITResolver::RestoreRegisters(uint64_t DoubleFP[], uint64_t CC[], uint64_t Globals[]) { -#if defined(sparc) || defined(__sparc__) || defined(__sparcv9) +#if defined(__sparcv9) __asm__ __volatile__ (// Restore condition-code registers "ldx %0, %%fsr;\n\t" @@ -333,7 +333,7 @@ void JITResolver::CompilationCallback() { int64_t Target = (int64_t)TheJITResolver->resolveFunctionReference(CameFrom); DEBUG(std::cerr << "In callback! Addr=0x" << std::hex << CameFrom << "\n"); register int64_t returnAddr = 0; -#if defined(sparc) || defined(__sparc__) || defined(__sparcv9) +#if defined(__sparcv9) __asm__ __volatile__ ("add %%i7, %%g0, %0" : "=r" (returnAddr) : ); DEBUG(std::cerr << "Read i7 (return addr) = " << std::hex << returnAddr << ", value: " @@ -389,7 +389,7 @@ void JITResolver::CompilationCallback() { // Flush the I-Cache: FLUSH clears out a doubleword at a given address // Self-modifying code MUST clear out the I-Cache to be portable -#if defined(sparc) || defined(__sparc__) || defined(__sparcv9) +#if defined(__sparcv9) for (int i = -Offset, e = 32-((int64_t)Offset); i < e; i += 8) __asm__ __volatile__ ("flush %%i7 + %0" : : "r" (i)); #endif @@ -397,7 +397,7 @@ void JITResolver::CompilationCallback() { // Change the return address to re-execute the restore, then the jump. DEBUG(std::cerr << "Callback returning to: 0x" << std::hex << (CameFrom-Offset-12) << "\n"); -#if defined(sparc) || defined(__sparc__) || defined(__sparcv9) +#if defined(__sparcv9) __asm__ __volatile__ ("sub %%i7, %0, %%i7" : : "r" (Offset+12)); #endif diff --git a/lib/Target/SparcV9/SparcV9TargetMachine.cpp b/lib/Target/SparcV9/SparcV9TargetMachine.cpp index 1019c5619f5..0851ef4bc99 100644 --- a/lib/Target/SparcV9/SparcV9TargetMachine.cpp +++ b/lib/Target/SparcV9/SparcV9TargetMachine.cpp @@ -65,7 +65,7 @@ namespace { } unsigned SparcV9TargetMachine::getJITMatchQuality() { -#if defined(sparc) || defined(__sparc__) || defined(__sparcv9) +#if defined(__sparcv9) return 10; #else return 0;