X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftr%2Fmangle.h;h=892bdba1f5f576f1065d18c6e0c8dddce559f26e;hb=93ec9eb45d1630e73ed4932d66683adcc9c28d71;hp=38a507e2bb9f82ce906ec49b3c4f0f0af81ca726;hpb=d61b4fcf547abba70184af32e2d3acc77531c623;p=libfirm diff --git a/ir/tr/mangle.h b/ir/tr/mangle.h index 38a507e2b..892bdba1f 100644 --- a/ir/tr/mangle.h +++ b/ir/tr/mangle.h @@ -1,21 +1,47 @@ -/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe -** All rights reserved. -** -** Authors: Martin Trapp, Christian Schaefer -** -*/ +/* + * Project: libFIRM + * File name: ir/tr/mangle.h + * Purpose: Methods to manipulate names. + * Author: Martin Trapp, Christian Schaefer + * Modified by: Goetz Lindenmaier + * Created: + * CVS-ID: $Id$ + * Copyright: (c) 1998-2003 Universität Karlsruhe + * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + */ + +/** + * @file mangle.h + * + * FIRM name mangling -- methods to manipulate names. + * + * @author Martin Trapp, Christian Schaefer + */ + +#ifndef _MANGLE_H_ +#define _MANGLE_H_ # include "ident.h" # include "entity.h" -# include "type.h" +/** initializes the name mangling code */ +void firm_init_mangle (void); -void init_mangle (void); - -/* Computes a definite name for this entity by concatenating +/** Computes a definite name for this entity by concatenating the name of the owner type and the name of the entity with - a separating "_". f*/ + a separating "_". */ ident *mangle_entity (entity *ent); -/* Sorry, I'm not sure what this does... */ -ident *mangle_type (type *type); +/** mangle underscore: Returns a new ident that represents first_scnd. */ +ident *mangle_u (ident *first, ident* scnd); + +/** mangle dot: Returns a new ident that represents first.scnd. */ +ident *mangle_dot (ident *first, ident* scnd); + +/** mangle: Returns a new ident that represents firstscnd. */ +ident *mangle (ident *first, ident* scnd); + +/** returns a mangled name for a Win32 function using it's calling convention */ +ident *decorate_win32_c_fkt(entity *ent); + +#endif /* _MANGLE_H_ */