/[dynamips]/trunk/x86-codegen.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/x86-codegen.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

upstream/dynamips-0.2.6-RC4/x86-codegen.h revision 5 by dpavlin, Sat Oct 6 16:08:03 2007 UTC upstream/dynamips-0.2.7-RC3/x86-codegen.h revision 9 by dpavlin, Sat Oct 6 16:26:06 2007 UTC
# Line 359  typedef union { Line 359  typedef union {
359                  *(inst)++ = 0xcc;       \                  *(inst)++ = 0xcc;       \
360          } while (0)          } while (0)
361    
362    #define x86_clc(inst) do { *(inst)++ =(unsigned char)0xf8; } while (0)
363  #define x86_cld(inst) do { *(inst)++ =(unsigned char)0xfc; } while (0)  #define x86_cld(inst) do { *(inst)++ =(unsigned char)0xfc; } while (0)
364  #define x86_stosb(inst) do { *(inst)++ =(unsigned char)0xaa; } while (0)  #define x86_stosb(inst) do { *(inst)++ =(unsigned char)0xaa; } while (0)
365  #define x86_stosl(inst) do { *(inst)++ =(unsigned char)0xab; } while (0)  #define x86_stosl(inst) do { *(inst)++ =(unsigned char)0xab; } while (0)
# Line 1036  typedef union { Line 1037  typedef union {
1037  #define x86_widen_reg(inst,dreg,reg,is_signed,is_half)  \  #define x86_widen_reg(inst,dreg,reg,is_signed,is_half)  \
1038          do {    \          do {    \
1039                  unsigned char op = 0xb6;        \                  unsigned char op = 0xb6;        \
1040                  g_assert (is_half ||  X86_IS_BYTE_REG (reg)); \                  assert (is_half ||  X86_IS_BYTE_REG (reg)); \
1041                  *(inst)++ = (unsigned char)0x0f;        \                  *(inst)++ = (unsigned char)0x0f;        \
1042                  if ((is_signed)) op += 0x08;    \                  if ((is_signed)) op += 0x08;    \
1043                  if ((is_half)) op += 0x01;      \                  if ((is_half)) op += 0x01;      \
# Line 1074  typedef union { Line 1075  typedef union {
1075                  x86_memindex_emit ((inst), (dreg), (basereg), (disp), (indexreg), (shift));     \                  x86_memindex_emit ((inst), (dreg), (basereg), (disp), (indexreg), (shift));     \
1076          } while (0)          } while (0)
1077    
1078    #define x86_lahf(inst)  do { *(inst)++ = (unsigned char)0x9f; } while (0)
1079    #define x86_sahf(inst)  do { *(inst)++ = (unsigned char)0x9e; } while (0)
1080    #define x86_xchg_ah_al(inst) \
1081           do { \
1082                    *(inst)++ = (unsigned char)0x86; \
1083                    *(inst)++ = (unsigned char)0xe0; \
1084           } while (0)
1085    
1086    
1087  #define x86_cdq(inst)  do { *(inst)++ = (unsigned char)0x99; } while (0)  #define x86_cdq(inst)  do { *(inst)++ = (unsigned char)0x99; } while (0)
1088  #define x86_wait(inst) do { *(inst)++ = (unsigned char)0x9b; } while (0)  #define x86_wait(inst) do { *(inst)++ = (unsigned char)0x9b; } while (0)
1089    
# Line 1529  typedef union { Line 1539  typedef union {
1539    
1540  #define x86_set_reg(inst,cond,reg,is_signed)    \  #define x86_set_reg(inst,cond,reg,is_signed)    \
1541          do {    \          do {    \
1542                  g_assert (X86_IS_BYTE_REG (reg)); \                  assert (X86_IS_BYTE_REG (reg)); \
1543                  *(inst)++ = (unsigned char)0x0f;        \                  *(inst)++ = (unsigned char)0x0f;        \
1544                  if ((is_signed))        \                  if ((is_signed))        \
1545                          *(inst)++ = x86_cc_signed_map [(cond)] + 0x20;  \                          *(inst)++ = x86_cc_signed_map [(cond)] + 0x20;  \

Legend:
Removed from v.5  
changed lines
  Added in v.9

  ViewVC Help
Powered by ViewVC 1.1.26