80 lines · 1.8 KB · Objective-C
RawDownload
Rgetputfield:		con 16r1 << 16;Rgetputstatic:		con 16r2 << 16;Rinvokeinterface:	con 16r3 << 16;Rinvokespecial:		con 16r4 << 16;Rinvokestatic:		con 16r5 << 16;Rinvokevirtual:		con 16r6 << 16; Rstaticmp:		con 16r8 << 16;Rspecialmp:		con 16r10 << 16; PSRC:			con 16r1 << 2;	# patch source operandPDST:			con 16r2 << 2;	# destinationPMID:			con 16r3 << 2;	# middle PIMM:			con 16r0;	# patch immediate operandPSIND:			con 16r1;	# single indirect offsetPDIND1:			con 16r2;	# 1st offset of double indirectPDIND2:			con 16r3;	# 2nd offset SAVEINST:		con 1;		# save 'ref Inst' for patching # special fieldsRCLASS:			con "@Class";RADT:			con "@adt";RJEX:			con "@jex";RMP:			con "@mp";RNP:			con "@np";ROBJ:			con "@obj";RSYS:			con "@sys"; # special class nameRLOADER:		con "@Loader"; RCLASSCLASS:		con "java/lang/Class"; Ipatch: adt {	n:	int;			# no. of significant elts. in pinfo & i	max:	int;			# number of elements pinfo & i can hold	pinfo:	array of int;		# operand patch directives	i:	array of ref Inst;	# instructions to patch (runtime relocation)}; ## Load-time relocation.# Freloc: adt {	field:	string;			# field name	sig:	string;			# Java type signature	flags:	int;			# access flags	ipatch:	ref Ipatch;		# instruction patch information	next:	cyclic ref Freloc;}; Creloc: adt {	classname:	string;	fr:		ref Freloc;	tail:		ref Freloc;	n:		int;		# number of elements in 'fr'}; ## Run-time relocation.# RTReloc: adt {	field:		string;		# field name	sig:		string;		# Java type signature	flags:		int;		# access flags	ipatch:		ref Ipatch;	# instruction patch information	next:		cyclic ref RTReloc;}; RTClass: adt {	classname:	string;	rtr:		ref RTReloc;	tail:		ref RTReloc;	n:		int;		# number of elements in 'rtr'	off:		int;		# Module Data offset};