Change the #ifdefs to allow compilation with a V8 compiler, but the JIT still
authorMisha Brukman <brukman+llvm@gmail.com>
Wed, 29 Sep 2004 23:01:17 +0000 (23:01 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Wed, 29 Sep 2004 23:01:17 +0000 (23:01 +0000)
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
lib/Target/SparcV9/SparcV9TargetMachine.cpp

index b46d07eb7b08e072f006fe15dba150284eff157c..fa7ef249a9f8a221e3a8ffdeaa9a4a9a5e04f0c9 100644 (file)
@@ -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
 
index 1019c5619f5e9a5f31806895245b6ba105f39b10..0851ef4bc995ba1be8bd651ffe123273f01c3100 100644 (file)
@@ -65,7 +65,7 @@ namespace {
 }
 
 unsigned SparcV9TargetMachine::getJITMatchQuality() {
-#if defined(sparc) || defined(__sparc__) || defined(__sparcv9)
+#if defined(__sparcv9)
   return 10;
 #else
   return 0;