SOURCES: x86emu-update.patch - updated from xorg git (CPUID and BSWAP support)
qboosh
qboosh at pld-linux.org
Wed Jul 30 19:13:24 CEST 2008
Author: qboosh Date: Wed Jul 30 17:13:24 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- updated from xorg git (CPUID and BSWAP support)
---- Files affected:
SOURCES:
x86emu-update.patch (1.1 -> 1.2)
---- Diffs:
================================================================
Index: SOURCES/x86emu-update.patch
diff -u SOURCES/x86emu-update.patch:1.1 SOURCES/x86emu-update.patch:1.2
--- SOURCES/x86emu-update.patch:1.1 Sat Jan 26 21:11:26 2008
+++ SOURCES/x86emu-update.patch Wed Jul 30 19:13:18 2008
@@ -164,7 +164,7 @@
/*--------------------- type definitions -----------------------------------*/
--- x86emu-0.8/scitech/src/x86emu/x86emu/prim_ops.h.orig 2001-08-14 19:35:06.000000000 +0200
-+++ x86emu-0.8/scitech/src/x86emu/x86emu/prim_ops.h 2008-01-26 20:07:16.297319297 +0100
++++ x86emu-0.8/scitech/src/x86emu/x86emu/prim_ops.h 2008-07-30 19:07:20.617332179 +0200
@@ -39,8 +39,6 @@
#ifndef __X86EMU_PRIM_OPS_H
#define __X86EMU_PRIM_OPS_H
@@ -174,9 +174,11 @@
#ifdef __cplusplus
extern "C" { /* Use "C" linkage when in C++ mode */
#endif
-@@ -136,7 +134,7 @@ void push_long (u32 w);
+@@ -135,8 +133,9 @@
+ void push_long (u32 w);
u16 pop_word (void);
u32 pop_long (void);
++void cpuid (void);
-#if defined(__HAVE_INLINE_ASSEMBLER__) && !defined(PRIM_OPS_NO_REDEFINE_ASM)
+#if 0
@@ -2946,8 +2948,21 @@
case 3:
DECODE_PRINTF("CALL\tFAR ");
--- x86emu-0.8/scitech/src/x86emu/ops2.c.orig 2001-08-14 19:35:06.000000000 +0200
-+++ x86emu-0.8/scitech/src/x86emu/ops2.c 2008-01-26 20:43:42.049878237 +0100
-@@ -49,7 +49,7 @@ op1 - Instruction op code
++++ x86emu-0.8/scitech/src/x86emu/ops2.c 2008-07-30 19:09:31.329341398 +0200
+@@ -40,6 +40,12 @@
+
+ #include "x86emu/x86emui.h"
+
++#undef bswap_32
++#define bswap_32(x) (((x & 0xff000000) >> 24) | \
++ ((x & 0x00ff0000) >> 8) | \
++ ((x & 0x0000ff00) << 8) | \
++ ((x & 0x000000ff) << 24))
++
+ /*----------------------------- Implementation ----------------------------*/
+
+ /****************************************************************************
+@@ -49,7 +55,7 @@
REMARKS:
Handles illegal opcodes.
****************************************************************************/
@@ -2956,7 +2971,7 @@
u8 op2)
{
START_OF_INSTR();
-@@ -65,9 +65,43 @@ void x86emuOp2_illegal_op(
+@@ -65,9 +71,43 @@
/****************************************************************************
REMARKS:
@@ -3001,7 +3016,7 @@
{
s32 target;
char *name = 0;
-@@ -130,7 +164,7 @@ void x86emuOp2_long_jump(u8 op2)
+@@ -130,7 +170,7 @@
break;
case 0x8d:
name = "JNL\t";
@@ -3010,7 +3025,7 @@
break;
case 0x8e:
name = "JLE\t";
-@@ -158,7 +192,7 @@ void x86emuOp2_long_jump(u8 op2)
+@@ -158,7 +198,7 @@
REMARKS:
Handles opcode 0x0f,0x90-0x9F
****************************************************************************/
@@ -3019,7 +3034,7 @@
{
int mod, rl, rh;
uint destoffset;
-@@ -267,7 +301,7 @@ void x86emuOp2_set_byte(u8 op2)
+@@ -267,7 +307,7 @@
REMARKS:
Handles opcode 0x0f,0xa0
****************************************************************************/
@@ -3028,7 +3043,7 @@
{
START_OF_INSTR();
DECODE_PRINTF("PUSH\tFS\n");
-@@ -281,7 +315,7 @@ void x86emuOp2_push_FS(u8 X86EMU_UNUSED(
+@@ -281,7 +321,7 @@
REMARKS:
Handles opcode 0x0f,0xa1
****************************************************************************/
@@ -3037,7 +3052,24 @@
{
START_OF_INSTR();
DECODE_PRINTF("POP\tFS\n");
-@@ -295,7 +329,7 @@ void x86emuOp2_pop_FS(u8 X86EMU_UNUSED(o
+@@ -292,10 +332,24 @@
+ }
+
+ /****************************************************************************
++REMARKS: CPUID takes EAX/ECX as inputs, writes EAX/EBX/ECX/EDX as output
++Handles opcode 0x0f,0xa2
++****************************************************************************/
++static void x86emuOp2_cpuid(u8 X86EMU_UNUSED(op2))
++{
++ START_OF_INSTR();
++ DECODE_PRINTF("CPUID\n");
++ TRACE_AND_STEP();
++ cpuid();
++ DECODE_CLEAR_SEGOVR();
++ END_OF_INSTR();
++}
++
++/****************************************************************************
REMARKS:
Handles opcode 0x0f,0xa3
****************************************************************************/
@@ -3046,7 +3078,7 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -416,7 +450,7 @@ void x86emuOp2_bt_R(u8 X86EMU_UNUSED(op2
+@@ -416,7 +470,7 @@
REMARKS:
Handles opcode 0x0f,0xa4
****************************************************************************/
@@ -3055,7 +3087,7 @@
{
int mod, rl, rh;
uint destoffset;
-@@ -553,7 +587,7 @@ void x86emuOp2_shld_IMM(u8 X86EMU_UNUSED
+@@ -553,7 +607,7 @@
REMARKS:
Handles opcode 0x0f,0xa5
****************************************************************************/
@@ -3064,7 +3096,7 @@
{
int mod, rl, rh;
uint destoffset;
-@@ -673,7 +707,7 @@ void x86emuOp2_shld_CL(u8 X86EMU_UNUSED(
+@@ -673,7 +727,7 @@
REMARKS:
Handles opcode 0x0f,0xa8
****************************************************************************/
@@ -3073,7 +3105,7 @@
{
START_OF_INSTR();
DECODE_PRINTF("PUSH\tGS\n");
-@@ -687,7 +721,7 @@ void x86emuOp2_push_GS(u8 X86EMU_UNUSED(
+@@ -687,7 +741,7 @@
REMARKS:
Handles opcode 0x0f,0xa9
****************************************************************************/
@@ -3082,7 +3114,7 @@
{
START_OF_INSTR();
DECODE_PRINTF("POP\tGS\n");
-@@ -699,9 +733,9 @@ void x86emuOp2_pop_GS(u8 X86EMU_UNUSED(o
+@@ -699,9 +753,9 @@
/****************************************************************************
REMARKS:
@@ -3094,7 +3126,7 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -840,7 +874,7 @@ void x86emuOp2_bts_R(u8 X86EMU_UNUSED(op
+@@ -840,7 +894,7 @@
REMARKS:
Handles opcode 0x0f,0xac
****************************************************************************/
@@ -3103,7 +3135,7 @@
{
int mod, rl, rh;
uint destoffset;
-@@ -977,7 +1011,7 @@ void x86emuOp2_shrd_IMM(u8 X86EMU_UNUSED
+@@ -977,7 +1031,7 @@
REMARKS:
Handles opcode 0x0f,0xad
****************************************************************************/
@@ -3112,7 +3144,7 @@
{
int mod, rl, rh;
uint destoffset;
-@@ -1097,7 +1131,7 @@ void x86emuOp2_shrd_CL(u8 X86EMU_UNUSED(
+@@ -1097,7 +1151,7 @@
REMARKS:
Handles opcode 0x0f,0xaf
****************************************************************************/
@@ -3121,7 +3153,7 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -1274,7 +1308,7 @@ void x86emuOp2_imul_R_RM(u8 X86EMU_UNUSE
+@@ -1274,7 +1328,7 @@
REMARKS:
Handles opcode 0x0f,0xb2
****************************************************************************/
@@ -3130,7 +3162,7 @@
{
int mod, rh, rl;
u16 *dstreg;
-@@ -1323,7 +1357,7 @@ void x86emuOp2_lss_R_IMM(u8 X86EMU_UNUSE
+@@ -1323,7 +1377,7 @@
REMARKS:
Handles opcode 0x0f,0xb3
****************************************************************************/
@@ -3139,7 +3171,7 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -1462,7 +1496,7 @@ void x86emuOp2_btr_R(u8 X86EMU_UNUSED(op
+@@ -1462,7 +1516,7 @@
REMARKS:
Handles opcode 0x0f,0xb4
****************************************************************************/
@@ -3148,7 +3180,7 @@
{
int mod, rh, rl;
u16 *dstreg;
-@@ -1511,7 +1545,7 @@ void x86emuOp2_lfs_R_IMM(u8 X86EMU_UNUSE
+@@ -1511,7 +1565,7 @@
REMARKS:
Handles opcode 0x0f,0xb5
****************************************************************************/
@@ -3157,7 +3189,7 @@
{
int mod, rh, rl;
u16 *dstreg;
-@@ -1560,7 +1594,7 @@ void x86emuOp2_lgs_R_IMM(u8 X86EMU_UNUSE
+@@ -1560,7 +1614,7 @@
REMARKS:
Handles opcode 0x0f,0xb6
****************************************************************************/
@@ -3166,7 +3198,7 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -1676,7 +1710,7 @@ void x86emuOp2_movzx_byte_R_RM(u8 X86EMU
+@@ -1676,7 +1730,7 @@
REMARKS:
Handles opcode 0x0f,0xb7
****************************************************************************/
@@ -3175,7 +3207,7 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -1732,7 +1766,7 @@ void x86emuOp2_movzx_word_R_RM(u8 X86EMU
+@@ -1732,7 +1786,7 @@
REMARKS:
Handles opcode 0x0f,0xba
****************************************************************************/
@@ -3184,7 +3216,7 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -1741,16 +1775,16 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1741,16 +1795,16 @@
START_OF_INSTR();
FETCH_DECODE_MODRM(mod, rh, rl);
switch (rh) {
@@ -3205,7 +3237,7 @@
DECODE_PRINTF("BTC\t");
break;
default:
-@@ -1775,13 +1809,13 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1775,13 +1829,13 @@
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
@@ -3222,7 +3254,7 @@
store_data_long(srcoffset, srcval ^ mask);
break;
default:
-@@ -1800,13 +1834,13 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1800,13 +1854,13 @@
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
@@ -3239,7 +3271,7 @@
store_data_word(srcoffset, srcval ^ mask);
break;
default:
-@@ -1828,13 +1862,13 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1828,13 +1882,13 @@
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
@@ -3256,7 +3288,7 @@
store_data_long(srcoffset, srcval ^ mask);
break;
default:
-@@ -1853,13 +1887,13 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1853,13 +1907,13 @@
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
@@ -3273,7 +3305,7 @@
store_data_word(srcoffset, srcval ^ mask);
break;
default:
-@@ -1881,13 +1915,13 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1881,13 +1935,13 @@
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
@@ -3290,7 +3322,7 @@
store_data_long(srcoffset, srcval ^ mask);
break;
default:
-@@ -1906,13 +1940,13 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1906,13 +1960,13 @@
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
@@ -3307,7 +3339,7 @@
store_data_word(srcoffset, srcval ^ mask);
break;
default:
-@@ -1934,13 +1968,13 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1934,13 +1988,13 @@
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
switch (rh) {
@@ -3324,7 +3356,7 @@
*srcreg ^= mask;
break;
default:
-@@ -1959,13 +1993,13 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1959,13 +2013,13 @@
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
switch (rh) {
@@ -3341,7 +3373,7 @@
*srcreg ^= mask;
break;
default:
-@@ -1982,7 +2016,7 @@ void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op
+@@ -1982,7 +2036,7 @@
REMARKS:
Handles opcode 0x0f,0xbb
****************************************************************************/
@@ -3350,7 +3382,7 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -2121,7 +2155,7 @@ void x86emuOp2_btc_R(u8 X86EMU_UNUSED(op
+@@ -2121,13 +2175,13 @@
REMARKS:
Handles opcode 0x0f,0xbc
****************************************************************************/
@@ -3359,7 +3391,14 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -2207,25 +2241,25 @@ void x86emuOp2_bsf(u8 X86EMU_UNUSED(op2)
+
+ START_OF_INSTR();
+- DECODE_PRINTF("BSF\n");
++ DECODE_PRINTF("BSF\t");
+ FETCH_DECODE_MODRM(mod, rh, rl);
+ switch(mod) {
+ case 0:
+@@ -2207,25 +2261,25 @@
break;
case 3: /* register to register */
if (M.x86.mode & SYSMODE_PREFIX_DATA) {
@@ -3393,7 +3432,7 @@
}
break;
}
-@@ -2237,13 +2271,13 @@ void x86emuOp2_bsf(u8 X86EMU_UNUSED(op2)
+@@ -2237,13 +2291,13 @@
REMARKS:
Handles opcode 0x0f,0xbd
****************************************************************************/
@@ -3409,7 +3448,7 @@
FETCH_DECODE_MODRM(mod, rh, rl);
switch(mod) {
case 0:
-@@ -2323,25 +2357,25 @@ void x86emuOp2_bsr(u8 X86EMU_UNUSED(op2)
+@@ -2323,25 +2377,25 @@
break;
case 3: /* register to register */
if (M.x86.mode & SYSMODE_PREFIX_DATA) {
@@ -3443,7 +3482,7 @@
}
break;
}
-@@ -2353,7 +2387,7 @@ void x86emuOp2_bsr(u8 X86EMU_UNUSED(op2)
+@@ -2353,7 +2407,7 @@
REMARKS:
Handles opcode 0x0f,0xbe
****************************************************************************/
@@ -3452,7 +3491,7 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -2469,7 +2503,7 @@ void x86emuOp2_movsx_byte_R_RM(u8 X86EMU
+@@ -2469,7 +2523,7 @@
REMARKS:
Handles opcode 0x0f,0xbf
****************************************************************************/
@@ -3461,7 +3500,55 @@
{
int mod, rl, rh;
uint srcoffset;
-@@ -2578,7 +2612,7 @@ void (*x86emu_optab2[256])(u8) =
+@@ -2521,6 +2575,47 @@
+ END_OF_INSTR();
+ }
+
++/* Handles opcodes 0xc8-0xcf */
++static void x86emuOp2_bswap(u8 X86EMU_UNUSED(op2))
++{
++ START_OF_INSTR();
++ DECODE_PRINTF("BSWAP\n");
++ TRACE_AND_STEP();
++
++ switch (op2) {
++ case 0xc8:
++ M.x86.R_EAX = bswap_32(M.x86.R_EAX);
++ break;
++ case 0xc9:
++ M.x86.R_ECX = bswap_32(M.x86.R_ECX);
++ break;
++ case 0xca:
++ M.x86.R_EDX = bswap_32(M.x86.R_EDX);
++ break;
++ case 0xcb:
++ M.x86.R_EBX = bswap_32(M.x86.R_EBX);
++ break;
++ case 0xcc:
++ M.x86.R_ESP = bswap_32(M.x86.R_ESP);
++ break;
++ case 0xcd:
++ M.x86.R_EBP = bswap_32(M.x86.R_EBP);
++ break;
++ case 0xce:
++ M.x86.R_ESI = bswap_32(M.x86.R_ESI);
++ break;
++ case 0xcf:
++ M.x86.R_EDI = bswap_32(M.x86.R_EDI);
++ break;
++ default:
++ /* can't happen */
++ break;
++ }
++
++ DECODE_CLEAR_SEGOVR();
++ END_OF_INSTR();
++}
++
+ /***************************************************************************
+ * Double byte operation code table:
+ **************************************************************************/
+@@ -2578,7 +2673,7 @@
/* 0x2f */ x86emuOp2_illegal_op,
/* 0x30 */ x86emuOp2_illegal_op,
@@ -3470,7 +3557,16 @@
/* 0x32 */ x86emuOp2_illegal_op,
/* 0x33 */ x86emuOp2_illegal_op,
/* 0x34 */ x86emuOp2_illegal_op,
-@@ -2707,7 +2741,7 @@ void (*x86emu_optab2[256])(u8) =
+@@ -2698,7 +2793,7 @@
+
+ /* 0xa0 */ x86emuOp2_push_FS,
+ /* 0xa1 */ x86emuOp2_pop_FS,
+-/* 0xa2 */ x86emuOp2_illegal_op,
++/* 0xa2 */ x86emuOp2_cpuid,
+ /* 0xa3 */ x86emuOp2_bt_R,
+ /* 0xa4 */ x86emuOp2_shld_IMM,
+ /* 0xa5 */ x86emuOp2_shld_CL,
+@@ -2707,7 +2802,7 @@
/* 0xa8 */ x86emuOp2_push_GS,
/* 0xa9 */ x86emuOp2_pop_GS,
/* 0xaa */ x86emuOp2_illegal_op,
@@ -3479,9 +3575,32 @@
/* 0xac */ x86emuOp2_shrd_IMM,
/* 0xad */ x86emuOp2_shrd_CL,
/* 0xae */ x86emuOp2_illegal_op,
+@@ -2738,14 +2833,14 @@
+ /* 0xc5 */ x86emuOp2_illegal_op,
+ /* 0xc6 */ x86emuOp2_illegal_op,
+ /* 0xc7 */ x86emuOp2_illegal_op,
+-/* 0xc8 */ x86emuOp2_illegal_op, /* TODO: bswap */
+-/* 0xc9 */ x86emuOp2_illegal_op, /* TODO: bswap */
+-/* 0xca */ x86emuOp2_illegal_op, /* TODO: bswap */
+-/* 0xcb */ x86emuOp2_illegal_op, /* TODO: bswap */
+-/* 0xcc */ x86emuOp2_illegal_op, /* TODO: bswap */
+-/* 0xcd */ x86emuOp2_illegal_op, /* TODO: bswap */
+-/* 0xce */ x86emuOp2_illegal_op, /* TODO: bswap */
+-/* 0xcf */ x86emuOp2_illegal_op, /* TODO: bswap */
++/* 0xc8 */ x86emuOp2_bswap,
++/* 0xc9 */ x86emuOp2_bswap,
++/* 0xca */ x86emuOp2_bswap,
++/* 0xcb */ x86emuOp2_bswap,
++/* 0xcc */ x86emuOp2_bswap,
++/* 0xcd */ x86emuOp2_bswap,
++/* 0xce */ x86emuOp2_bswap,
++/* 0xcf */ x86emuOp2_bswap,
+
+ /* 0xd0 */ x86emuOp2_illegal_op,
+ /* 0xd1 */ x86emuOp2_illegal_op,
--- x86emu-0.8/scitech/src/x86emu/prim_ops.c.orig 2001-08-14 19:35:06.000000000 +0200
-+++ x86emu-0.8/scitech/src/x86emu/prim_ops.c 2008-01-26 20:44:41.713278260 +0100
-@@ -97,13 +97,13 @@
++++ x86emu-0.8/scitech/src/x86emu/prim_ops.c 2008-07-30 19:06:43.545332179 +0200
+@@ -97,12 +97,18 @@
*
****************************************************************************/
@@ -3490,14 +3609,19 @@
#define PRIM_OPS_NO_REDEFINE_ASM
#include "x86emu/x86emui.h"
- /*------------------------- Global Variables ------------------------------*/
+-/*------------------------- Global Variables ------------------------------*/
++#if defined(__GNUC__)
++# if defined (__i386__) || defined(__i386) || defined(__AMD64__) || defined(__x86_64__) || defined(__amd64__)
++# include "x86emu/prim_x86_gcc.h"
++# endif
++#endif
-#ifndef __HAVE_INLINE_ASSEMBLER__
--
++/*------------------------- Global Variables ------------------------------*/
+
static u32 x86emu_parity_tab[8] =
{
- 0x96696996,
-@@ -116,15 +116,11 @@ static u32 x86emu_parity_tab[8] =
+@@ -116,15 +122,11 @@
0x69969669,
};
@@ -3513,7 +3637,7 @@
/****************************************************************************
REMARKS:
Implements the AAA instruction and side effects.
-@@ -2086,7 +2082,7 @@ Implements the IMUL instruction and side
+@@ -2086,7 +2088,7 @@
void imul_long_direct(u32 *res_lo, u32* res_hi,u32 d, u32 s)
{
#ifdef __HAS_LONG_LONG__
@@ -3522,7 +3646,7 @@
*res_lo = (u32)res;
*res_hi = (u32)(res >> 32);
-@@ -2178,7 +2174,7 @@ Implements the MUL instruction and side
+@@ -2178,7 +2180,7 @@
void mul_long(u32 s)
{
#ifdef __HAS_LONG_LONG__
@@ -3531,7 +3655,7 @@
M.x86.R_EAX = (u32)res;
M.x86.R_EDX = (u32)(res >> 32);
-@@ -2454,8 +2450,6 @@ void div_long(u32 s)
+@@ -2454,8 +2456,6 @@
M.x86.R_EDX = (u32)mod;
}
@@ -3540,11 +3664,71 @@
/****************************************************************************
REMARKS:
Implements the IN string instruction and side effects.
-@@ -2660,7 +2654,7 @@ DB( if (CHECK_SP_ACCESS())
+@@ -2660,7 +2660,67 @@
return res;
}
-#ifdef __HAVE_INLINE_ASSEMBLER__
++/****************************************************************************
++REMARKS:
++CPUID takes EAX/ECX as inputs, writes EAX/EBX/ECX/EDX as output
++****************************************************************************/
++void cpuid (void)
++{
++ u32 feature = M.x86.R_EAX;
++
++#ifdef X86EMU_HAS_HW_CPUID
++ /* If the platform allows it, we will base our values on the real
++ * results from the CPUID instruction. We limit support to the
++ * first two features, and the results of those are sanitized.
++ */
++ if (feature <= 1)
++ hw_cpuid(&M.x86.R_EAX, &M.x86.R_EBX, &M.x86.R_ECX, &M.x86.R_EDX);
++#endif
++
++ switch (feature) {
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/x86emu-update.patch?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list