2 * Copyright (C) 2014-2019 Free Software Foundation, Inc.
4 * This file is part of GNU lightning.
6 * GNU lightning is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU Lesser General Public License as published
8 * by the Free Software Foundation; either version 3, or (at your option)
11 * GNU lightning is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 * License for more details.
17 * Paulo Cesar Pereira de Andrade
23 #define JIT_HASH_CONSTS 1
24 #define JIT_NUM_OPERANDS 3
31 #define jit_r(i) (_S0 + (i))
33 #define jit_v(i) (_S3 + (i))
35 #define jit_f(i) (_F2 + (i))
37 /* Volatile - Assembly temporary register */
39 /* Volatile - Return value register */
41 /* Volatile - Temporary registers */
45 /* FIXME Use callee save register for r0-r2 (instead of 12+ JIT_RN
46 * and 6 JIT_VN because division must call a function)
47 * FIX would be to create proper functions that do not clobber
48 * registers and inject/inline them in the jit */
55 /* Nonvolatile - Saved registers */
58 /* Nonvolatile - Frame pointer */
60 /* Volatile - Argument registers */
63 /* Volatile - Return address register */
65 /* Volatile - Temporary register */
67 /* Nonvolatile - Global pointer */
69 /* Nonvolatile - Stack pointer */
71 /* Constant RAZ / writes ignored */
81 /* Volatile - Return value register (real part) */
83 /* Volatile - Return value register (imaginary part) */
85 /* Nonvolatile - Saved registers */
88 /* Volatile - Temporary registers */
89 _F10, _F11, _F12, _F13,
91 /* Volatile - Argument registers */
92 _F21, _F20, _F19, _F18,
94 /* Volatile - Temporary registers */
95 _F22, _F23, _R24, _F25,
96 _F26, _F27, _F28, _F29,
98 /* Constant - RAZ / writes ignored */
100 /* Lightning internal invalid register identifier */
102 #define JIT_NOREG _NOREG
105 #endif /* _jit_alpha_h */