[llvm-commits] CVS: llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp SparcV9TargetMachine.cpp
Misha Brukman
brukman at cs.uiuc.edu
Wed Sep 29 16:01:27 PDT 2004
Changes in directory llvm/lib/Target/SparcV9:
SparcV9CodeEmitter.cpp updated: 1.71 -> 1.72
SparcV9TargetMachine.cpp updated: 1.122 -> 1.123
---
Log message:
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.
---
Diffs of the changes: (+6 -6)
Index: llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp
diff -u llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:1.71 llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:1.72
--- llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:1.71 Wed Sep 1 17:55:36 2004
+++ llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp Wed Sep 29 18:01:17 2004
@@ -211,7 +211,7 @@
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::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 @@
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 @@
// 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 @@
// 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: llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp
diff -u llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp:1.122 llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp:1.123
--- llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp:1.122 Wed Sep 1 17:55:36 2004
+++ llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp Wed Sep 29 18:01:17 2004
@@ -65,7 +65,7 @@
}
unsigned SparcV9TargetMachine::getJITMatchQuality() {
-#if defined(sparc) || defined(__sparc__) || defined(__sparcv9)
+#if defined(__sparcv9)
return 10;
#else
return 0;
More information about the llvm-commits
mailing list