Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.21
 
1.22
 
MAIN:ragge:20050917075840
 
macdefs.h
_>142142 #define szty(t) (((t) == DOUBLE || (t) == FLOAT || \
 143143         (t) == LONGLONG || (t) == ULONGLONG) ? 2 : 1)
 144144 
<> 145+#ifdef SNH_REG
145146 /*
<> 147+ * The x86 has a bunch of register classes, most of them interfering
  148+ * with each other.
  149+ * Each class contains a number of registers, represented by bits in
  150+ * a bitmask.
  151+ */
  152+#define EAX     0       /* Scratch and return register */
  153+#define EDX     1       /* Scratch and secondary return register */
  154+#define ECX     2       /* Scratch (and shift count) register */
  155+#define EBX     3       /* GDT pointer or callee-saved temporary register */
  156+#define ESI     4       /* Callee-saved temporary register */
  157+#define EDI     5       /* Callee-saved temporary register */
  158+#define EBP     6       /* Frame pointer */
  159+#define ESP     7       /* Stack pointer */
  160+#define AREGS   (REGBIT(EAX)|REGBIT(EDX)|REGBIT(ECX)|REGBIT(ESI)| \
  161+        REGBIT(EDI)|REGBIT(EBX))
  162+#define TAREGS  (REGBIT(EAX)|REGBIT(EDX)|REGBIT(ECX))
  163+#define AL      0       /* Scratch and return register */
  164+#define AH      1       /* Scratch and secondary return register */
  165+#define DL      2       /* Scratch (and shift count) register */
  166+#define DH      3       /* Callee-saved temporary register */
  167+#define CL      4       /* Callee-saved temporary register */
  168+#define CH      5       /* GDT pointer or callee-saved temporary register */
  169+#define BL      6       /* Frame pointer */
  170+#define BH      7       /* Stack pointer */
  171+#define BREGS   (REGBIT(AL)|REGBIT(AH)|REGBIT(DL)|REGBIT(DH)| \
  172+        REGBIT(CL)|REGBIT(CH)|REGBIT(BL)|REGBIT(BH))
  173+#define TBREGS  (REGBIT(AL)|REGBIT(AH)|REGBIT(DL)|REGBIT(DH)| \
  174+        REGBIT(CL)|REGBIT(CH))
  175+#define AX      0       /* Scratch and return register */
  176+#define DX      1       /* Scratch and secondary return register */
  177+#define CX      2       /* Scratch (and shift count) register */
  178+#define BX      3       /* GDT pointer or callee-saved temporary register */
  179+#define SI      4       /* Callee-saved temporary register */
  180+#define DI      5       /* Callee-saved temporary register */
  181+#define BP      6       /* Frame pointer */
  182+#define SP      7       /* Stack pointer */
  183+#define CREGS   (REGBIT(AX)|REGBIT(DX)|REGBIT(CX)|REGBIT(SI)| \
  184+        REGBIT(DI)|REGBIT(BX))
  185+#define TCREGS  (REGBIT(AX)|REGBIT(DX)|REGBIT(CX))
  186+#define EAXEDX  0
  187+#define EAXECX  1
  188+#define EAXEBX  2
  189+#define EAXESI  3
  190+#define EAXEDI  4
  191+#define EDXECX  5
  192+#define EDXEBX  6
  193+#define EDXESI  7
  194+#define EDXEDI  8
  195+#define ECXEBX  9
  196+#define ECXESI  10
  197+#define ECXEDI  11
  198+#define EBXESI  12
  199+#define EBXEDI  13
  200+#define ESIEDI  14
  201+#define DREGS   (REGBIT(EAXEDX)|REGBIT(EAXECX)|REGBIT(EAXEBX)|REGBIT(EAXESI)| \
  202+        REGBIT(EAXEDI)|REGBIT(EDXECX)|REGBIT(EDXEBX)|REGBIT(EDXESI)| \
  203+        REGBIT(EDXEDI)|REGBIT(ECXEBX)|REGBIT(ECXESI)|REGBIT(ECXEDI)| \
  204+        REGBIT(EBXESI)|REGBIT(EBXEDI)|REGBIT(ESIEDI))
  205+#define TDREGS  (REGBIT(EAXEDX)|REGBIT(EAXECX)|REGBIT(EAXEBX)|REGBIT(EAXESI)| \
  206+        REGBIT(EAXEDI)|REGBIT(EDXECX)|REGBIT(EDXEBX)|REGBIT(EDXESI)| \
  207+        REGBIT(EDXEDI)|REGBIT(ECXEBX)|REGBIT(ECXESI)|REGBIT(ECXEDI))
  208+#define EREGS   0xff    /* float regs (currently not used) */
  209+
  210+#define PCLASS(p) (p->n_type <= UCHAR ? SBREG : p->n_type <= USHORT ? SCREG : \
  211+                  (p->n_type == LONGLONG || p->n_type == ULONGLONG ? SDREG : \
  212+                  (p->n_type >= FLOAT && p->n_type <= LDOUBLE ? SEREG : SAREG)))
  213+
  214+/* XXX - to die */
  215+#define MINRVAR ESI     /* first register variable */
  216+#define MAXRVAR EBX     /* last register variable */
  217+#define REGSZ   16      /* 8 "general" and 8 floating point regs */
  218+#define FPREG   EBP     /* frame pointer */
  219+#define STKREG  ESP     /* stack pointer */
  220+#define RETREG  EAX     /* Return (and switch) register */
  221+#define NREGREG (MAXRVAR-MINRVAR+1)
  222+#else
  223+/*
146224  * Register names.  These must match rnames[] and rstatus[] in local2.c.
 147225  * The crazy order of the registers are due to the current register
 148226  * allocations strategy and should be fixed.
     
 !
177255 #else
 178256 #define TBREGS  0
 179257 #endif
<> 258+#endif /* SNH_REG */
<_180259 
 181260 #define MYADDEDGE(x, t) if (t < INT) { AddEdge(x, ESI); AddEdge(x, EDI); }
 182261 #define MYREADER(p) myreader(p)
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-08-30 00:07 +0200