From ac67006bede8c2a7bad856d2709501e791f451fc Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Sat, 28 Sep 2002 17:00:15 +0000 Subject: [PATCH] Return address register should be marked as "result" for the JMPL instruction since it is defined by the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3966 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/SparcV9/SparcV9Instr.def | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/Target/SparcV9/SparcV9Instr.def b/lib/Target/SparcV9/SparcV9Instr.def index 50afe2205d9..486a5ccbc86 100644 --- a/lib/Target/SparcV9/SparcV9Instr.def +++ b/lib/Target/SparcV9/SparcV9Instr.def @@ -426,11 +426,12 @@ 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(JMPLCALL, "jmpl", 3, 2, B12, true , 1, 2, SPARC_CTI, M_BRANCH_FLAG | M_CALL_FLAG ) +I(JMPLRET, "jmpl", 3, 2, 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) // SAVE and restore instructions