Mercurial > projects > ldc
comparison runtime/llvmdc.diff @ 540:9312024a7053
Gah, missed something still. I'll test properly next time ;)
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sun, 24 Aug 2008 17:13:40 +0200 |
parents | 795e972e17ce |
children | 52ab8f3130d9 |
comparison
equal
deleted
inserted
replaced
539:795e972e17ce | 540:9312024a7053 |
---|---|
86 public import std.intrinsic; | 86 public import std.intrinsic; |
87 Index: lib/common/tango/core/Thread.d | 87 Index: lib/common/tango/core/Thread.d |
88 =================================================================== | 88 =================================================================== |
89 --- lib/common/tango/core/Thread.d (revision 3899) | 89 --- lib/common/tango/core/Thread.d (revision 3899) |
90 +++ lib/common/tango/core/Thread.d (working copy) | 90 +++ lib/common/tango/core/Thread.d (working copy) |
91 @@ -244,8 +244,30 @@ | 91 @@ -244,8 +244,29 @@ |
92 } | 92 } |
93 body | 93 body |
94 { | 94 { |
95 - version( D_InlineAsm_X86 ) | 95 - version( D_InlineAsm_X86 ) |
96 + version( LLVMDC) | 96 + version( LLVMDC) |
98 + version(X86) | 98 + version(X86) |
99 + { | 99 + { |
100 + uint eax,ecx,edx,ebx,ebp,esi,edi; | 100 + uint eax,ecx,edx,ebx,ebp,esi,edi; |
101 + asm | 101 + asm |
102 + { | 102 + { |
103 + //pushad ; | |
104 + mov eax[EBP], EAX ; | 103 + mov eax[EBP], EAX ; |
105 + mov ecx[EBP], ECX ; | 104 + mov ecx[EBP], ECX ; |
106 + mov edx[EBP], EDX ; | 105 + mov edx[EBP], EDX ; |
107 + mov ebx[EBP], EBX ; | 106 + mov ebx[EBP], EBX ; |
108 + mov ebp[EBP], EBP ; | 107 + mov ebp[EBP], EBP ; |
118 + else version( D_InlineAsm_X86 ) | 117 + else version( D_InlineAsm_X86 ) |
119 + { | 118 + { |
120 asm | 119 asm |
121 { | 120 { |
122 pushad; | 121 pushad; |
123 @@ -297,8 +319,12 @@ | 122 @@ -297,8 +318,12 @@ |
124 } | 123 } |
125 } | 124 } |
126 | 125 |
127 - version( D_InlineAsm_X86 ) | 126 - version( D_InlineAsm_X86 ) |
128 + version( LLVMDC) | 127 + version( LLVMDC) |
136 popad; | 135 popad; |
137 Index: lib/gc/basic/gcx.d | 136 Index: lib/gc/basic/gcx.d |
138 =================================================================== | 137 =================================================================== |
139 --- lib/gc/basic/gcx.d (revision 3899) | 138 --- lib/gc/basic/gcx.d (revision 3899) |
140 +++ lib/gc/basic/gcx.d (working copy) | 139 +++ lib/gc/basic/gcx.d (working copy) |
141 @@ -2178,6 +2178,29 @@ | 140 @@ -2178,6 +2178,28 @@ |
142 __builtin_unwind_init(); | 141 __builtin_unwind_init(); |
143 sp = & sp; | 142 sp = & sp; |
144 } | 143 } |
145 + else version(LLVMDC) | 144 + else version(LLVMDC) |
146 + { | 145 + { |
147 + version(X86) | 146 + version(X86) |
148 + { | 147 + { |
149 + uint eax,ecx,edx,ebx,ebp,esi,edi; | 148 + uint eax,ecx,edx,ebx,ebp,esi,edi; |
150 + asm | 149 + asm |
151 + { | 150 + { |
152 + pushad ; | |
153 + mov eax[EBP], EAX ; | 151 + mov eax[EBP], EAX ; |
154 + mov ecx[EBP], ECX ; | 152 + mov ecx[EBP], ECX ; |
155 + mov edx[EBP], EDX ; | 153 + mov edx[EBP], EDX ; |
156 + mov ebx[EBP], EBX ; | 154 + mov ebx[EBP], EBX ; |
157 + mov ebp[EBP], EBP ; | 155 + mov ebp[EBP], EBP ; |
166 + } | 164 + } |
167 + } | 165 + } |
168 else | 166 else |
169 { | 167 { |
170 asm | 168 asm |
171 @@ -2191,6 +2214,10 @@ | 169 @@ -2191,6 +2213,10 @@ |
172 { | 170 { |
173 // nothing to do | 171 // nothing to do |
174 } | 172 } |
175 + else version(LLVMDC) | 173 + else version(LLVMDC) |
176 + { | 174 + { |