Commit graph

25 commits

Author SHA1 Message Date
Christian Kamm
ff52c70e1d [svn r333] Fix inline asm bug with multiple branches to the same label. 2008-06-29 22:07:15 +02:00
Tomas Lindquist Olsen
0d160ffc76 [svn r330] Implemented synchronized statements.
Changed the tryfinally handlers to a more generalized EnclosingHandler.
Changed ClassInfoS to be mutable so they can be used as locks.
Added new BB after throw ala return/break etc.
2008-06-28 11:37:53 +02:00
Tomas Lindquist Olsen
03d26e1178 [svn r326] Fixed a bunch of issues with printf's that MinGW32 did not support.
Fixed problems with label collisions when using labels inside inline asm. LabelStatement is now easily reached given its
Identifier, which should be useful elsewhere too.
Enabled inline asm for building the lib/compiler/llvmdc runtime code, fixing branches out of asm makes this possible.
2008-06-27 22:04:35 +02:00
Christian Kamm
b064c794de [svn r325] Removed dead code.
Added license info to code from GDC (David Friedman permitted us to use the files under the Artistic License).
Added asmLabel check to DtoGoto to avoid jumping into inline asm. Doesn't work currently as LabelDsymbol::asmLabel is never set to true.
2008-06-25 23:42:38 +02:00
Christian Kamm
7250b0630c [svn r324] Small indentation fixes.
Added end of line to complex.cpp.
2008-06-25 20:42:30 +02:00
Christian Kamm
7b37093cff [svn r323] Branching out of inline asm works.
Renamed emit_finallyblocks to DtoFinallyBlocks and moved to llvmhelpers.
Added enclosingtryfinally to AsmBlockStatement, so branches out of asm blocks respect finallys.
Refactored some GotoStatement code into DtoGoto.
2008-06-25 20:39:09 +02:00
Christian Kamm
37a74d1975 [svn r322] More asm-to-outside jumping work. Unfinished. 2008-06-24 22:48:33 +02:00
Christian Kamm
57977cd420 [svn r321] Fix bug in argument remapping functions. 2008-06-24 22:27:55 +02:00
Christian Kamm
84dd282b8c [svn r320] Begun work on branches out of asm blocks. Unfinished. 2008-06-24 21:38:23 +02:00
Tomas Lindquist Olsen
306ebfca83 [svn r256] AsmBlockStatement was still being flattened in some cases.
Function parameters passed as arguments to inline asm was not given storage.
2008-06-08 22:07:10 +02:00
Tomas Lindquist Olsen
6ededdd9e3 [svn r253] Removed -inlineasm option. inline asm is now enabled by default unless the new -noasm option is passed.
Tried adding a stack trace print when compiler crashes, not sure it's working though.
Changed data layouts to match that of llvm-gcc.
Fixed casting function pointers.
Added support checks in AsmStatement.
2008-06-08 19:09:24 +02:00
Tomas Lindquist Olsen
28382e3567 [svn r250] Fixed the warning about dropping arguments to _Dmain when optimizing.
Did a few cleanups in inline asm code.
2008-06-08 08:03:19 +02:00
Tomas Lindquist Olsen
68d7827d35 [svn r249] Changed inline asm clobbers to a set instead of a list so we don't get duplicate clobbers. 2008-06-08 06:45:54 +02:00
Tomas Lindquist Olsen
fd8cec14e1 [svn r248] Fixed: labels in inline asm block now work for the normal case.
Fixed: inline asm blocks are now emitted as a single asm entity.
2008-06-08 06:15:51 +02:00
Tomas Lindquist Olsen
3e62d80b4f [svn r247] fixed accessing global symbols from inline asm. 2008-06-08 01:07:58 +02:00
Tomas Lindquist Olsen
187d6523e3 [svn r245] initial support for labels in inline asm, broken :/ 2008-06-07 21:31:38 +02:00
Tomas Lindquist Olsen
27634ea5b6 [svn r243] fixed inline asm arg_pointer args hopefully. 2008-06-07 19:19:30 +02:00
Tomas Lindquist Olsen
1af9e9814a [svn r242] fixed (I think) arg_pointer inline asm args 2008-06-07 19:04:26 +02:00
Tomas Lindquist Olsen
47ac84b223 [svn r241] Fixed missing terminator for void main() with inline asm block. 2008-06-06 22:30:31 +02:00
Christian Kamm
cf4d71b02c [svn r240] do not crash on zero length constraints string 2008-06-06 22:04:41 +02:00
Christian Kamm
54b7134d78 [svn r239] also use indirect modifier for update constraints 2008-06-06 21:51:40 +02:00
Christian Kamm
5ee938ab0a [svn r238] use *m for memory input constraints and pass in their address 2008-06-06 21:44:17 +02:00
Tomas Lindquist Olsen
b917fe2f00 [svn r237] some inline asm output now seems to work, see tangotests/asm2.d 2008-06-06 20:51:43 +02:00
Tomas Lindquist Olsen
346d04aa8a [svn r236] added initial codegen of inline asm, pretty buggy and incomplete still. see the tangotests/asm1.d test for a sample of what does
work!
2008-06-06 20:14:51 +02:00
Christian Kamm
68d5150c1b [svn r235] rough port of GDC's inline assembler code, unfinished 2008-06-05 19:22:37 +02:00