Alien-LibJIT
view release on metacpan or search on metacpan
libjit/attic/jit-rules-alpha.h view on Meta::CPAN
/*
* jit-rules-alpha.h - Rules that define the characteristics of the alpha.
*
* Copyright (C) 2006 Southern Storm Software, Pty Ltd.
*
* This file is part of the libjit library.
*
* The libjit library is free software: you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation, either version 2.1 of
* the License, or (at your option) any later version.
*
* The libjit library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the libjit library. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef _JIT_RULES_ALPHA_H
#define _JIT_RULES_ALPHA_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* alpha has 32 64-bit floating-point registers. Each can hold either
* 1 32-bit float or 1 64-bit double.
*/
#define JIT_REG_ALPHA_FLOAT \
(JIT_REG_FLOAT32 | JIT_REG_FLOAT64 | JIT_REG_NFLOAT)
/*
* alpha has 32 64-bit integer registers that can hold WORD and LONG values
*/
#define JIT_REG_ALPHA_INT \
(JIT_REG_WORD | JIT_REG_LONG)
/*
* Integer registers
*
* $0 - function results.
* $1..$8 - Temp registers.
* $9..$14 - Saved registers.
* $15/$fp - Frame pointer or saved register.
* $16-$21 - First 6 arguments.
* $22-$25 - Temp registers.
* $26 - Return address.
* $27 - Procedure value or temp register.
* $28/$at - Reserved for the assembler.
* $29/$gp - Global pointer.
* $30/$sp - Stack pointer.
* $31 - Contains the value 0.
*
* Floating-point registers
*
* $f0,$f1 - function results. $f0 = real component $f1 = imaginary component
* $f2..$f9 - Saved registers.
* $f10..$f15 - Temp registers.
* $f16..$f21 - First 6 arguments.
* $f22..$f30 - Temp registers for expression evaluation.
* $f31 - Contains the value 0.0.
*/
#define JIT_REG_INFO \
{ "v0", 0, -1, JIT_REG_FIXED}, \
{ "t0", 1, -1, JIT_REG_ALPHA_INT | JIT_REG_CALL_USED}, \
{ "t1", 2, -1, JIT_REG_ALPHA_INT | JIT_REG_CALL_USED}, \
{ "t2", 3, -1, JIT_REG_ALPHA_INT | JIT_REG_CALL_USED}, \
{ "t3", 4, -1, JIT_REG_ALPHA_INT | JIT_REG_CALL_USED}, \
{ "t4", 5, -1, JIT_REG_ALPHA_INT | JIT_REG_CALL_USED}, \
{ "t5", 6, -1, JIT_REG_ALPHA_INT | JIT_REG_CALL_USED}, \
{ "t6", 7, -1, JIT_REG_ALPHA_INT | JIT_REG_CALL_USED}, \
{ "t7", 8, -1, JIT_REG_ALPHA_INT | JIT_REG_CALL_USED}, \
{ "s0", 9, -1, JIT_REG_ALPHA_INT | JIT_REG_GLOBAL}, \
{ "s1", 10, -1, JIT_REG_ALPHA_INT | JIT_REG_GLOBAL}, \
{ "s2", 11, -1, JIT_REG_ALPHA_INT | JIT_REG_GLOBAL}, \
( run in 0.798 second using v1.01-cache-2.11-cpan-df04353d9ac )