mirror of
https://github.com/NishiOwO/JWasm.git
synced 2025-04-22 01:04:39 +00:00
85 lines
3.3 KiB
C
85 lines
3.3 KiB
C
/****************************************************************************
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
|
|
*
|
|
* ========================================================================
|
|
*
|
|
* This file contains Original Code and/or Modifications of Original
|
|
* Code as defined in and that are subject to the Sybase Open Watcom
|
|
* Public License version 1.0 (the 'License'). You may not use this file
|
|
* except in compliance with the License. BY USING THIS FILE YOU AGREE TO
|
|
* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
|
|
* provided with the Original Code and Modifications, and is also
|
|
* available at www.sybase.com/developer/opensource.
|
|
*
|
|
* The Original Code and all software distributed under the License are
|
|
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
|
* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
|
|
* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
|
|
* NON-INFRINGEMENT. Please see the License for the specific language
|
|
* governing rights and limitations under the License.
|
|
*
|
|
* ========================================================================
|
|
*
|
|
* Description: declarations for assume.c
|
|
*
|
|
****************************************************************************/
|
|
|
|
#ifndef _ASSUME_H_
|
|
#define _ASSUME_H_
|
|
|
|
/* flags for error field, used for GPR's ASSUME:ERROR|NOTHING */
|
|
enum err_flags {
|
|
RL_ERROR = 0x01,
|
|
RX_ERROR = 0x02,
|
|
ERX_ERROR = 0x04,
|
|
RRX_ERROR = 0x08,
|
|
RH_ERROR = 0x10
|
|
};
|
|
|
|
struct assume_info {
|
|
struct asym *symbol; /* segment, group or type that is to
|
|
be associated with the register */
|
|
unsigned char error; /* register assumed to ERROR */
|
|
unsigned char is_flat; /* register assumed to FLAT */
|
|
};
|
|
|
|
/* v2.05: introduced */
|
|
struct stdassume_typeinfo {
|
|
struct asym *type;
|
|
struct asym *target_type;
|
|
enum memtype mem_type;
|
|
unsigned char ptr_memtype;
|
|
unsigned char is_ptr;
|
|
};
|
|
|
|
/* segment assume table is sorted by seg reg number: ES,CS,SS,DS,FS,GS.
|
|
* see enum assume_segreg in globals.h.
|
|
*/
|
|
extern struct assume_info SegAssumeTable[];
|
|
|
|
/* standard register assume table; contains 8/16 entries for the GPRs */
|
|
extern struct assume_info StdAssumeTable[];
|
|
|
|
#define NUM_SEGREGS 6
|
|
|
|
extern void AssumeInit( int ); /* init assume tables */
|
|
|
|
extern enum assume_segreg search_assume( const struct asym *sym, enum assume_segreg def, bool search_grps );
|
|
extern enum assume_segreg GetAssume( const struct asym *, const struct asym *, enum assume_segreg, struct asym * * );
|
|
|
|
extern struct asym *GetOverrideAssume( enum assume_segreg );
|
|
extern struct asym *GetStdAssume( int );
|
|
extern struct asym *GetStdAssumeEx( int );
|
|
|
|
extern void ModelAssumeInit( void );
|
|
extern void SetSegAssumeTable( void * );
|
|
extern void GetSegAssumeTable( void * );
|
|
extern void SetStdAssumeTable( void *, struct stdassume_typeinfo * );
|
|
extern void GetStdAssumeTable( void *, struct stdassume_typeinfo * );
|
|
|
|
#endif
|