annotate gen/functions.h @ 979:523bf4f166bc

Fix some assembler issues: The assembler was miscompiling "add" (specifically, the "add reg/mem, imm" variations). The change that caused this seems to have been made because without it, some "add"s didn't compile at all. This patch reverts the previous change, and makes sure assembler operands are remapped correctly even though the input operands auto-generated due to updating operations aren't explicitly used.
author Frits van Bommel <fvbommel wxs.nl>
date Wed, 18 Feb 2009 21:46:14 +0100
parents 03d7c4aac654
children 9167d492cbc2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
664
eef8ac26c66c Some missed LLVMDC -> LDC.
Christian Kamm <kamm incasoftware de>
parents: 486
diff changeset
1 #ifndef LDC_GEN_FUNCTIONS_H
eef8ac26c66c Some missed LLVMDC -> LDC.
Christian Kamm <kamm incasoftware de>
parents: 486
diff changeset
2 #define LDC_GEN_FUNCTIONS_H
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
3
486
a34078905d01 Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 234
diff changeset
4 const llvm::FunctionType* DtoFunctionType(Type* t, const LLType* thistype, const LLType* nesttype, bool ismain = false);
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
5 const llvm::FunctionType* DtoFunctionType(FuncDeclaration* fdecl);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
6
117
56a21f3e5d3e [svn r121] Finished ModuleInfo implementation.
lindquist
parents: 102
diff changeset
7 const llvm::FunctionType* DtoBaseFunctionType(FuncDeclaration* fdecl);
56a21f3e5d3e [svn r121] Finished ModuleInfo implementation.
lindquist
parents: 102
diff changeset
8
102
027b8d8b71ec [svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
lindquist
parents: 100
diff changeset
9 void DtoResolveFunction(FuncDeclaration* fdecl);
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
10 void DtoDeclareFunction(FuncDeclaration* fdecl);
920
545f54041d91 Implemented proper support for naked asm using llvm module level asm. Still not 100% complete, but already 1000 times better that what we had before. Don's BignumX86 implementation from Tango (when turned into a standalone unittest) seems to fully work with no changes, and great performance :)
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 664
diff changeset
11 void DtoDefineFunction(FuncDeclaration* fd);
945
03d7c4aac654 SWITCHED TO LLVM 2.5 !
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 920
diff changeset
12
920
545f54041d91 Implemented proper support for naked asm using llvm module level asm. Still not 100% complete, but already 1000 times better that what we had before. Don's BignumX86 implementation from Tango (when turned into a standalone unittest) seems to fully work with no changes, and great performance :)
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 664
diff changeset
13 void DtoDefineNakedFunction(FuncDeclaration* fd);
945
03d7c4aac654 SWITCHED TO LLVM 2.5 !
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 920
diff changeset
14 void emitABIReturnAsmStmt(IRAsmBlock* asmblock, Loc loc, FuncDeclaration* fdecl);
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
15
131
5825d48b27d1 [svn r135] * Merged DMD 1.025 *
lindquist
parents: 117
diff changeset
16 DValue* DtoArgument(Argument* fnarg, Expression* argexp);
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 131
diff changeset
17 void DtoVariadicArgument(Expression* argexp, LLValue* dst);
131
5825d48b27d1 [svn r135] * Merged DMD 1.025 *
lindquist
parents: 117
diff changeset
18
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
19 #endif