Mercurial > projects > ldc
comparison gen/llvmhelpers.h @ 305:2b72433d5c8c trunk
[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.
author | lindquist |
---|---|
date | Fri, 27 Jun 2008 22:04:35 +0200 |
parents | bef811104734 |
children | d59c363fccad |
comparison
equal
deleted
inserted
replaced
304:3ebc136702dd | 305:2b72433d5c8c |
---|---|
11 void DtoDeleteArray(DValue* arr); | 11 void DtoDeleteArray(DValue* arr); |
12 | 12 |
13 // assertion generator | 13 // assertion generator |
14 void DtoAssert(Loc* loc, DValue* msg); | 14 void DtoAssert(Loc* loc, DValue* msg); |
15 | 15 |
16 // return the LabelStatement from the current function with the given identifier or NULL if not found | |
17 LabelStatement* DtoLabelStatement(Identifier* ident); | |
16 // emit goto | 18 // emit goto |
17 void DtoGoto(Loc* loc, LabelDsymbol* target, TryFinallyStatement* enclosingtryfinally); | 19 void DtoGoto(Loc* loc, Identifier* target, TryFinallyStatement* enclosingtryfinally); |
18 | 20 |
19 // generates IR for finally blocks between the 'start' and 'end' statements | 21 // generates IR for finally blocks between the 'start' and 'end' statements |
20 // will begin with the finally block belonging to 'start' and does not include | 22 // will begin with the finally block belonging to 'start' and does not include |
21 // the finally block of 'end' | 23 // the finally block of 'end' |
22 void DtoFinallyBlocks(TryFinallyStatement* start, TryFinallyStatement* end); | 24 void DtoFinallyBlocks(TryFinallyStatement* start, TryFinallyStatement* end); |