Mercurial > projects > ldc
view gen/abi.h @ 1038:c4c6e5e9c23e
Removed inline asm for overflow checking in runtime that wasn't working.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 03 Mar 2009 19:37:47 +0100 |
parents | 9167d492cbc2 |
children | 45af482e3832 |
line wrap: on
line source
#ifndef __LDC_GEN_ABI_H__ #define __LDC_GEN_ABI_H__ #include <vector> struct Type; struct IrFuncTyArg; namespace llvm { class Type; class Value; } // return rewrite rule struct ABIRewrite { // get original value from rewritten one virtual LLValue* get(Type* dty, LLValue* v) = 0; // rewrite original value virtual LLValue* put(Type* dty, LLValue* v) = 0; // returns target type of this rewrite virtual const LLType* type(Type* dty, const LLType* t) = 0; }; // interface called by codegen struct TargetABI { static TargetABI* getTarget(); virtual bool returnInArg(TypeFunction* tf) = 0; virtual bool passByVal(Type* t) = 0; virtual void rewriteFunctionType(TypeFunction* t) = 0; }; #endif