git-svn: trunk@4094
Tomasz Kojm authored on 2008/08/09 18:21:53... | ... |
@@ -19,6 +19,7 @@ |
19 | 19 |
*/ |
20 | 20 |
|
21 | 21 |
#include "disasmpriv.h" |
22 |
+#include "disasm.h" |
|
22 | 23 |
|
23 | 24 |
enum ADDRS { |
24 | 25 |
ADDR_REG_EAX, |
... | ... |
@@ -1184,6 +1185,8 @@ static void spam_x86(struct DISASMED *s, char *hr) { |
1184 | 1184 |
|
1185 | 1185 |
for (i=0; i<3; i++) { |
1186 | 1186 |
switch(s->args[i].access) { |
1187 |
+ case ACCESS_NOARG: |
|
1188 |
+ break; |
|
1187 | 1189 |
case ACCESS_IMM: |
1188 | 1190 |
sprintf(hr, "%s%s %x", hr, comma, s->args[i].arg.d); |
1189 | 1191 |
break; |
... | ... |
@@ -1237,7 +1240,7 @@ static void spam_x86(struct DISASMED *s, char *hr) { |
1237 | 1237 |
#define GETSIZE(X) (x86ops[table][s->table_op].X!=SIZE_WD?x86ops[table][s->table_op].X:((s->opsize)?SIZE_WORD:SIZE_DWORD)) |
1238 | 1238 |
|
1239 | 1239 |
|
1240 |
-uint8_t *disasm_x86(uint8_t *command, unsigned int len, struct DISASMED *s) { |
|
1240 |
+static uint8_t *disasm_x86(uint8_t *command, unsigned int len, struct DISASMED *s) { |
|
1241 | 1241 |
unsigned int reversed=0, i; |
1242 | 1242 |
uint8_t b; |
1243 | 1243 |
unsigned int table = 0; |
... | ... |
@@ -1277,7 +1280,7 @@ uint8_t *disasm_x86(uint8_t *command, unsigned int len, struct DISASMED *s) { |
1277 | 1277 |
uint8_t rop; |
1278 | 1278 |
uint8_t scale; |
1279 | 1279 |
uint8_t base; |
1280 |
- uint8_t index; |
|
1280 |
+ uint8_t idx; |
|
1281 | 1281 |
|
1282 | 1282 |
table = s->table_op - 0xd8; |
1283 | 1283 |
assert(table<8); |
... | ... |
@@ -1317,7 +1320,7 @@ uint8_t *disasm_x86(uint8_t *command, unsigned int len, struct DISASMED *s) { |
1317 | 1317 |
if (rm==4) { |
1318 | 1318 |
GETBYTE(base); |
1319 | 1319 |
scale=base>>6; |
1320 |
- index=(base>>3)&7; |
|
1320 |
+ idx=(base>>3)&7; |
|
1321 | 1321 |
base&=7; |
1322 | 1322 |
|
1323 | 1323 |
s->args[0].arg.marg.scale = 1<<scale; |
... | ... |
@@ -1325,7 +1328,7 @@ uint8_t *disasm_x86(uint8_t *command, unsigned int len, struct DISASMED *s) { |
1325 | 1325 |
s->args[0].arg.marg.r2=REG_INVALID; |
1326 | 1326 |
mod=2; |
1327 | 1327 |
} |
1328 |
- if((s->args[0].arg.marg.r1=mrm_regmap[SIZED][index])==REG_ESP) { |
|
1328 |
+ if((s->args[0].arg.marg.r1=mrm_regmap[SIZED][idx])==REG_ESP) { |
|
1329 | 1329 |
s->args[0].arg.marg.r1=s->args[0].arg.marg.r2; |
1330 | 1330 |
s->args[0].arg.marg.scale = (s->args[0].arg.marg.r2!=REG_INVALID); |
1331 | 1331 |
s->args[0].arg.marg.r2=REG_INVALID; |
... | ... |
@@ -1427,7 +1430,7 @@ uint8_t *disasm_x86(uint8_t *command, unsigned int len, struct DISASMED *s) { |
1427 | 1427 |
uint8_t rop; |
1428 | 1428 |
uint8_t scale; |
1429 | 1429 |
uint8_t base; |
1430 |
- uint8_t index; |
|
1430 |
+ uint8_t idx; |
|
1431 | 1431 |
int64_t shiftme=0; |
1432 | 1432 |
const uint8_t (*p)[8]; |
1433 | 1433 |
|
... | ... |
@@ -1500,7 +1503,7 @@ uint8_t *disasm_x86(uint8_t *command, unsigned int len, struct DISASMED *s) { |
1500 | 1500 |
if (rm==4) { |
1501 | 1501 |
GETBYTE(base); |
1502 | 1502 |
scale=base>>6; |
1503 |
- index=(base>>3)&7; |
|
1503 |
+ idx=(base>>3)&7; |
|
1504 | 1504 |
base&=7; |
1505 | 1505 |
|
1506 | 1506 |
s->args[reversed].arg.marg.scale = 1<<scale; |
... | ... |
@@ -1508,7 +1511,7 @@ uint8_t *disasm_x86(uint8_t *command, unsigned int len, struct DISASMED *s) { |
1508 | 1508 |
s->args[reversed].arg.marg.r2=REG_INVALID; |
1509 | 1509 |
mod=2; |
1510 | 1510 |
} |
1511 |
- if((s->args[reversed].arg.marg.r1=mrm_regmap[SIZED][index])==REG_ESP) { |
|
1511 |
+ if((s->args[reversed].arg.marg.r1=mrm_regmap[SIZED][idx])==REG_ESP) { |
|
1512 | 1512 |
s->args[reversed].arg.marg.r1=s->args[reversed].arg.marg.r2; |
1513 | 1513 |
s->args[reversed].arg.marg.scale = (s->args[reversed].arg.marg.r2!=REG_INVALID); |
1514 | 1514 |
s->args[reversed].arg.marg.r2=REG_INVALID; |
... | ... |
@@ -1695,7 +1698,7 @@ void disasmbuf(uint8_t *buff, unsigned int len, int fd) { |
1695 | 1695 |
len -= next-buff; |
1696 | 1696 |
buff=next; |
1697 | 1697 |
|
1698 |
- cli_writeint32(&w.real_op, s.real_op); |
|
1698 |
+ w.real_op = s.real_op; |
|
1699 | 1699 |
w.opsize = s.opsize; |
1700 | 1700 |
w.adsize = s.adsize; |
1701 | 1701 |
w.segment = s.segment; |