Date: Wed, 30 Mar 2005 22:21:22 GMT From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 74130 for review Message-ID: <200503302221.j2UMLMQi071140@repoman.freebsd.org>
index | next in thread | raw e-mail
http://perforce.freebsd.org/chv.cgi?CH=74130 Change 74130 by peter@peter_daintree on 2005/03/30 22:21:12 Add an explicit forced long override for use by the source arg for movslq Add the cmovCC family Affected files ... .. //depot/projects/hammer/sys/amd64/amd64/db_disasm.c#7 edit Differences ... ==== //depot/projects/hammer/sys/amd64/amd64/db_disasm.c#7 (text+ko) ==== @@ -110,9 +110,10 @@ #define STI 32 /* FP stack */ #define X 33 /* extended FP op */ #define XA 34 /* for 'fstcw %ax' */ -#define El 35 /* address, long size */ +#define El 35 /* address, long/quad size */ #define Ril 36 /* long register in instruction */ #define Iba 37 /* byte immediate, don't print if 0xa */ +#define EL 38 /* address, explicitly long size */ struct inst { const char * i_name; /* name */ @@ -238,6 +239,26 @@ /*3f*/ { "", FALSE, NONE, 0, 0 }, }; +static const struct inst db_inst_0f4x[] = { +/*40*/ { "cmovo", TRUE, NONE, op2(E, R), 0 }, +/*41*/ { "cmovno", TRUE, NONE, op2(E, R), 0 }, +/*42*/ { "cmovb", TRUE, NONE, op2(E, R), 0 }, +/*43*/ { "cmovnb", TRUE, NONE, op2(E, R), 0 }, +/*44*/ { "cmovz", TRUE, NONE, op2(E, R), 0 }, +/*45*/ { "cmovnz", TRUE, NONE, op2(E, R), 0 }, +/*46*/ { "cmovbe", TRUE, NONE, op2(E, R), 0 }, +/*47*/ { "cmovnbe",TRUE, NONE, op2(E, R), 0 }, + +/*48*/ { "cmovs", TRUE, NONE, op2(E, R), 0 }, +/*49*/ { "cmovns", TRUE, NONE, op2(E, R), 0 }, +/*4a*/ { "cmovp", TRUE, NONE, op2(E, R), 0 }, +/*4b*/ { "cmovnp", TRUE, NONE, op2(E, R), 0 }, +/*4c*/ { "cmovl", TRUE, NONE, op2(E, R), 0 }, +/*4d*/ { "cmovnl", TRUE, NONE, op2(E, R), 0 }, +/*4e*/ { "cmovle", TRUE, NONE, op2(E, R), 0 }, +/*4f*/ { "cmovnle",TRUE, NONE, op2(E, R), 0 }, +}; + static const struct inst db_inst_0f8x[] = { /*80*/ { "jo", FALSE, NONE, op1(Dl), 0 }, /*81*/ { "jno", FALSE, NONE, op1(Dl), 0 }, @@ -342,6 +363,7 @@ 0, db_inst_0f2x, db_inst_0f3x, + db_inst_0f4x, 0, 0, 0, @@ -649,7 +671,7 @@ /*60*/ { "pusha", FALSE, LONG, 0, 0 }, /*61*/ { "popa", FALSE, LONG, 0, 0 }, /*62*/ { "bound", TRUE, LONG, op2(E, R), 0 }, -/*63*/ { "movslq", TRUE, NONE, op2(E,R), 0 }, +/*63*/ { "movslq", TRUE, NONE, op2(EL,R), 0 }, /*64*/ { "", FALSE, NONE, 0, 0 }, /*65*/ { "", FALSE, NONE, 0, 0 }, @@ -1160,7 +1182,7 @@ seg = 0; #ifndef _KERNEL -printf("0x%08x: "); +printf("0x%08x: ", loc); #endif /* * Get prefixes @@ -1328,6 +1350,11 @@ db_print_address(seg, (rex & REX_W) ? QUAD : LONG, rex, &address); break; + case EL: + M("[EL]"); + db_print_address(seg, LONG, 0, &address); + break; + case Ew: M("[Ew]"); db_print_address(seg, WORD, rex, &address);help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503302221.j2UMLMQi071140>
