diff options
author | Robert de Bath <rdebath@poboxes.com> | 2003-01-29 21:07:56 +0100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2013-10-23 23:48:48 +0200 |
commit | ded00c0d1c0dc38e63b2c48ff8cbb12c1b60c70f (patch) | |
tree | d453e3353975e51525ef0a9b08e751ebc5ff9c29 /as | |
parent | b5790e52270b149e92531a8eb0cd521ff2854dff (diff) | |
download | dev86-ded00c0d1c0dc38e63b2c48ff8cbb12c1b60c70f.tar.gz |
Import Dev86src-0.16.11.tar.gzv0.16.11
Diffstat (limited to 'as')
-rw-r--r-- | as/genobj.c | 2 | ||||
-rw-r--r-- | as/keywords.c | 2 | ||||
-rw-r--r-- | as/table.c | 2 | ||||
-rw-r--r-- | as/typeconv.c | 4 |
4 files changed, 8 insertions, 2 deletions
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 */ @@ -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; |