Milán Major

netscape-revival

1 branch
Code

sun-java/include/code.h

/*
 * @(#)code.h	1.6 95/01/31  
 *
 * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * and its documentation for NON-COMMERCIAL purposes and without
 * fee is hereby granted provided that this copyright notice
 * appears in all copies. Please refer to the file "copyright.html"
 * for further important copyright and licensing information.
 *
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
 * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
 * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
 * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 */

/*
 * Definitions having to do with code generation
 */

#ifndef _CODE_H_
#define _CODE_H_

#include "oobj.h"

extern unsigned char *codebuf;
extern int         pc;
extern char       *binfilename;
extern int         reachable;
extern char        MustBranch[256];
struct typeinfo;
char       *MakeSignature(struct typeinfo *, char *);
void DecodeFile(char *);
void PrintCodeSequence(struct methodblock *mb);
void PrintClassSequence(ClassClass *);

extern struct methodblock **procblocks;

#define label() pc
#define ComesHere(fixup) GoesThere(fixup, pc)

/* field flags which share the type code byte in field bytecodes */
#include "typecodes.h"

#define	FIELD_STATIC	0x40
#define	FIELD_GET	0x00
#define	FIELD_PUT	0x80

#if N_TYPEMASK & (FIELD_STATIC | FIELD_PUT)
#error "field flags and type codes overlap"
#endif

#endif	/* !_CODE_H_ */