comparison tango/lib/compiler/llvmdc/memory.d @ 270:d9d5d59873d8 trunk

[svn r291] Fixed a bunch of the old Phobos tests to work with Tango. Branch statements now emit a new block after it. Fixed the _adSort runtime function had a bad signature. Added a missing dot prefix on compiler generated string tables for string switch. Fixed, PTRSIZE seems like it was wrong on 64bit, now it definitely gets set properly.
author lindquist
date Mon, 16 Jun 2008 16:01:19 +0200
parents 0806379a5eca
children 94394be61589
comparison
equal deleted inserted replaced
269:967178e31a13 270:d9d5d59873d8
45 { 45 {
46 pragma(LLVM_internal, "intrinsic", "llvm.frameaddress") 46 pragma(LLVM_internal, "intrinsic", "llvm.frameaddress")
47 { 47 {
48 void* llvm_frameaddress(uint level=0); 48 void* llvm_frameaddress(uint level=0);
49 } 49 }
50 extern(C) int printf(char*, ...);
51 } 50 }
52 } 51 }
53 52
54 53
55 /** 54 /**
96 /** 95 /**
97 * 96 *
98 */ 97 */
99 extern (C) void* rt_stackTop() 98 extern (C) void* rt_stackTop()
100 { 99 {
101 version( D_InlineAsm_X86 ) 100 version(LLVMDC)
101 {
102 return llvm_frameaddress();
103 }
104 else version( D_InlineAsm_X86 )
102 { 105 {
103 asm 106 asm
104 { 107 {
105 naked; 108 naked;
106 mov EAX, ESP; 109 mov EAX, ESP;
107 ret; 110 ret;
108 } 111 }
109 }
110 else version(LLVMDC)
111 {
112 return llvm_frameaddress();
113 } 112 }
114 else 113 else
115 { 114 {
116 static assert( false, "Architecture not supported." ); 115 static assert( false, "Architecture not supported." );
117 } 116 }