From ded00c0d1c0dc38e63b2c48ff8cbb12c1b60c70f Mon Sep 17 00:00:00 2001 From: Robert de Bath Date: Wed, 29 Jan 2003 21:07:56 +0100 Subject: Import Dev86src-0.16.11.tar.gz --- as/genobj.c | 2 +- as/keywords.c | 2 ++ as/table.c | 2 +- as/typeconv.c | 4 ++++ 4 files changed, 8 insertions(+), 2 deletions(-) (limited to 'as') diff --git a/as/genobj.c b/as/genobj.c index 588f41b..67eb88e 100644 --- a/as/genobj.c +++ b/as/genobj.c @@ -634,7 +634,7 @@ u32_T offset; char buf[sizeof offset]; u4c4(buf, offset); - writeobj(buf, sizeof buf); + writeobj(buf, 4); } /* write sized offset to object code buffer assuming ... */ diff --git a/as/keywords.c b/as/keywords.c index 0db0636..4151320 100644 --- a/as/keywords.c +++ b/as/keywords.c @@ -621,6 +621,7 @@ PUBLIC char page1ops[] = 3, 'L', 'T', 'R', GROUP6, 0x18, 5, 'M', 'O', 'V', 'S', 'X', MOVX, 0xBE, 5, 'M', 'O', 'V', 'Z', 'X', MOVX, 0xB6, + 5, 'R', 'D', 'M', 'S', 'R', INHER, 0x32, 4, 'S', 'E', 'T', 'A', SETCC, 0x97, 5, 'S', 'E', 'T', 'A', 'E', SETCC, 0x93, 4, 'S', 'E', 'T', 'B', SETCC, 0x92, @@ -661,6 +662,7 @@ PUBLIC char page1ops[] = 4, 'V', 'E', 'R', 'R', GROUP6, 0x20, 4, 'V', 'E', 'R', 'W', GROUP6, 0x28, 6, 'W', 'B', 'I', 'N', 'V', 'D', INHER, 0x09, + 5, 'W', 'R', 'M', 'S', 'R', INHER, 0x30, 4, 'X', 'A', 'D', 'D', ExGx, 0xC0, #endif /* I80386 */ diff --git a/as/table.c b/as/table.c index 3d39d0b..9c70015 100644 --- a/as/table.c +++ b/as/table.c @@ -129,7 +129,7 @@ PUBLIC struct sym_s *lookup() hashval ^= hconv(nameptr[-1]); } else - hashval = hconv(nameptr[-(length / 2)]) * MULTIPLIER, + hashval = hconv(symname[length-(length / 2)]) * MULTIPLIER, hashval ^= hconv(nameptr[-2]) << 2, hashval ^= hconv(nameptr[-1]); nameptr = symname; diff --git a/as/typeconv.c b/as/typeconv.c index d8c0c89..580f759 100644 --- a/as/typeconv.c +++ b/as/typeconv.c @@ -13,7 +13,9 @@ void xxerr P((char *)); void xxerr(x) char * x; { write(2, x, strlen(x)); } +#ifdef __AS386_16__ static int no_swap = 1; +#endif static int long_off[4] = {0,1,2,3}; static int int_off[2] = {0,1}; @@ -23,7 +25,9 @@ bool_pt big_endian; bool_pt long_big_endian; { int i; +#ifdef __AS386_16__ no_swap = (!big_endian && !long_big_endian); +#endif for(i=0; i<4; i++) long_off[i] = i; for(i=0; i<2; i++) int_off[i] = i; -- cgit v1.2.1