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 + {