1
/* Copyright (c) 2002 by Erik Johansson */
3
/***************************************************************************
5
* hipe_sparc_registers.h
7
* To provide symbolic names for SPARC registers for both mk_literals
8
* and for use in spac glue code like hipe_sparc_glue.S and
12
* See hipe_sparc_abi.txt for details.
13
* Be very careful when editing this file -- subtle aspects of how registers
14
* are used may be assumed to hold. (e.g. P is in a C - callee save register.).
15
* Once again: read hipe_sparc_abi.txt before editing this file, and
16
* if you edit this file update hipe_sparc_abi.txt !!!
18
* All names are defined twice, symbolically for the .S files and numerically
19
* for hipe_mk_literals (which creates hipe_literals.hrl used by
20
* hipe_sparc_registers.erl).
21
* (If you can come up with a better solution requiering only one define
22
* I would be grateful....
25
* Erik Johansson (happi@csd.uu.se) - Mar 07, 2002: Created.
26
****************************************************************************/
28
#ifndef __HIPE_SPARC_REGISTERS_H__
29
#define __HIPE_SPARC_REGISTERS_H__
30
/* ------------------ Defines ------------------ */
33
* See hipe_sparc_abi.txt
69
#define HP %i1 /* XXX: heap pointer, n�e HEAP */
71
#define NSP %i3 /* XXX: stack pointer, n�e NSTACK */
76
#define RA %o7 /* XXX: return address, n�e CP */
79
#define TEMP1 %l7 /* Should be local registers so that */
80
#define TEMP2 %l6 /* they are saved over C-calls. */
81
#define TEMP3 %l5 /* */
102
#define HP_NR I1 /* XXX: heap pointer, n�e HEAP */
103
#define HP_LIMIT_NR I2
104
#define NSP_NR I3 /* XXX: stack pointer, n�e NSTACK */
105
#define NSP_LIMIT_NR I4
108
#define RA_NR O7 /* XXX: return address, n�e CP */
111
#define TEMP1_NR L7 /* Should be local registers so that */
112
#define TEMP2_NR L6 /* they are saved over C-calls. */
113
#define TEMP3_NR L5 /* */
130
#define ARG15_NR O0 /* Ret val */
132
#endif /* __HIPE_SPARC_REGISTERS_H__ */