~kris/9p

9hist

6e8dc5bc374ed6ea4096b1504e5d50aa4cbdc43a — David du Colombier 32 years ago 8be6d38
Plan 9 from Bell Labs 1994-04-09
3 files changed, 51 insertions(+), 4 deletions(-)

M pc/devvga.c
M pc/l.s
M port/devproc.c
M pc/devvga.c => pc/devvga.c +2 -0
@@ 627,6 627,8 @@ screenupdate(void)
		break;
	case 3:
		f = memmove;
		r.min.x &= ~3;
		r.max.x = ROUND(r.max.x, 4);
		len = r.max.x - r.min.x;
		break;
	default:

M pc/l.s => pc/l.s +48 -3
@@ 567,22 567,29 @@ TEXT	idle(SB),$0
	RET

/*
 *  return cpu type (what is a pentium?)
 *  return cpu type (586 == pentium or better)
 */
TEXT	x86(SB),$0

	PUSHFL
	MOVL	0(SP),AX
	ORL	$0x40000,AX
	ORL	$0x240000,AX
	PUSHL	AX
	POPFL
	PUSHFL
	POPL	AX
	MOVL	0(SP),AX
	ANDL	$0x40000,AX
	JZ	is386
	POPL	AX
	ANDL	$0x200000,AX
	JZ	is486
	MOVL	$586,AX
	JMP	done
is486
	MOVL	$486,AX
	JMP	done
is386:
	POPL	AX
	MOVL	$386,AX
done:
	POPFL


@@ 818,3 825,41 @@ dsploop:

dspout:
	RET


	TEXT	damove(SB), $0

	MOVL	p1+0(FP), DI
	MOVL	p2+4(FP), SI
	MOVL	n+8(FP), BX
	CLD
/*
 * less than a word, just copy bytes
 */
	CMPL	BX, $4
	JLS	bybyte
/*
 * copy bytes till dest is word alligned
 */
	MOVL	DI, DX
	ANDL	$3, DX
	JEQ	byword
	MOVL	$4, CX
	SUBL	DX, CX
	SUBL	CX, BX
	REP;	MOVSB
/*
 * copy whole longs
 */
byword:
	MOVL	BX, CX
	SHRL	$2, CX
	REP;	MOVSL
/*
 * copy the rest, by bytes
 */
	ANDL	$3, BX
bybyte:
	MOVL	BX, CX
	REP;	MOVSB
	RET

M port/devproc.c => port/devproc.c +1 -1
@@ 775,7 775,7 @@ procctlmemio(Proc *p, ulong offset, int n, void *va, int read)
		if(offset+n >= s->top)
			n = s->top-offset;

		if((s->type&SG_TYPE) == SG_TEXT)
		if(!read && (s->type&SG_TYPE) == SG_TEXT)
			s = txt2data(p, s);

		s->steal++;