1 /* 2 * Copyright (C) 2012-2019 Free Software Foundation, Inc. 3 * 4 * This file is part of GNU lightning. 5 * 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) 9 * any later version. 10 * 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. 15 * 16 * Authors: 17 * Paulo Cesar Pereira de Andrade 18 */ 19 20 #ifndef _jit_ppc_h 21 #define _jit_ppc_h 22 23 #define JIT_HASH_CONSTS 1 24 #define JIT_NUM_OPERANDS 3 25 26 /* 27 * Types 28 */ 29 typedef enum { 30 #define jit_r(i) (_R28 + (i)) 31 #define jit_r_num() 3 32 #define jit_v(i) (_R27 - (i)) 33 #define jit_v_num() 14 34 #define jit_f(i) (_F14 + (i)) 35 #define jit_f_num() 8 36 _R0, 37 #define JIT_R0 _R28 38 #define JIT_R1 _R29 39 #define JIT_R2 _R30 40 _R11, _R12, _R13, _R2, 41 #define JIT_V0 jit_v(0) 42 #define JIT_V1 jit_v(1) 43 #define JIT_V2 jit_v(2) 44 #define JIT_V3 jit_v(3) 45 #define JIT_V4 jit_v(4) 46 #define JIT_V5 jit_v(5) 47 #define JIT_V6 jit_v(6) 48 #define JIT_V7 jit_v(7) 49 #define JIT_V8 jit_v(8) 50 #define JIT_V9 jit_v(9) 51 #define JIT_V10 jit_v(10) 52 #define JIT_V11 jit_v(11) 53 #define JIT_V12 jit_v(12) 54 #define JIT_V13 jit_v(13) 55 _R14, _R15, _R16, _R17, _R18, _R19, _R20, _R21, 56 _R22, _R23, _R24, _R25, _R26, _R27, _R28, _R29, 57 _R30, 58 _R1, 59 #define JIT_FP _R31 60 _R31, 61 _R10, _R9, _R8, _R7, _R6, _R5, _R4, _R3, 62 _F0, 63 _F14, _F15, _F16, _F17, _F18, _F19, _F20, _F21, 64 #define JIT_F0 _F14 65 #define JIT_F1 _F15 66 #define JIT_F2 _F16 67 #define JIT_F3 _F17 68 #define JIT_F4 _F18 69 #define JIT_F5 _F19 70 #define JIT_F6 _F20 71 #define JIT_F7 _F21 72 /* FIXME _F20-_F31 not (easily) accessible and only _F14-_F21 73 * saved/restored (if used) */ 74 _F22, _F23, _F24, _F25, _F26, _F27, _F28, _F29, 75 _F30, _F31, 76 _F13, _F12, _F11, _F10, _F9, _F8, _F7, _F6, 77 _F5, _F4, _F3, _F2, _F1, 78 _NOREG, 79 #define JIT_NOREG _NOREG 80 } jit_reg_t; 81 82 #endif /* _jit_ppc_h */ 83