Frits van Bommel
f79e40a491
Use llvm.memset instead of _d_array_init_i1 and _d_array_init_i8.
...
This exposes what's happening to LLVM, and memset is probably faster than the
runtime functions we were using anyway.
2009-06-07 13:57:59 +02:00
Frits van Bommel
46cd6504fa
Adjust some more code that was depending on the function and delegate calling
...
conventions being equal.
There's also an instance in `tango.text.convert.Layout` that should be adjusted:
{{{
Index: tango/text/convert/Layout.d
===================================================================
--- tango/text/convert/Layout.d (revision 4578)
+++ tango/text/convert/Layout.d (working copy)
-660,8 +660,12 @@
case TypeCode.STRUCT:
auto s = cast(TypeInfo_Struct) type;
- if (s.xtoString)
- return Utf.fromString8 (s.xtoString(p), result);
+ if (s.xtoString) {
+ char[] delegate() toString;
+ toString.ptr = p;
+ toString.funcptr = cast(char[] function()) s.xtoString;
+ return Utf.fromString8 (toString(), result);
+ }
goto default;
case TypeCode.INTERFACE:
}}}
2009-05-31 15:27:01 +02:00
Frits van Bommel
a517adb426
Adjust runtime for recent ABI change on x86-64, since member functions are no
...
longer equivalent to regular functions with `this` as their first argument.
(They weren't anyway, but it happened to work as long as there was no `sret`
parameter)
2009-05-31 14:27:01 +02:00
Kelly Wilson
cab7aeb843
just a simple change to cmake for mingw
2009-05-27 12:41:41 -06:00
Frits van Bommel
e7b3f5415f
Make "aa[key]" use the same runtime call as "key in aa". The runtime calls
...
these were using were different, but with equivalent definitions.
With `ldc -O3`, the following functions now all compile to the exact same code:
{{{
int[int] y;
void foo(int x) {
if (x in y) {
auto z = x in y;
sink(*z);
}
}
void bar(int x) {
if (x in y) {
sink(y[x]);
}
}
void baz(int x) {
if (auto p = x in y) {
sink(*p);
}
}
}}}
2009-05-25 12:50:40 +02:00
Tomas Lindquist Olsen
e8780d50e8
Merged DMD 1.045 !!!
2009-05-16 22:21:31 +02:00
Frits van Bommel
541f3723cd
Intrinsics shouldn't see struct padding, so use a special TargetABI for them
...
that removes it.
This unbreaks the `llvm_*_with_overflow` intrinsics.
2009-05-16 13:06:49 +02:00
Tomas Lindquist Olsen
3fb2cb0322
Okay... Fix the assertion as well, since 20 really is enough yet it wanted MORE... Despite the message.
2009-05-10 17:31:56 +02:00
Tomas Lindquist Olsen
0ab77de246
Increased a buffer size in TypeInfo_StaticArray from 10 to 20 to avoid assertion failures! Thanks LeoD.
2009-05-10 17:25:47 +02:00
Tomas Lindquist Olsen
dfea022a86
Changed array slice copying to call a runtime function when assertions or array bound checks are enabled instead of just doing a memcpy. This makes sure an exception is thrown if the copy is invalid (ie. different lengths or overlap). Fixes ticket #283 . Rebuilding the runtime is necessary.
2009-05-10 02:23:05 +02:00
Benjamin Kramer
0cc01f160f
Add runtime support for darwin x86_64
2009-05-02 16:39:26 +02:00
Tomas Lindquist Olsen
ea2279b11a
Updated the interal runtime's ClassInfo type to match the one in object.di .
...
Runtime now compiles and runminitest is back to normal except for typeinfo10.d .
2009-04-17 02:54:16 +02:00
Christian Kamm
18baa5c40b
Remove unnecessary GCC_EXE CMake flag. Closes #208 , thanks impulze.
2009-04-12 13:50:18 +02:00
Christian Kamm
253e743d05
Apply fawzi's stacktracing update from #254 .
2009-04-05 15:02:44 +02:00
Christian Kamm
1bf5934519
Fix path to llvmasm.di in runtime CMakeList
2009-03-28 10:50:44 +01:00
Tomas Lindquist Olsen
14b8aff809
Fixed issue with runtime supplied typeinfo generating multiple symbols.
...
Added new ldc.llvmasm import in runtime cmake file.
2009-03-28 09:45:33 +01:00
Tomas Lindquist Olsen
e61562033d
Added support for tuple return with __asmtuple!(int,int) etc.
2009-03-28 08:25:58 +01:00
Tomas Lindquist Olsen
1809214995
Added support for single D type register return from __asm.
2009-03-28 07:24:53 +01:00
Tomas Lindquist Olsen
99b863e2b1
Added initial support for raw LLVM inline asm.
2009-03-28 06:32:06 +01:00
Tomas Lindquist Olsen
36f6ebc77f
- Versioned Expresssion::toElem with #if IN_DMD/IN_LLVM.
...
- Eliminated the DLRValue DValue.
- Implemented proactive handling of l-value CastExpS.
- Minor tweak in runtime memory.d .
2009-03-28 05:00:43 +01:00
Christian Kamm
ef62f7965c
Bring FrameInfo definition up to date with recent Tango developments. Thanks fawzi!
2009-03-22 14:51:03 +01:00
Christian Kamm
490549e65c
Add dmd-style configuration file for rebuild usage. See #236 and thanks to ccuter for the patch!
2009-03-21 09:47:48 +01:00
Frits van Bommel
d1911d40d6
Fix some issues with fawzi's patch.
...
- It now actually compiles:
- import stdc.stdio for string formatting functions)
- remove extra '{'
- Use snprintf() instead of sprintf().
- Use return value from snprintf instead of strlen().
- Don't print the filename in Exception.writeOut() if it has zero length and
the line number is 0
(It would previously only skip these if the filename was null, but not if it
was a different empty string)
- Ignore empty filename + line number 0 in FrameInfo.writeOut() as well.
2009-03-18 15:33:19 +01:00
Frits van Bommel
e847f60fb1
Apply fawzi's patch from #235 .
...
This has some issues which are addressed in my next commit.
2009-03-18 15:20:07 +01:00
Christian Kamm
bb0eab009d
Fix imports copying for out-of-source build.
2009-03-15 23:04:58 +01:00
Frits van Bommel
5d9bd5d139
Intrinsics overhaul:
...
- More error checking for pragma(intrinsic)
- Properly handle templating for real (use actual nr of bits, not .sizeof * 8)
- Template all .i* and .f* intrinsics
- The old names are deprecated aliases now
I also added a preliminary patch to make tango.math.Math use the new versions.
(I think it looks a lot nicer now)
2009-03-10 04:45:32 +01:00
Frits van Bommel
9bbab8a342
Change the way imports are copied to the (Tango) runtime dir.
2009-03-09 21:38:31 +01:00
Frits van Bommel
545d85a057
Reformat intrinsics.di a bit.
2009-03-09 21:38:24 +01:00
Frits van Bommel
7ccbe58e08
Factor out some common code between X86 and X86_64, and supply *_real versions
...
of all floating point intrinsics that exist whether reals are 80-bit or 64-bit.
2009-03-09 21:38:06 +01:00
Frits van Bommel
dc20834473
Update runtime CMakeList.txt for new command line syntax regarding PIC
2009-03-08 09:58:26 +01:00
Tomas Lindquist Olsen
f84a2fb84a
Updated lifetime.d with a 32bit faster codepath for overflow checks.
2009-03-03 19:47:39 +01:00
Tomas Lindquist Olsen
d845b11dbd
Removed inline asm for overflow checking in runtime that wasn't working.
2009-03-03 19:37:47 +01:00
Frits van Bommel
4f51adc810
Implement support for intrinsics returning struct types
...
(such as llvm.*.with.overflow)
2009-02-26 22:47:06 +01:00
Frits van Bommel
9259089c2b
Removing ldc.conf. (IMPORTANT: run 'cmake .' after pull)
...
Added it to .hgignore.
This gets rid of spurious differences caused by CMake regenerating it differently.
Just run 'cmake .' to get it back in your local checkout.
2009-02-19 13:50:05 +01:00
Frits van Bommel
ad7ad71e11
Fix out-ouf-source build for runtime as well.
...
To build out-of-source, follow these steps:
# [[Insert LLVM build instructions here]]
mkdir my_build_dir
cd my_build_dir
svn co http://svn.dsource.org/projects/tango/trunk tango
ccmake <PATH_TO_SOURCE>
# (Regular ccmake stuff, press 'c' a few times followed by 'g')
make
make runtime
# add `PWD`/bin to PATH
closes #213
2009-02-19 11:01:34 +01:00
Christian Kamm
07649678db
_d_delarray also had one of the array consistency asserts mentioned in #184
...
and dmd2632.
2009-01-30 07:51:50 +01:00
Christian Kamm
d958535969
Remove asserts on array consistancy in arraysetlength. Fixes #184 , thanks Deewiant.
2009-01-29 17:45:12 +01:00
Christian Kamm
921a326865
Applied doob's patch to port GDC's Dyld data segment tracking for Mac.
2009-01-24 00:33:06 +01:00
Christian Kamm
783ec2799d
Further Solaris data segment detection fixes. Thanks BlueZeniX!
2009-01-23 10:13:27 +01:00
Christian Kamm
ab9b9cc2e9
Solaris compatibility and proc map parsing #183 , thanks BlueZeniX!
2009-01-22 18:53:32 +01:00
Christian Kamm
f4f5c58a44
Add wilsonk's static data segment finding code for x86-64 from #181 . Thanks!
2009-01-22 18:23:30 +01:00
Christian Kamm
ba9eb478dd
Add headers for HP's libunwind, currently unused though.
2009-01-22 17:57:38 +01:00
Christian Kamm
bbf21853b4
Fix x86-64 exception handling #180 . Thanks pcwalton!
2009-01-22 17:50:38 +01:00
Christian Kamm
8ac2aecf42
Apply pcwalton's eh runtime portability fix.
2009-01-19 19:42:00 +01:00
Christian Kamm
33fe431ffe
Don't use /proc/self/map for finding the static data segment on x86-64 for
...
now. Probably breaks shared libraries. Parsing the file needs to be rewritten!
2009-01-19 19:34:51 +01:00
Christian Kamm
306015f7fb
Get rid of ex-Tango patch. (merged into Tango)
...
Adjust README and CMakeLists.
2009-01-06 15:54:48 +01:00
Christian Kamm
e7f750aee1
Apply BlueZeniX's patch for OpenSolaris compatibility. Fixes #158 .
2009-01-04 15:49:28 +01:00
Christian Kamm
68de00f6c4
Backed out changeset 1fcba307fd28
...
Wasn't the right thing to do.
2008-12-27 16:07:23 +01:00
Christian Kamm
20b85089a7
Changed bswap intrinsic definition in compiler specific runtime to actually
...
implement a linkable bswap.
2008-12-27 15:54:24 +01:00
elrood
512437d3e3
temporary fix for runtime buildscript to copy ldc's imports to tango
2008-12-18 19:21:44 +01:00