Significant improvement: GEP used by a load or store no longer generates
[oota-llvm.git] / lib / Target / SparcV9 / SparcV9Instr.def
index 50afe2205d9ffcf72b4fbf3e2e595a9863c521e2..92f40dbbb995b4186757936974042a9122eb5a24 100644 (file)
@@ -426,12 +426,13 @@ I(STD,    "std",  3, -1, B12, true , 0, 0,  SPARC_ST,  M_FLOAT_FLAG | M_STORE_FLA
 I(STFSR,  "st",         3, -1, B12, true , 0, 0,  SPARC_ST,  M_FLOAT_FLAG | M_STORE_FLAG)
 I(STXFSR, "stx",       3, -1, B12, true , 0, 0,  SPARC_ST,  M_FLOAT_FLAG | M_STORE_FLAG)
 
-// Call, Return and "Jump and link".
+// Call, Return and "Jump and link".  Operand (2) for JMPL is marked as
+// a "result" because JMPL stores the return address for the call in it.
 // Latency includes the delay slot.
-I(CALL  , "call",      1, -1, B29, true , 1, 2,  SPARC_CTI,  M_BRANCH_FLAG | M_CALL_FLAG)
-I(JMPLCALL, "jmpl",    3, -1, B12, true , 1, 2,  SPARC_CTI,  M_BRANCH_FLAG | M_CALL_FLAG )
-I(JMPLRET, "jmpl",     3, -1, B12, true , 1, 2,  SPARC_CTI,  M_BRANCH_FLAG | M_RET_FLAG)
-I(RETURN, "return",    2, -1,   0, false, 1, 2,  SPARC_CTI,  M_BRANCH_FLAG | M_RET_FLAG)
+I(CALL  , "call",      1, -1, B29, true , 1, 2,  SPARC_CTI,  M_CALL_FLAG)
+I(JMPLCALL, "jmpl",    3,  2, B12, true , 1, 2,  SPARC_CTI,  M_CALL_FLAG)
+I(JMPLRET, "jmpl",     3,  2, B12, true , 1, 2,  SPARC_CTI,  M_RET_FLAG)
+I(RETURN, "return",    2, -1,   0, false, 1, 2,  SPARC_CTI,  M_RET_FLAG)
 
 // SAVE and restore instructions
 I(SAVE  , "save",      3,  2, B12, true , 0, 1,  SPARC_SINGLE, M_INT_FLAG | M_ARITH_FLAG)