summaryrefslogtreecommitdiff
path: root/as
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>2003-01-29 21:07:56 +0100
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:48:48 +0200
commitded00c0d1c0dc38e63b2c48ff8cbb12c1b60c70f (patch)
treed453e3353975e51525ef0a9b08e751ebc5ff9c29 /as
parentb5790e52270b149e92531a8eb0cd521ff2854dff (diff)
downloaddev86-ded00c0d1c0dc38e63b2c48ff8cbb12c1b60c70f.tar.gz
Import Dev86src-0.16.11.tar.gzv0.16.11
Diffstat (limited to 'as')
-rw-r--r--as/genobj.c2
-rw-r--r--as/keywords.c2
-rw-r--r--as/table.c2
-rw-r--r--as/typeconv.c4
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 */
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;