File:  [MW Coherent from dump] / coherent / b / bin / c / n1 / i386 / tables / alogic.t
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed May 29 04:56:37 2019 UTC (7 years, 2 months ago) by root
Branches: MarkWilliams, MAIN
CVS tags: relic, HEAD
coherent

//////////
/ n1/i386/tables/alogic.t
//////////

/////////
/
/ Assigned AND (&=), assigned OR (|=), assigned XOR (^=).
/ [OP0] is ZAND, ZOR or ZXOR.
/ The [TL OP0] macro maps e.g. ZOR into ZORB or ZORW; see n1/i386/outmch.c.
/
/////////

AAND:
AOR:
AXOR:

//////////
/ Longs.
//////////

/ Long register op= easy.
%	PEFFECT|PVALUE|PREL
	LONG		ANYR	*	*	TEMP
		REG|MMX		LONG
		EASY|MMX	LONG
/ Integer op= immediate.
%	PEFFECT|PVALUE|PREL
	LONG		ANYR	*	*	TEMP
		ADR|LV		SINT|UINT
		IMM|MMX		LONG
			[TL OP0]	[AL],[TL AR]
		[IFV]	[TL ZMOVSX]	[R],[AL]
		[IFR]	[REL0]		[LAB]

/ Integer op= long.
%	PEFFECT|PVALUE|PREL|P_SRT|PBYTE
	LONG		ANYR	*	ANYR	TEMP
		ADR|LV		SINT|UINT
		TREG		LONG
			[TL OP0]	[AL],[TL R]
		[IFV]	[TL ZMOVSX]	[R],[AL]
		[IFR]	[REL0]		[LAB]

/////////
/
/ Fields.
/ The modifier masks and shifts the right subtree appropriately.
/ The right therefore may be simply OPed into the left.
/ Distinguish between signed and unsigned fields.
/ If the value is needed, unsigned result must be masked;
/ the sign extend shifts make the mask unnecessary, so it gets optimized out.
/
/////////

/ Signed field op= immediate.
%	PEFFECT|PVALUE
	FS32		ANYR	*	*	TEMP
		ADR|LV		FLD
		IMM|MMX		LONG
			[TL OP0]	[AL],[TL AR]
		[IFV]	[TL ZMOVZX]	[R],[AL]

/ Signed field op= long.
%	PEFFECT|PVALUE|P_SRT|PBYTE
	FS32		ANYR	*	ANYR	TEMP
		ADR|LV		FLD
		TREG		LONG
			[TL OP0]	[AL],[TL R]
		[IFV]	[TL ZMOVZX]	[R],[AL]

/ Unsigned field op= immediate.
%	PEFFECT|PVALUE
	FU32		ANYR	*	*	TEMP
		ADR|LV		FLD
		IMM|MMX		LONG
			[TL OP0]	[AL],[TL AR]
		[IFV]	[TL ZMOVZX]	[R],[AL]
		[IFV]	[ZAND]		[R],[EMASK]

/ Unsigned long field op= long.
%	PEFFECT|PVALUE|P_SRT|PBYTE
	FU32		ANYR	*	ANYR	TEMP
		ADR|LV		FLD
		TREG		LONG
			[TL OP0]	[AL],[TL R]
		[IFV]	[TL ZMOVZX]	[R],[AL]
		[IFV]	[ZAND]		[R],[EMASK]

//////////
/ end of n1/i386/tables/alogic.t
//////////

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.