pike.git
/
src
/
code
/
sparc.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/code/sparc.c:1:
/* || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information.
-
|| $Id: sparc.c,v 1.
31
2002/11/11 12:
34
:
17
grubba Exp $
+
|| $Id: sparc.c,v 1.
32
2002/11/11 12:
58
:
39
grubba Exp $
*/ /* * Machine code generator for sparc. * * Henrik Grubbström 20010720 */ #include "global.h" #include "svalue.h"
pike.git/src/code/sparc.c:127:
#define SPARC_SETHI(D, VAL) \ add_to_program(0x01000000|((D)<<25)|(((VAL)>>10)&0x3fffff)) #define SPARC_BE(DISP22, A) \ add_to_program(0x02800000|((A)<<29)|(((DISP22)>>2)&0x1fffff)) #define SPARC_BNE(DISP22, A) \ add_to_program(0x12800000|((A)<<29)|(((DISP22)>>2)&0x1fffff))
+
#define SPARC_CALL(DISP30) \
+
add_to_program(0x40000000 | (((DISP30) >> 2) & 0x3fffffff))
+
+
#define SET_REG(REG, X) do { \ INT32 val_ = X; \ INT32 reg_ = REG; \ if ((-4096 <= val_) && (val_ <= 4095)) { \ /* or %g0, val_, reg */ \ SPARC_OR(reg_, SPARC_REG_G0, val_, 1); \ } else { \ /* sethi %hi(val_), reg */ \ SPARC_SETHI(reg_, val_); \ if (val_ & 0x3ff) { \