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.
15
2002/11/05 19:
29
:
38
grubba Exp $
+
|| $Id: sparc.c,v 1.
16
2002/11/05 19:
35
:
52
grubba Exp $
*/ /* * Machine code generator for sparc. * * Henrik Grubbström 20010720 */ #include "operators.h"
pike.git/src/code/sparc.c:79:
#define SPARC_SRA(D,S1,S2,I) SPARC_LOG_OP(SPARC_OP3_SRA, D, S1, S2, I) #define SPARC_SETHI(D, VAL) \ add_to_program(0x01000000|((D)<<25)|(((VAL)>>10)&0x3fffff)) #define SET_REG(REG, X) do { \ INT32 val_ = X; \ INT32 reg_ = REG; \ if ((-4096 <= val_) && (val_ <= 4095)) { \ /* or %g0, val_, reg */ \
-
SPARC_OR(SPARC_REG_G0,
reg_,
val_, 1); \
+
SPARC_OR(
reg_,
SPARC_REG_G0, val_, 1); \
} else { \ /* sethi %hi(val_), reg */ \ SPARC_SETHI(reg_, val_); \ if (val_ & 0x3ff) { \ /* or reg, %lo(val_), reg */ \ SPARC_OR(reg_, reg_, val_ & 0x3ff, 1); \ } \ if (val_ < 0) { \ /* Sign extend. */ \ /* sra reg, %g0, reg */ \