Charles.Forsyth20060303-partialeea662d19 years agoHistory
323 lines · 3.8 KB · Objective-C
RawDownload
Dis: module{	PATH:	con "/dis/lib/dis.dis"; 	XMAGIC:		con	819248;	SMAGIC:		con	923426;	MUSTCOMPILE:	con	1<<0;	DONTCOMPILE:	con 	1<<1;	SHAREMP:	con 	1<<2;	DYNMOD:	con	1<<3;	HASLDT0:	con	1<<4;	HASEXCEPT:	con	1<<5;	HASLDT:	con	1<<6; 	AMP:	con 16r00;	# Src/Dst op addressing	AFP:	con 16r01;	AIMM:	con 16r02;	AXXX:	con 16r03;	AIND:	con 16r04;	AMASK:	con 16r07; 	ARM:	con 16rC0;	# Middle op addressing	AXNON:	con 16r00;	AXIMM:	con 16r40;	AXINF:	con 16r80;	AXINM:	con 16rC0; 	DEFZ:	con 0;	DEFB:	con 1;		# Byte	DEFW:	con 2;		# Word	DEFS:	con 3;		# Utf-string	DEFF:	con 4;		# Real value	DEFA:	con 5;		# Array	DIND:	con 6;		# Set index	DAPOP:	con 7;		# Restore address register	DEFL:	con 8;		# BIG	DMAX:	con 1<<4; 	Inst: adt	{		op:	int;		addr:	int;		mid:	int;		src:	int;		dst:	int;	}; 	Type: adt	{		size:	int;		np:	int;		map:	array of byte;	}; 	Data: adt	{		op:	int;		# encoded op		n:	int;		# number of elements		off:	int;		# byte offset in data space		pick {		Zero =>		# DEFZ		Bytes =>		# DEFB			bytes:	array of byte;		Words =>		# DEFW			words:	array of int;		String =>		# DEFS			str:	string;		Reals =>		# DEFF			reals:	array of real;		Array =>		# DEFA			typex:	int;			length:	int;		Aindex =>		# DIND			index:	int;		Arestore =>	# DAPOP		Bigs =>		# DEFL			bigs:		array of big;		}	}; 	Link: adt	{		pc:	int;		desc:	int;		sig:	int;		name:	string;	}; 	Import: adt	{		sig:	int;		name:	string;	}; 	Except: adt	{		s:	string;		pc:	int;	}; 	Handler: adt	{		pc1:	int;		pc2:	int;		eoff:	int;		ne:	int;		t:	ref Type;		etab:	array of ref Except;	}; 	Mod: adt	{		name:	string;		srcpath:	string; 		magic:	int;		rt:	int;		ssize:	int;		isize:	int;		dsize:	int;		tsize:	int;		lsize:	int;		entry:	int;		entryt:	int; 		inst:	array of ref Inst;		types:	array of ref Type;		data:	list of ref Data;		links:	array of ref Link;		imports:	array of array of ref Import;		handlers:	array of ref Handler; 		sign:	array of byte;	}; 	INOP,	IALT,	INBALT,	IGOTO,	ICALL,	IFRAME,	ISPAWN,	IRUNT,	ILOAD,	IMCALL,	IMSPAWN,	IMFRAME,	IRET,	IJMP,	ICASE,	IEXIT,	INEW,	INEWA,	INEWCB,	INEWCW,	INEWCF,	INEWCP,	INEWCM,	INEWCMP,	ISEND,	IRECV,	ICONSB,	ICONSW,	ICONSP,	ICONSF,	ICONSM,	ICONSMP,	IHEADB,	IHEADW,	IHEADP,	IHEADF,	IHEADM,	IHEADMP,	ITAIL,	ILEA,	IINDX,	IMOVP,	IMOVM,	IMOVMP,	IMOVB,	IMOVW,	IMOVF,	ICVTBW,	ICVTWB,	ICVTFW,	ICVTWF,	ICVTCA,	ICVTAC,	ICVTWC,	ICVTCW,	ICVTFC,	ICVTCF,	IADDB,	IADDW,	IADDF,	ISUBB,	ISUBW,	ISUBF,	IMULB,	IMULW,	IMULF,	IDIVB,	IDIVW,	IDIVF,	IMODW,	IMODB,	IANDB,	IANDW,	IORB,	IORW,	IXORB,	IXORW,	ISHLB,	ISHLW,	ISHRB,	ISHRW,	IINSC,	IINDC,	IADDC,	ILENC,	ILENA,	ILENL,	IBEQB,	IBNEB,	IBLTB,	IBLEB,	IBGTB,	IBGEB,	IBEQW,	IBNEW,	IBLTW,	IBLEW,	IBGTW,	IBGEW,	IBEQF,	IBNEF,	IBLTF,	IBLEF,	IBGTF,	IBGEF,	IBEQC,	IBNEC,	IBLTC,	IBLEC,	IBGTC,	IBGEC,	ISLICEA,	ISLICELA,	ISLICEC,	IINDW,	IINDF,	IINDB,	INEGF,	IMOVL,	IADDL,	ISUBL,	IDIVL,	IMODL,	IMULL,	IANDL,	IORL,	IXORL,	ISHLL,	ISHRL,	IBNEL,	IBLTL,	IBLEL,	IBGTL,	IBGEL,	IBEQL,	ICVTLF,	ICVTFL,	ICVTLW,	ICVTWL,	ICVTLC,	ICVTCL,	IHEADL,	ICONSL,	INEWCL,	ICASEC,	IINDL,	IMOVPC,	ITCMP,	IMNEWZ,	ICVTRF,	ICVTFR,	ICVTWS,	ICVTSW,	ILSRW,	ILSRL,	IECLR,	INEWZ,	INEWAZ,	IRAISE,	ICASEL,	IMULX,	IDIVX,	ICVTXX,	IMULX0,	IDIVX0,	ICVTXX0,	IMULX1,	IDIVX1,	ICVTXX1,	ICVTFX,	ICVTXF,	IEXPW,	IEXPL,	IEXPF,	ISELF,	# add new instructions here	MAXDIS: con iota; 	init:		fn();	loadobj:	fn(file: string): (ref Mod, string);	op2s:	fn(op: int): string;	inst2s:	fn(ins: ref Inst): string;	src:		fn(file: string): string;};## derived by Vita Nuova Limited 1998 from /appl/wm/rt.b and /include/isa.h, both# Copyright © 1996-1999 Lucent Technologies Inc.  All rights reserved.#