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.
17
2002/11/06 16:
19
:
19
grubba Exp $
+
|| $Id: sparc.c,v 1.
18
2002/11/06 16:
36
:
02
grubba Exp $
*/ /* * Machine code generator for sparc. * * Henrik Grubbström 20010720 */ #include "operators.h"
pike.git/src/code/sparc.c:102:
} \ if (val_ < 0) { \ /* Sign extend. */ \ /* sra reg, %g0, reg */ \ SPARC_SRA(reg_, reg_, SPARC_REG_G0, 0); \ } \ } \ } while(0) #define ADD_CALL(X, DELAY_OK) do { \
-
extern void opcode_F_CALL_OTHER(int); \
+
INT32 delta_; \ struct program *p_ = Pike_compiler->new_program; \ INT32 off_ = p_->num_program; \ /* noop */ \ INT32 delay_ = 0x01000000; \ \ if (DELAY_OK) { \ /* Move the previous opcode to the delay-slot. */ \ delay_ = p_->program[--off_]; \ } else { \ add_to_program(0); /* Placeholder... */ \ } \ /* call X */ \ delta_ = ((PIKE_OPCODE_T *)(X)) - (p_->program + off_); \ p_->program[off_] = 0x40000000 | (delta_ & 0x3fffffff); \ add_to_relocations(off_); \ add_to_program(delay_); \
-
if (X == (void *)opcode_F_CALL_OTHER) { \
-
fprintf(stderr, "CALL_OTHER, delay opcode 0x%08x\n", delay_); \
-
} \
+
} while(0) /* * Register conventions: * * I6 Frame pointer * I7 Return address * * L0 Pike_fp * L1 Pike_fp->pc