Mercurial > projects > ldc
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 } |