[llvm-commits] CVS: llvm/lib/Target/CBackend/Writer.cpp

Chris Lattner lattner at cs.uiuc.edu
Fri Feb 13 20:56:01 PST 2004


Changes in directory llvm/lib/Target/CBackend:

Writer.cpp updated: 1.159 -> 1.160

---
Log message:

Add support for the returnaddress and frameaddress intrinsics



---
Diffs of the changes:  (+12 -0)

Index: llvm/lib/Target/CBackend/Writer.cpp
diff -u llvm/lib/Target/CBackend/Writer.cpp:1.159 llvm/lib/Target/CBackend/Writer.cpp:1.160
--- llvm/lib/Target/CBackend/Writer.cpp:1.159	Fri Feb 13 18:31:10 2004
+++ llvm/lib/Target/CBackend/Writer.cpp	Fri Feb 13 20:55:36 2004
@@ -1157,6 +1157,8 @@
             case Intrinsic::va_start:
             case Intrinsic::va_copy:
             case Intrinsic::va_end:
+            case Intrinsic::returnaddress:
+            case Intrinsic::frameaddress:
               // We directly implement these intrinsics
               break;
             default:
@@ -1202,6 +1204,16 @@
         Out << "0;";
         Out << "va_copy(*(va_list*)&" << Mang->getValueName(&I) << ", ";
         Out << "*(va_list*)&";
+        writeOperand(I.getOperand(1));
+        Out << ")";
+        return;
+      case Intrinsic::returnaddress:
+        Out << "__builtin_return_address(";
+        writeOperand(I.getOperand(1));
+        Out << ")";
+        return;
+      case Intrinsic::frameaddress:
+        Out << "__builtin_frame_address(";
         writeOperand(I.getOperand(1));
         Out << ")";
         return;





More information about the llvm-commits mailing list