Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.48
 
1.49
 
MAIN:ragge:20050917075840
 
table.c
_>3636 # define TUWORD TUNSIGNED|TULONG
 3737 # define TSWORD TINT|TLONG
 3838 # define TWORD TUWORD|TSWORD
<> 39+#define  SHLL   SDREG   /* shape for long long */
  40+#define  SHCH   SBREG   /* chape for char */
  41+#define  SHSH   SCREG   /* short */
  42+#define  SHFL   SEREG   /* shape for float/double */
3943 
 4044 struct optab table[] = {
 4145 /* First entry must be an empty entry */
     
 !
4751 
 4852 /* convert pointers to int. */
 4953 { SCONV,        INTAREG,
<>50 -        STAREGTPOINT|TWORD,
  54+        SAREG,  TPOINT|TWORD,
5155         SANY,   TWORD,
 5256                 0,      RLEFT,
 5357                 "", },
 5458 
 5559 /* convert (u)longlong to (u)longlong. */
 5660 { SCONV,        INTAREG,
<>57 -        SAREG|STAREG,   TLL,
 58 -        SAREG|STAREG,   TLL,
  61+        SAREG,  TLL,
  62+        SAREG,  TLL,
5963                 0,      RLEFT,
 6064                 "", },
 6165 
 6266 /* convert (u)char to (u)char. */
 6367 { SCONV,        INTAREG,
<>64 -        SAREG|STAREG,   TCHAR|TUCHAR,
 65 -        SAREG|STAREG,   TCHAR|TUCHAR,
  68+        SAREG,  TCHAR|TUCHAR,
  69+        SAREG,  TCHAR|TUCHAR,
6670                 0,      RLEFT,
 6771                 "", },
 6872 
 6973 
 7074 /* convert int to short/char. This is done when register is loaded */
 7175 { SCONV,        INTAREG,
<>72 -        STAREGTWORD,
  76+        SAREG,  TWORD,
7377         SANY,   TSHORT|TUSHORT|TCHAR|TUCHAR|TWORD,
 7478                 0,      RLEFT,
 7579                 "", },
 7680 
 7781 /* convert short to char. This is done when register is loaded */
 7882 { SCONV,        INTAREG,
<>79 -        SAREG|STAREG,   TSHORT|TUSHORT,
 80 -        STAREG,         TCHAR|TUCHAR,
  83+        SAREG,  TSHORT|TUSHORT,
  84+        SAREG,  TCHAR|TUCHAR,
8185                 0,      RLEFT,
 8286                 "", },
 8387 
 8488 /* convert signed char to int (or pointer). */
 8589 { SCONV,        INTAREG,
<>86 -        SAREG|STAREG|SOREG|SNAME,       TCHAR,
 87 -        SAREG|STAREG,   TWORD|TPOINT,
  90+        SAREG|SOREG|SNAME,      TCHAR,
  91+        SAREG,  TWORD|TPOINT,
8892                 NASL|NAREG,     RESC1,
 8993                 "       movsbl ZL,A1\n", },
 9094 
 9195 /* convert char to short. */
 9296 { SCONV,        INTAREG,
<>93 -        SAREG|STAREG,   TCHAR,
 94 -        SAREG|STAREG,   TSHORT,
  97+        SAREG,  TCHAR,
  98+        SAREG,  TSHORT,
9599                 NASL|NAREG,     RESC1,
 96100                 "       movsbw ZL,Z1\n", },
 97101 
 98102 /* convert char to unsigned short. */
 99103 { SCONV,        INTAREG,
<>100 -        SAREG|STAREG|SOREG|SNAME,       TCHAR,
 101 -        SAREG|STAREG,   TUSHORT,
  104+        SAREG|SOREG|SNAME,      TCHAR,
  105+        SAREG,  TUSHORT,
102106                 NASL|NAREG,     RESC1,
 103107                 "       movsbw ZL,Z1\n", },
 104108 
 105109 /* convert unsigned char to (u)int. */
 106110 { SCONV,        INTAREG,
<>107 -        SAREG|STAREG|SOREG|SNAME,       TUCHAR,
 108 -        SAREG|STAREG,   TWORD,
  111+        SAREG|SOREG|SNAME,      TUCHAR,
  112+        SAREG,  TWORD,
109113                 NASL|NAREG,     RESC1,
 110114                 "       movzbl ZL,A1\n", },
 111115 
 112116 /* convert short to (u)int. */
 113117 { SCONV,        INTAREG,
<>114 -        SAREG|STAREG|SOREG|SNAME,       TSHORT,
 115 -        SAREG|STAREG,   TWORD,
  118+        SAREG|SOREG|SNAME,      TSHORT,
  119+        SAREG,  TWORD,
116120                 NASL|NAREG,     RESC1,
 117121                 "       movswl ZL,A1\n", },
 118122 
 119123 /* convert float/double (in register) to (unsigned) long long */
 120124 /* XXX - unsigned is not handled correct */
 121125 { SCONV,        INTAREG,
<>122 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
 123 -        SAREG|STAREG,   TLONGLONG|TULONGLONG,
  126+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
  127+        SAREG,  TLONGLONG|TULONGLONG,
124128                 NAREG,  RESC1,
 125129                 "       subl $8,%esp\n  fistpq (%esp)\n"
 126130                 "       popl AL\n       popl UL\n", },
 127131 
 128132 /* convert float/double to (u) int/short/char. XXX should use NTEMP here */
 129133 { SCONV,        INTAREG,
<>130 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
 131 -        SAREG|STAREG,   TWORD|TSHORT|TUSHORT|TCHAR|TUCHAR,
  134+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
  135+        SAREG,  TWORD|TSHORT|TUSHORT|TCHAR|TUCHAR,
132136                 NAREG,  RESC1,
 133137                 "       subl $4,%esp\n  fistpl (%esp)\n popl A1\n", },
 134138 
 135139 /* convert double <-> float. nothing to do here */
 136140 { SCONV,        INTBREG,
<>137 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
 138 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  141+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
  142+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
139143                 0,      RLEFT,
 140144                 "", },
 141145 
 142146 /* convert unsigned short to (u)int. */
 143147 { SCONV,        INTAREG,
<>144 -        SAREG|STAREG|SOREG|SNAME,       TUSHORT,
 145 -        SAREG|STAREG,   TWORD,
  148+        SAREG|SOREG|SNAME,      TUSHORT,
  149+        SAREG,  TWORD,
146150                 NASL|NAREG,     RESC1,
 147151                 "       movzwl ZL,A1\n", },
 148152 
 149153 /* convert unsigned char to (u)short. */
 150154 { SCONV,        INTAREG,
<>151 -        SAREG|STAREG|SOREG|SNAME,       TUCHAR,
 152 -        SAREG|STAREG,   TSHORT|TUSHORT,
  155+        SAREG|SOREG|SNAME,      TUCHAR,
  156+        SAREG,  TSHORT|TUSHORT,
153157                 NASL|NAREG,     RESC1,
 154158                 "       movzbw ZL,Z1\n", },
 155159 
 156160 /* convert unsigned short to (u)long long */
 157161 { SCONV,        INTAREG,
<>158 -        SAREG|STAREG|SOREG|SNAME,       TUSHORT,
 159 -        SAREG|STAREG,   TLL,
  162+        SAREG|SOREG|SNAME,      TUSHORT,
  163+        SAREG,  TLL,
160164                 NAREG|NASL,     RESC1,
 161165                 "       movzwl ZL,A1\n  xorl U1,U1\n", },
 162166 
 163167 /* convert unsigned char to (u)long long */
 164168 { SCONV,        INTAREG,
<>165 -        SAREG|STAREG|SOREG|SNAME,       TUCHAR,
 166 -        SAREG|STAREG,                   TLL,
  169+        SAREG|SOREG|SNAME,      TUCHAR,
  170+        SAREG,                  TLL,
167171                 NAREG|NASL,     RESC1,
 168172                 "       movzbl ZL,A1\n  xorl U1,U1\n", },
 169173 
 170174 /* convert char to (u)long long */
 171175 { SCONV,        INTAREG,
<>172 -        SAREG|STAREG|SOREG|SNAME,       TCHAR,
 173 -        SAREG|STAREG,   TLL,
  176+        SAREG|SOREG|SNAME,      TCHAR,
  177+        SAREG,  TLL,
174178                 NSPECIAL|NAREG|NASL,    RESC1,
 175179                 "       movsbl ZL,%eax\n        cltd\n", },
 176180 
 177181 /* convert short to (u)long long */
 178182 { SCONV,        INTAREG,
<>179 -        SAREG|STAREG|SOREG|SNAME,       TSHORT,
 180 -        SAREG|STAREG,   TLL,
  183+        SAREG|SOREG|SNAME,      TSHORT,
  184+        SAREG,  TLL,
181185                 NSPECIAL|NAREG|NASL,    RESC1,
 182186                 "       movswl ZL,%eax\n        cltd\n", },
 183187 
 184188 /* convert int to long long */
 185189 { SCONV,        INTAREG,
<>186 -        SAREG|STAREG,   TWORD|TPOINT,
 187 -        SAREG|STAREG,   TLONGLONG,
  190+        SAREG,  TWORD|TPOINT,
  191+        SAREG,  TLONGLONG,
188192                 NSPECIAL|NAREG|NASL,    RESC1,
 189193                 "       cltd\n", },
 190194 
 191195 /* convert long long to int (mem->reg) */
 192196 { SCONV,        INTAREG,
 193197         SOREG|SNAME,    TLL,
<>194 -        SAREG|STAREG,   TWORD|TPOINT,
  198+        SAREG,  TWORD|TPOINT,
195199                 NAREG|NASL,     RESC1,
 196200                 "       movl AL,A1\n", },
 197201 
 198202 /* convert long long to int (reg->reg, do nothing) */
 199203 { SCONV,        INTAREG,
<>200 -        SAREG|STAREG|SOREG|SNAME,       TLL,
 201 -        SAREG|STAREG,   TWORD|TPOINT,
  204+        SAREG|SOREG|SNAME,      TLL,
  205+        SAREG,  TWORD|TPOINT,
202206                 NAREG|NASL,     RESC1,
 203207                 "", },
 204208 
 205209 /* convert (u)long long to (u)short (mem->reg) */
 206210 { SCONV,        INTAREG,
 207211         SOREG|SNAME,    TLL,
<>208 -        SAREG|STAREG,   TSHORT|TUSHORT,
  212+        SAREG,  TSHORT|TUSHORT,
209213                 NAREG|NASL,     RESC1,
 210214                 "       movw ZL,Z1\n", },
 211215 
 212216 /* convert (u)long long to (u)short (reg->reg, do nothing) */
 213217 { SCONV,        INTAREG,
<>214 -        SAREG|STAREG|SOREG|SNAME,       TLL,
 215 -        SAREG|STAREG,   TSHORT|TUSHORT,
  218+        SAREG|SOREG|SNAME,      TLL,
  219+        SAREG,  TSHORT|TUSHORT,
216220                 NAREG|NASL,     RESC1,
 217221                 "", },
 218222 
 219223 /* convert (u)long long to (u)char (mem->reg) */
 220224 { SCONV,        INTAREG,
 221225         SOREG|SNAME,    TLL,
<>222 -        SAREG|STAREG,   TCHAR|TUCHAR,
  226+        SAREG,  TCHAR|TUCHAR,
223227                 NAREG|NASL,     RESC1,
 224228                 "       movb ZL,Z1\n", },
 225229 
 226230 /* convert (u)long long to (u)char (reg->reg, do nothing) */
 227231 { SCONV,        INTAREG,
<>228 -        SAREG|STAREG,   TLL,
 229 -        SAREG|STAREG,   TCHAR|TUCHAR,
  232+        SAREG,  TLL,
  233+        SAREG,  TCHAR|TUCHAR,
230234                 NAREG|NASL,     RESC1,
 231235                 "", },
 232236 
 233237 /* convert int to unsigned long long */
 234238 { SCONV,        INTAREG,
<>235 -        SAREG|STAREG|SOREG|SNAME,       TWORD|TPOINT,
 236 -        SAREG|STAREG,   TULONGLONG,
  239+        SAREG|SOREG|SNAME,      TWORD|TPOINT,
  240+        SAREG,  TULONGLONG,
237241                 NASL|NAREG,     RESC1,
 238242                 "       movl AL,A1\n    xorl U1,U1\n", },
 239243 
 240244 /* convert long long (in memory) to floating */
 241245 { SCONV,        INTBREG,
 242246         SOREG|SNAME,    TLONGLONG,
<>243 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  247+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
244248                 NBREG,  RESC1,
 245249                 "       fildq AL\n", },
 246250 
 247251 /* convert unsigned long long to floating */
 248252 { SCONV,        INTBREG,
<>249 -        SAREG|STAREG,   TULONGLONG,
 250 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  253+        SAREG,  TULONGLONG,
  254+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
251255                 NBREG,  RESC1,
 252256                 "ZJ", },
 253257 
 254258 /* convert int (in memory) to double */
 255259 { SCONV,        INTBREG,
 256260         SOREG|SNAME,    TWORD,
<>257 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  261+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
258262                 NBREG,  RESC1,
 259263                 "       fildl AL\n", },
 260264 
 261265 /* convert long long (in register) to floating */
 262266 { SCONV,        INTBREG,
<>263 -        SAREG|STAREG,   TLONGLONG,
 264 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  267+        SAREG,  TLONGLONG,
  268+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
265269                 NTEMP|NBREG,    RESC1,
 266270                 "       pushl UL\n      pushl AL\n"
 267271                 "       fildq (%esp)\n  addl $8,%esp\n", },
 268272 
 269273 /* convert int (in register) to double */
 270274 { SCONV,        INTBREG,
<>271 -        SAREG|STAREG,   TWORD,
 272 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  275+        SAREG,  TWORD,
  276+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
273277                 NTEMP|NBREG,    RESC1,
 274278                 "       pushl AL\n      fildl (%esp)\n  addl $4,%esp\n", },
 275279 
 276280 /* convert char (in register) to double XXX - use NTEMP */
 277281 { SCONV,        INTBREG,
<>278 -        SAREG|STAREG|SOREG|SNAME,       TCHAR,
 279 -        SBREG|STBREG,                   TLDOUBLE|TDOUBLE|TFLOAT,
  282+        SAREG|SOREG|SNAME,      TCHAR,
  283+        SBREG,                  TLDOUBLE|TDOUBLE|TFLOAT,
280284                 NAREG|NBREG|NTEMP,      RESC2,
 281285                 "       movsbl ZL,A1\n  pushl A1\n"
 282286                 "       fildl (%esp)\n  addl $4,%esp\n", },
 283287 
 284288 /* convert (u)char (in register) to double XXX - use NTEMP */
 285289 { SCONV,        INTBREG,
<>286 -        SAREG|STAREG|SOREG|SNAME,       TUCHAR,
 287 -        SBREG|STBREG,                   TLDOUBLE|TDOUBLE|TFLOAT,
  290+        SAREG|SOREG|SNAME,      TUCHAR,
  291+        SBREG,                  TLDOUBLE|TDOUBLE|TFLOAT,
288292                 NAREG|NBREG|NTEMP,      RESC2,
 289293                 "       movzbl ZL,A1\n  pushl A1\n"
 290294                 "       fildl (%esp)\n  addl $4,%esp\n", },
 291295 
 292296 /* convert short (in memory) to float/double */
 293297 { SCONV,        INTBREG,
 294298         SOREG|SNAME,    TSHORT,
<>295 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  299+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
296300                 NBREG,  RESC1,
 297301                 "       fild AL\n", },
 298302 
 299303 /* convert short (in register) to float/double */
 300304 { SCONV,        INTBREG,
<>301 -        SAREG|STAREG,   TSHORT,
 302 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  305+        SAREG,  TSHORT,
  306+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
303307                 NTEMP|NBREG,    RESC1,
 304308                 "       pushw ZL\n      fild (%esp)\n   addl $2,%esp\n", },
 305309 
 306310 /* convert unsigned short to double XXX - use NTEMP */
 307311 { SCONV,        INTBREG,
<>308 -        SAREG|STAREG|SOREG|SNAME,       TUSHORT,
 309 -        SBREG|STBREG,                   TLDOUBLE|TDOUBLE|TFLOAT,
  312+        SAREG|SOREG|SNAME,      TUSHORT,
  313+        SBREG,                  TLDOUBLE|TDOUBLE|TFLOAT,
310314                 NAREG|NBREG|NTEMP|NASLRESC2,
 311315                 "       movzwl ZL,A1\n  pushl A1\n"
 312316                 "       fildl (%esp)\n  addl $4,%esp\n", },
 313317 
<>314 -#if 0
315318 /*
<>316 - * Store constant initializers.
 317 - */
 318 -{ INITFOREFF,
 319 -        SCON,   TANY,
 320 -        SANY,   TWORD|TPOINT,
 321 -                0,      RNOP,
 322 -                "       .long CL\n", },
 323 -
 324 -{ INITFOREFF,
 325 -        SCON,   TANY,
 326 -        SANY,   TLL,
 327 -                0,      RNOP,
 328 -                "       .long ZI\n      .long CL\n", },
 329 -#endif
 330 -
 331 -/*
332319  * Subroutine calls.
 333320  */
 334321 
     
 !
345332                 "       call CL\nZC", },
 346333 
 347334 { UCALL,        INTAREG|FOREFF,
<>348 -        SAREG|STAREG,   TANY,
  335+        SAREG,  TANY,
349336         SANY,   TANY,
 350337                 NAREG|NASL,     RESC1,  /* should be 0 */
 351338                 "       call *AL\nZC", },
 352339 
 353340 { UCALL,        INTBREG|FOREFF,
<>354 -        SAREG|STAREG,   TANY,
  341+        SAREG,  TANY,
355342         SANY,   TANY,
 356343                 NBREG|NBSL,     RESC1,  /* should be 0 */
 357344                 "       call *AL\nZC", },
     
 !
364351                 "       call CL\nZC", },
 365352 
 366353 { USTCALL,      INTAREG|FOREFF,
<>367 -        SNAME|SAREG|STAREG,     TANY,
  354+        SNAME|SAREG,    TANY,
368355         SANY,   TANY,
 369356                 NAREG|NASL,     RESC1,  /* should be 0 */
 370357                 "       call *AL\nZC", },
     
 !
374361  */
 375362 /* Special treatment for long long */
 376363 { PLUS,         INAREG|FOREFF,
<>377 -        STAREG,         TLL,
 378 -        SAREG|SNAME|SOREG,      TLL,
  364+        SHLL,           TLL,
  365+        SHLL|SNAME|SOREG,       TLL,
379366                 0,      RLEFT,
 380367                 "       addl AR,AL\n    adcl UR,UL\n", },
 381368 
 382369 /* Special treatment for long long  XXX - fix commutative check */
 383370 { PLUS,         INAREG|FOREFF,
<>384 -        SAREG|STAREG|SNAME|SOREG,       TLL,
 385 -        SAREG|STAREG,                   TLL,
  371+        SHLL|SNAME|SOREG,       TLL,
  372+        SHLL,                   TLL,
386373                 0,      RRIGHT,
 387374                 "       addl AL,AR\n    adcl UL,UR\n", },
 388375 
 389376 { PLUS,         INBREG,
<>390 -        STBREG,         TDOUBLE,
  377+        SHFL,           TDOUBLE,
391378         SNAME|SOREG,    TDOUBLE,
 392379                 0,      RLEFT,
 393380                 "       faddl AR\n", },
 394381 
 395382 { PLUS,         INBREG,
<>396 -        STBREG,         TLDOUBLE|TDOUBLE|TFLOAT,
 397 -        STBREG|SBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  383+        SHFL,           TLDOUBLE|TDOUBLE|TFLOAT,
  384+        SHFL,   TLDOUBLE|TDOUBLE|TFLOAT,
398385                 0,      RLEFT,
 399386                 "       faddp %st,%st(1)\n", },
 400387 
 401388 /* address as register offset, positive */
 402389 { PLUS,         INTAREG,
<>403 -        SAREG|STAREG,   TWORD|TPOINT,
  390+        SAREG,  TWORD|TPOINT,
404391         SCON,   TANY,
 405392                 NAREG|NASL,     RESC1,
 406393                 "       leal CR(AL),A1\n", },
 407394 
 408395 { PLUS,         INTAREG,
<>409 -        SAREG|STAREG|SNAME|SOREG,       TCHAR|TUCHAR,
  396+        SHCH|SNAME|SOREG,       TCHAR|TUCHAR,
410397         SONE,   TANY,
 411398                 NASL,   RLEFT,
 412399                 "       incb AL\n", },
 413400 
 414401 /* address as register offset, negative */
 415402 { MINUS,        INTAREG,
<>416 -        SAREG|STAREG,   TWORD|TPOINT,
  403+        SAREG,  TWORD|TPOINT,
417404         SCON,   TANY,
 418405                 NAREG|NASL,     RESC1,
 419406                 "       leal -CR(AL),A1\n", },
 420407 
 421408 { MINUS,                INAREG|FOREFF,
<>422 -        STAREG,         TLL,
 423 -        SAREG|SNAME|SOREG,      TLL,
  409+        SHLL,           TLL,
  410+        SHLL|SNAME|SOREG,       TLL,
424411                 0,      RLEFT,
 425412                 "       subl AR,AL\n    sbbl UR,UL\n", },
 426413 
 427414 { MINUS,                INBREG,
<>428 -        STBREG,         TDOUBLE,
  415+        SHFL,           TDOUBLE,
429416         SNAME|SOREG,    TDOUBLE,
 430417                 0,      RLEFT,
 431418                 "       fsubl AR\n", },
 432419 
 433420 { MINUS,                INBREG,
<>434 -        STBREG,         TLDOUBLE|TDOUBLE|TFLOAT,
 435 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  421+        SHFL,           TLDOUBLE|TDOUBLE|TFLOAT,
  422+        SHFL,           TLDOUBLE|TDOUBLE|TFLOAT,
436423                 0,      RLEFT,
 437424                 "       fsubZHp %st,%st(1)\n", },
 438425 
 439426 /* Simple r/m->reg ops */
 440427 { OPSIMP,       INAREG|FOREFF,
<>441 -        SAREG|STAREG,                   TWORD|TPOINT,
 442 -        SAREG|STAREG|SNAME|SOREG,       TWORD|TPOINT,
  428+        SAREG,                  TWORD|TPOINT,
  429+        SAREG|SNAME|SOREG,      TWORD|TPOINT,
443430                 0,      RLEFT,
 444431                 "       Ol AR,AL\n", },
 445432 
 446433 { OPSIMP,       INAREG|FOREFF,
<>447 -        SAREG|STAREG,           TSHORT|TUSHORT,
 448 -        SAREG|STAREG|SNAME|SOREG,       TSHORT|TUSHORT,
  434+        SHSH,           TSHORT|TUSHORT,
  435+        SHSH|SNAME|SOREG,       TSHORT|TUSHORT,
449436                 0,      RLEFT,
 450437                 "       Ow ZR,ZL\n", },
 451438 
 452439 { OPSIMP,       INAREG|FOREFF,
<>453 -        SAREG|STAREG,           TCHAR|TUCHAR,
 454 -        SAREG|STAREG|SNAME|SOREG,       TCHAR|TUCHAR,
  440+        SHCH,           TCHAR|TUCHAR,
  441+        SHCH|SNAME|SOREG,       TCHAR|TUCHAR,
455442                 0,      RLEFT,
 456443                 "       Ob ZR,ZL\n", },
 457444 
 458445 { OPSIMP,       INAREG|FOREFF,
<>459 -        SAREG|STAREG,           TWORD|TPOINT,
  446+        SAREG,          TWORD|TPOINT,
460447         SCON,   TWORD|TPOINT,
 461448                 0,      RLEFT,
 462449                 "       Ol AR,AL\n", },
 463450 
 464451 { OPSIMP,       INAREG|FOREFF,
<>465 -        SAREG|STAREG|SNAME|SOREG,       TSHORT|TUSHORT,
  452+        SHSH|SNAME|SOREG,       TSHORT|TUSHORT,
466453         SCON,   TANY,
 467454                 0,      RLEFT,
 468455                 "       Ow ZR,ZL\n", },
 469456 
 470457 { OPSIMP,       INAREG|FOREFF,
<>471 -        SAREG|STAREG|SNAME|SOREG,       TCHAR|TUCHAR,
  458+        SHCH|SNAME|SOREG,       TCHAR|TUCHAR,
472459         SCON,   TANY,
 473460                 0,      RLEFT,
 474461                 "       Ob ZR,ZL\n", },
 475462 
 476463 { OPSIMP,       INAREG|FOREFF,
<>477 -        SAREG|STAREG,   TLL,
 478 -        SAREG|STAREG|SNAME|SOREG,       TLL,
  464+        SHLL,   TLL,
  465+        SHLL|SNAME|SOREG,       TLL,
479466                 0,      RLEFT,
 480467                 "       orl AR,AL\n     orl UR,UL\n", },
 481468 
     
 !
484471  * The next rules handle all shift operators.
 485472  */
 486473 { LS,   INTAREG|INAREG,
<>487 -        STAREG|SAREG,   TWORD,
 488 -        STAREGTWORD|TCHAR|TUCHAR|TSHORT|TUSHORT,
  474+        SAREG,  TWORD,
  475+        SAREG|SHCH|SHSH,        TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT,
489476                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 490477                 "       sall ZA,AL\n", },
 491478 
 492479 { LS,   FOREFF,
<>493 -        STAREG|SAREG|SNAME|SOREG,       TWORD,
 494 -        STAREGTWORD|TCHAR|TUCHAR|TSHORT|TUSHORT,
  480+        SAREG|SNAME|SOREG,      TWORD,
  481+        SAREG|SHCH|SHSH,        TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT,
495482                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 496483                 "       sall ZA,AL\n", },
 497484 
 498485 { LS,   FOREFF,
<>499 -        STAREG|SAREG,   TWORD,
  486+        SAREG,  TWORD,
500487         SCON,   TANY,
 501488                 0,      RLEFT,
 502489                 "       sall ZA,AL\n", },
 503490 
 504491 { LS,   INTAREG|INAREG|FOREFF,
<>505 -        STAREG|SAREG|SNAME|SOREG,       TSHORT|TUSHORT,
  492+        SAREG|SNAME|SOREG,      TSHORT|TUSHORT,
506493         SCON,   TANY,
 507494                 0,      RLEFT,
 508495                 "       shlw ZA,ZL\n", },
 509496 
 510497 { LS,   INTAREG|INAREG|FOREFF,
<>511 -        STAREG|SAREG|SNAME|SOREG,       TSHORT|TUSHORT,
 512 -        STAREG|SAREG,   TANY,
  498+        SAREG|SNAME|SOREG,      TSHORT|TUSHORT,
  499+        SAREG,  TANY,
513500                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 514501                 "       shlw ZA,ZL\n", },
 515502 
 516503 { LS,   FOREFF,
<>517 -        STAREG|SAREG|SNAME|SOREG,       TCHAR|TUCHAR,
  504+        SAREG|SNAME|SOREG,      TCHAR|TUCHAR,
518505         SCON,   TANY,
 519506                 0,      RLEFT,
 520507                 "       salb ZA,ZL\n", },
 521508 
 522509 { LS,   FOREFF,
<>523 -        STAREG|SAREG|SNAME|SOREG,       TCHAR|TUCHAR,
 524 -        STAREG|SAREG,   TANY,
  510+        SAREG|SNAME|SOREG,      TCHAR|TUCHAR,
  511+        SAREG,  TANY,
525512                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 526513                 "       salb ZA,ZL\n", },
 527514 
 528515 { RS,   INTAREG|INAREG|FOREFF,
<>529 -        STAREG|SAREG|SNAME|SOREG,       TSWORD,
 530 -        STAREG|SCON,    TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT,
  516+        SAREG|SNAME|SOREG,      TSWORD,
  517+        SAREG|SCON,     TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT,
531518                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 532519                 "       sarl ZA,AL\n", },
 533520 
 534521 { RS,   INTAREG|INAREG|FOREFF,
<>535 -        STAREG|SAREG|SNAME|SOREG,       TUWORD,
 536 -        STAREG|SCON,    TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT,
  522+        SAREG|SNAME|SOREG,      TUWORD,
  523+        SAREG|SCON,     TWORD|TCHAR|TUCHAR|TSHORT|TUSHORT,
537524                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 538525                 "       shrl ZA,AL\n", },
 539526 
 540527 { RS,   INTAREG|INAREG|FOREFF,
<>541 -        STAREG|SAREG|SNAME|SOREG,       TUSHORT,
  528+        SAREG|SNAME|SOREG,      TUSHORT,
542529         SCON,   TANY,
 543530                 0,      RLEFT,
 544531                 "       shrw AR,ZL\n", },
 545532 
 546533 { RS,   INTAREG|INAREG|FOREFF,
<>547 -        STAREG|SAREG|SNAME|SOREG,       TUSHORT,
 548 -        STAREG|SAREG,   TANY,
  534+        SAREG|SNAME|SOREG,      TUSHORT,
  535+        SAREG,  TANY,
549536                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 550537                 "       shrw ZA,ZL\n", },
 551538 
 552539 { RS,   INTAREG|INAREG|FOREFF,
<>553 -        STAREG|SAREG|SNAME|SOREG,       TSHORT,
  540+        SAREG|SNAME|SOREG,      TSHORT,
554541         SCON,   TANY,
 555542                 0,      RLEFT,
 556543                 "       sarw AR,ZL\n", },
 557544 
 558545 { RS,   INTAREG|INAREG|FOREFF,
<>559 -        STAREG|SAREG|SNAME|SOREG,       TSHORT,
 560 -        STAREG|SAREG,   TANY,
  546+        SAREG|SNAME|SOREG,      TSHORT,
  547+        SAREG,  TANY,
561548                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 562549                 "       sarw ZA,ZL\n", },
 563550 
 564551 { RS,   INTAREG|INAREG|FOREFF,
<>565 -        STAREG|SAREG|SNAME|SOREG,       TUCHAR,
  552+        SAREG|SNAME|SOREG,      TUCHAR,
566553         SCON,   TANY,
 567554                 0,      RLEFT,
 568555                 "       shrb AR,ZL\n", },
 569556 
 570557 { RS,   INTAREG|INAREG|FOREFF,
<>571 -        STAREG|SAREG|SNAME|SOREG,       TUCHAR,
 572 -        STAREG|SAREG,   TANY,
  558+        SAREG|SNAME|SOREG,      TUCHAR,
  559+        SAREG,  TANY,
573560                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 574561                 "       shrb ZA,ZL\n", },
 575562 
 576563 { RS,   INTAREG|INAREG|FOREFF,
<>577 -        STAREG|SAREG|SNAME|SOREG,       TCHAR,
  564+        SAREG|SNAME|SOREG,      TCHAR,
578565         SCON,   TANY,
 579566                 0,      RLEFT,
 580567                 "       sarb AR,ZL\n", },
 581568 
 582569 { RS,   INTAREG|INAREG|FOREFF,
<>583 -        STAREG|SAREG|SNAME|SOREG,       TCHAR,
 584 -        STAREG|SAREG,   TANY,
  570+        SAREG|SNAME|SOREG,      TCHAR,
  571+        SAREG,  TANY,
585572                 3*NAREG|NASL|NSPECIAL,  RLEFT,
 586573                 "       sarb ZA,ZL\n", },
 587574 
 588575 /*
 589576  * The next rules takes care of assignments. "=".
 590577  */
 591578 { ASSIGN,       FOREFF|INTAREG,
<>592 -        SAREG|STAREG|SNAME|SOREG,       TLL,
  579+        SHLL|SNAME|SOREG,       TLL,
593580         SCON,           TANY,
 594581                 0,      0,
 595582                 "       movl AR,AL\n    movl UR,UL\n", },
 596583 
 597584 { ASSIGN,       FOREFF|INTAREG,
<>598 -        SAREG|STAREG|SNAME|SOREG,       TWORD|TPOINT,
  585+        SAREG|SNAME|SOREG,      TWORD|TPOINT,
599586         SCON,           TANY,
 600587                 0,      0,
 601588                 "       movl AR,AL\n", },
 602589 
 603590 { ASSIGN,       FOREFF|INTAREG,
<>604 -        SAREG|STAREG|SNAME|SOREG,       TSHORT|TUSHORT,
  591+        SAREG|SNAME|SOREG,      TSHORT|TUSHORT,
605592         SCON,           TANY,
 606593                 0,      0,
 607594                 "       movw ZR,ZL\n", },
 608595 
 609596 { ASSIGN,       FOREFF|INTAREG,
<>610 -        SAREG|STAREG|SNAME|SOREG,       TCHAR|TUCHAR,
  597+        SAREG|SNAME|SOREG,      TCHAR|TUCHAR,
611598         SCON,           TANY,
 612599                 0,      0,
 613600                 "       movb ZR,ZL\n", },
 614601 
 615602 { ASSIGN,       FOREFF|INTAREG,
<>616 -        STAREG|SAREG|SNAME|SOREG,       TLL,
 617 -        STAREG|SAREG,                   TLL,
  603+        SHLL|SNAME|SOREG,       TLL,
  604+        SHLL,                   TLL,
618605                 0,      RRIGHT,
 619606                 "       movl AR,AL\n    movl UR,UL\n", },
 620607 
 621608 { ASSIGN,       FOREFF|INTAREG,
<>622 -        SAREG|STAREG|SNAME|SOREG,       TWORD|TPOINT,
 623 -        SAREG|STAREG,           TWORD|TPOINT,
  609+        SAREG|SNAME|SOREG,      TWORD|TPOINT,
  610+        SAREG,          TWORD|TPOINT,
624611                 0,      RRIGHT,
 625612                 "       movl AR,AL\n", },
 626613 
 627614 { ASSIGN,       FOREFF|INTAREG,
<>628 -        SAREG|STAREG,                   TWORD|TPOINT,
 629 -        SAREG|STAREG|SNAME|SOREG,       TWORD|TPOINT,
  615+        SAREG,                  TWORD|TPOINT,
  616+        SAREG|SNAME|SOREG,      TWORD|TPOINT,
630617                 0,      RLEFT,
 631618                 "       movl AR,AL\n", },
 632619 
 633620 { ASSIGN,       FOREFF|INTAREG,
<>634 -        STAREG|SNAME|SOREG,     TSHORT|TUSHORT,
 635 -        STAREG,         TSHORT|TUSHORT,
  621+        SAREG|SNAME|SOREG,      TSHORT|TUSHORT,
  622+        SAREG,          TSHORT|TUSHORT,
636623                 0,      RRIGHT,
 637624                 "       movw ZR,ZL\n", },
 638625 
 639626 { ASSIGN,       FOREFF|INTAREG,
<>640 -        SAREG|STAREG|SNAME|SOREG,       TCHAR|TUCHAR,
 641 -        SAREG|STAREG,                   TCHAR|TUCHAR|TWORD,
  627+        SAREG|SNAME|SOREG,      TCHAR|TUCHAR,
  628+        SAREG,                  TCHAR|TUCHAR|TWORD,
642629                 0,      RRIGHT,
 643630                 "       movb ZR,ZL\n", },
 644631 
 645632 { ASSIGN,       FOREFF|INTAREG,
 646633         SFLD,           TANY,
<>647 -        STAREG|SAREG,   TANY,
  634+        SAREG,  TANY,
648635                 NAREG,  RRIGHT,
 649636                 "ZE", },
 650637 
 651638 { ASSIGN,       FOREFF|INTAREG,
 652639         SFLD,           TANY,
<>653 -        STAREG|SAREG|SNAME|SOREG|SCON,  TANY,
  640+        SAREG|SNAME|SOREG|SCONTANY,
654641                 NAREG,  0,
 655642                 "ZE", },
 656643 
 657644 /* order of table entries is very important here! */
 658645 { ASSIGN,       FOREFF,
 659646         SNAME|SOREG,    TLDOUBLE,
<>660 -        STBREG|SBREG,   TFLOAT|TDOUBLE|TLDOUBLE,
  647+        SBREG,  TFLOAT|TDOUBLE|TLDOUBLE,
661648                 0,      RRIGHT,
 662649                 "       fld %st(0)\n    fstpt AL\n", },
 663650 
 664651 { ASSIGN,       FOREFF,
 665652         SNAME|SOREG,    TLDOUBLE,
<>666 -        STBREG|SBREG,   TFLOAT|TDOUBLE|TLDOUBLE,
  653+        SBREG,  TFLOAT|TDOUBLE|TLDOUBLE,
667654                 0,      0,
 668655                 "       fstpt AL\n", },
 669656 
 670657 { ASSIGN,       FOREFF,
 671658         SNAME|SOREG,    TDOUBLE,
<>672 -        STBREG|SBREG,   TFLOAT|TDOUBLE|TLDOUBLE,
  659+        SBREG,  TFLOAT|TDOUBLE|TLDOUBLE,
673660                 0,      RRIGHT,
 674661                 "       fstl AL\n", },
 675662 
 676663 { ASSIGN,       FOREFF,
 677664         SNAME|SOREG,    TDOUBLE,
<>678 -        STBREG|SBREG,   TFLOAT|TDOUBLE|TLDOUBLE,
  665+        SBREG,  TFLOAT|TDOUBLE|TLDOUBLE,
679666                 0,      0,
 680667                 "       fstpl AL\n", },
 681668 
 682669 { ASSIGN,       FOREFF,
 683670         SNAME|SOREG,    TFLOAT,
<>684 -        STBREG|SBREG,   TFLOAT|TDOUBLE|TLDOUBLE,
  671+        SBREG,  TFLOAT|TDOUBLE|TLDOUBLE,
685672                 0,      RRIGHT,
 686673                 "       fsts AL\n", },
 687674 
 688675 { ASSIGN,       FOREFF,
 689676         SNAME|SOREG,    TFLOAT,
<>690 -        STBREG|SBREG,   TFLOAT|TDOUBLE|TLDOUBLE,
  677+        SBREG,  TFLOAT|TDOUBLE|TLDOUBLE,
691678                 0,      0,
 692679                 "       fstps AL\n", },
 693680 /* end very important order */
 694681 
 695682 /* Not really an assign node */
 696683 { MOVE,         FOREFF|INTAREG,
<>697 -        SAREG|STAREG,   TWORD|TPOINT,
 698 -        SAREG|STAREG,   TWORD|TPOINT,
  684+        SAREG,  TWORD|TPOINT,
  685+        SAREG,  TWORD|TPOINT,
699686                 NAREG,  RRIGHT,
 700687                 "       movl AL,AR\n" },
 701688 
 702689 { MOVE,         FOREFF|INTAREG,
<>703 -        SAREG|STAREG,   TSHORT|TUSHORT,
 704 -        SAREG|STAREG,   TSHORT|TUSHORT,
  690+        SAREG,  TSHORT|TUSHORT,
  691+        SAREG,  TSHORT|TUSHORT,
705692                 NAREG,  RRIGHT,
 706693                 "       movw ZL,ZR\n" },
 707694 
 708695 { MOVE,         FOREFF|INTAREG,
<>709 -        SAREG|STAREG,   TCHAR|TUCHAR,
 710 -        SAREG|STAREG,   TCHAR|TUCHAR,
  696+        SAREG,  TCHAR|TUCHAR,
  697+        SAREG,  TCHAR|TUCHAR,
711698                 NAREG,  RRIGHT,
 712699                 "       movb ZL,ZR\n" },
 713700 
 714701 /* needed for reg->fpreg sconv at force */
 715702 { MOVE,         FOREFF|INTBREG,
<>716 -        SBREG|STBREG,   TFLOAT|TDOUBLE|TLDOUBLE,
 717 -        SBREG|STBREG,   TFLOAT|TDOUBLE|TLDOUBLE,
  703+        SBREG,  TFLOAT|TDOUBLE|TLDOUBLE,
  704+        SBREG,  TFLOAT|TDOUBLE|TLDOUBLE,
718705                 0,      RRIGHT,
 719706                 "" },
 720707 
     
 !
723710  */
 724711 
 725712 { DIV,  INTAREG,
<>726 -        STAREG,                         TSWORD,
 727 -        STAREG|SAREG|SNAME|SOREG,       TWORD,
  713+        SAREG,                          TSWORD,
  714+        SAREG|SNAME|SOREG,      TWORD,
728715                 3*NAREG|NASL|NSPECIAL,          RESC1,
 729716                 "       cltd\n  idivl AR\n", },
 730717 
 731718 { DIV,  INTAREG,
<>732 -        STAREG,                         TUWORD|TPOINT,
 733 -        STAREG|SAREG|SNAME|SOREG,       TUWORD|TPOINT,
  719+        SAREG,                          TUWORD|TPOINT,
  720+        SAREG|SNAME|SOREG,      TUWORD|TPOINT,
734721                 3*NAREG|NASL|NSPECIAL,          RESC1,
 735722                 "       xorl %edx,%edx\n        divl AR\n", },
 736723 
 737724 { DIV,  INTAREG,
<>738 -        STAREG,                         TUSHORT,
 739 -        STAREG|SAREG|SNAME|SOREG,       TUSHORT,
  725+        SAREG,                          TUSHORT,
  726+        SAREG|SNAME|SOREG,      TUSHORT,
740727                 3*NAREG|NASL|NSPECIAL,          RESC1,
 741728                 "       xorl %edx,%edx\n        divw ZR\n", },
 742729 
 743730 { DIV,  INTAREG,
<>744 -        STAREG,                         TUCHAR,
 745 -        STAREG|SAREG|SNAME|SOREG,       TUCHAR,
  731+        SAREG,                          TUCHAR,
  732+        SAREG|SNAME|SOREG,      TUCHAR,
746733                 3*NAREG|NASL|NSPECIAL,          RESC1,
 747734                 "       xorb %ah,%ah\n  divb ZR\n", },
 748735 
 749736 { DIV,  INTBREG,
<>750 -        STBREG,         TDOUBLE,
  737+        SBREG,          TDOUBLE,
751738         SNAME|SOREG,    TDOUBLE,
 752739                 0,      RLEFT,
 753740                 "       fdivl AR\n", },
 754741 
 755742 { DIV,  INTBREG,
<>756 -        STBREG,         TLDOUBLE|TDOUBLE|TFLOAT,
 757 -        STBREG,         TLDOUBLE|TDOUBLE|TFLOAT,
  743+        SBREG,          TLDOUBLE|TDOUBLE|TFLOAT,
  744+        SBREG,          TLDOUBLE|TDOUBLE|TFLOAT,
758745                 0,      RLEFT,
 759746                 "       fdivrp %st,%st(1)\n", },
 760747 
 761748 { MOD,  INTAREG,
<>762 -        STAREG,                         TSWORD,
 763 -        STAREG|SAREG|SNAME|SOREG,       TSWORD,
  749+        SAREG,                          TSWORD,
  750+        SAREG|SNAME|SOREG,      TSWORD,
764751                 3*NAREG|NASL|NSPECIAL,          RESC1,
 765752                 "       cltd\n  idivl AR\n", },
 766753 
 767754 { MOD,  INTAREG,
<>768 -        STAREG,                         TUWORD|TPOINT,
 769 -        STAREG|SAREG|SNAME|SOREG,       TUWORD|TPOINT,
  755+        SAREG,                          TUWORD|TPOINT,
  756+        SAREG|SNAME|SOREG,      TUWORD|TPOINT,
770757                 3*NAREG|NASL|NSPECIAL,          RESC1,
 771758                 "       xorl %edx,%edx\n        divl AR\n", },
 772759 
 773760 { MOD,  INTAREG,
<>774 -        STAREG,                         TUSHORT,
 775 -        STAREG|SAREG|SNAME|SOREG,       TUSHORT,
  761+        SAREG,                          TUSHORT,
  762+        SAREG|SNAME|SOREG,      TUSHORT,
776763                 3*NAREG|NASL|NSPECIAL,          RESC1,
 777764                 "       xorl %edx,%edx\n        divw ZR\n", },
 778765 
 779766 { MOD,  INTAREG,
<>780 -        STAREG,                         TUCHAR,
 781 -        STAREG|SAREG|SNAME|SOREG,       TUCHAR,
  767+        SAREG,                          TUCHAR,
  768+        SAREG|SNAME|SOREG,      TUCHAR,
782769                 3*NAREG|NASL|NSPECIAL,          RESC1,
 783770                 "       xorb %ah,%ah\n  divb ZR\n       movb %ah,%al\n", },
 784771 
 785772 { MUL,  INTAREG,
<>786 -        STAREG,                         TCHAR|TUCHAR,
 787 -        STAREG|SAREG|SNAME|SOREG,       TCHAR|TUCHAR,
  773+        SAREG,                          TCHAR|TUCHAR,
  774+        SAREG|SNAME|SOREG,      TCHAR|TUCHAR,
788775                 3*NAREG|NASL|NSPECIAL,  RESC1,
 789776                 "       imulb ZR\n", },
 790777 
 791778 { MUL,  INTAREG,
<>792 -        STAREG,                 TSHORT|TUSHORT,
 793 -        STAREG|SNAME|SOREG,     TSHORT|TUSHORT,
  779+        SAREG,                  TSHORT|TUSHORT,
  780+        SAREG|SNAME|SOREG,      TSHORT|TUSHORT,
794781                 0,      RLEFT,
 795782                 "       imulw ZR,ZL\n", },
 796783 
 797784 { MUL,  INTAREG,
<>798 -        STAREG,                         TWORD|TPOINT,
 799 -        STAREG|SNAME|SOREG|SCON,        TWORD|TPOINT,
  785+        SAREG,                          TWORD|TPOINT,
  786+        SAREG|SNAME|SOREG|SCONTWORD|TPOINT,
800787                 0,      RLEFT,
 801788                 "       imull AR,AL\n", },
 802789 
 803790 { MUL,  INTBREG,
<>804 -        STBREG,         TDOUBLE,
  791+        SBREG,          TDOUBLE,
805792         SNAME|SOREG,    TDOUBLE,
 806793                 0,      RLEFT,
 807794                 "       fmull AR\n", },
 808795 
 809796 { MUL,  INTBREG,
<>810 -        STBREG,         TLDOUBLE|TDOUBLE|TFLOAT,
 811 -        STBREG,         TLDOUBLE|TDOUBLE|TFLOAT,
  797+        SBREG,          TLDOUBLE|TDOUBLE|TFLOAT,
  798+        SBREG,          TLDOUBLE|TDOUBLE|TFLOAT,
812799                 0,      RLEFT,
 813800                 "       fmulp %st,%st(1)\n", },
 814801 
 815802 /*
 816803  * Indirection operators.
 817804  */
 818805 { UMULINTAREG,
<>819 -        SAREG|STAREG,   TPTRTO|TLL,
  806+        SAREG,  TPTRTO|TLL,
820807         SANY,           TLL,
 821808                 NAREG|NASL,     RESC1,
 822809                 "       movl 4(AL),U1\n movl (AL),A1\n", },
 823810 
 824811 { UMULINTAREG,
<>825 -        SAREG|STAREG,   TPOINT|TWORD,
  812+        SAREG,  TPOINT|TWORD,
826813         SANY,           TPOINT|TWORD,
 827814                 NAREG|NASL,     RESC1,
 828815                 "       movl (AL),A1\n", },
 829816 
 830817 { UMULINTAREG,
<>831 -        SAREG|STAREG,   TCHAR|TUCHAR|TPTRTO,
  818+        SAREG,  TCHAR|TUCHAR|TPTRTO,
832819         SANY,           TCHAR|TUCHAR,
 833820                 NAREG|NASL,     RESC1,
 834821                 "       movb (AL),Z1\n", },
 835822 
 836823 { UMULINTAREG,
<>837 -        SAREG|STAREG,   TSHORT|TUSHORT|TPTRTO,
  824+        SAREG,  TSHORT|TUSHORT|TPTRTO,
838825         SANY,           TSHORT|TUSHORT,
 839826                 NAREG|NASL,     RESC1,
 840827                 "       movw (AL),Z1\n", },
 841828 
 842829 { UMULINTBREG,
<>843 -        SAREG|STAREG,   TLDOUBLE|TPTRTO,
  830+        SAREG,  TLDOUBLE|TPTRTO,
844831         SANY,           TLDOUBLE,
 845832                 NBREG,  RESC1,
 846833                 "       fldq (AL)\n", },
 847834 
 848835 { UMULINTBREG,
<>849 -        SAREG|STAREG,   TDOUBLE|TPTRTO,
  836+        SAREG,  TDOUBLE|TPTRTO,
850837         SANY,           TDOUBLE,
 851838                 NBREG,  RESC1,
 852839                 "       fldl (AL)\n", },
 853840 
 854841 { UMULINTBREG,
<>855 -        SAREG|STAREG,   TFLOAT|TPTRTO,
  842+        SAREG,  TFLOAT|TPTRTO,
856843         SANY,           TFLOAT,
 857844                 NBREG,  RESC1,
 858845                 "       flds (AL)\n", },
     
 !
861848  * INCR/DECR operators (post-increment)
 862849  */
 863850 { INCRINTAREG,
<>864 -        SAREG|STAREG|SNAME|SOREG,       TCHAR|TUCHAR|TPTRTO,
  851+        SAREG|SNAME|SOREG,      TCHAR|TUCHAR|TPTRTO,
865852         SANY,   TANY,
 866853                 NAREG,  RESC1,
 867854                 "       movl ZL,Z1\n    incl ZL\n", },
 868855 
 869856 { INCRINTAREG,
<>870 -        SAREG|STAREG|SNAME|SOREG,       TWORD,
  857+        SAREG|SNAME|SOREG,      TWORD,
871858         SANY,   TANY,
 872859                 NAREG,  RESC1,
 873860                 "       movl ZL,Z1\n    incl ZL\n", },
 874861 
 875862 { INCRINTAREG,
<>876 -        SAREG|STAREG|SNAME|SOREG,       TSHORT|TUSHORT,
  863+        SAREG|SNAME|SOREG,      TSHORT|TUSHORT,
877864         SANY,   TANY,
 878865                 NAREG,  RESC1,
 879866                 "       movw ZL,Z1\n    incw ZL\n", },
 880867 
 881868 { INCRINTAREG,
<>882 -        SAREG|STAREG|SNAME|SOREG,       TCHAR|TUCHAR,
  869+        SAREG|SNAME|SOREG,      TCHAR|TUCHAR,
883870         SANY,   TANY,
 884871                 NAREG,  RESC1,
 885872                 "       movb ZL,Z1\n    incb ZL\n", },
     
 !
890877 
 891878 /* Comparisions, take care of everything */
 892879 { OPLOG,        FORCC,
<>893 -        SAREG|STAREG|SOREG|SNAME,       TLL,
 894 -        SAREG|STAREG,                   TLL,
  880+        SAREG|SOREG|SNAME,      TLL,
  881+        SAREG,                  TLL,
895882                 0,      0,
 896883                 "ZD", },
 897884 
 898885 { OPLOG,        FORCC,
<>899 -        SAREG|STAREG|SOREG|SNAME,       TWORD|TPOINT,
 900 -        SCON|SAREG|STAREG,      TWORD|TPOINT,
  886+        SAREG|SOREG|SNAME,      TWORD|TPOINT,
  887+        SCON|SAREG,     TWORD|TPOINT,
901888                 0,      RESCC,
 902889                 "       cmpl AR,AL\n", },
 903890 
 904891 { OPLOG,        FORCC,
<>905 -        SAREG|STAREG|SOREG|SNAME,       TSHORT|TUSHORT,
 906 -        SCON|SAREG|STAREG,      TANY,
  892+        SAREG|SOREG|SNAME,      TSHORT|TUSHORT,
  893+        SCON|SAREG,     TANY,
907894                 0,      RESCC,
 908895                 "       cmpw ZR,ZL\n", },
 909896 
 910897 { OPLOG,        FORCC,
<>911 -        SAREG|STAREG|SOREG|SNAME,       TCHAR|TUCHAR,
 912 -        SCON|SAREG|STAREG,      TANY,
  898+        SAREG|SOREG|SNAME,      TCHAR|TUCHAR,
  899+        SCON|SAREG,     TANY,
913900                 0,      RESCC,
 914901                 "       cmpb ZR,ZL\n", },
 915902 
 916903 { OPLOG,        FORCC,
<>917 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
 918 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  904+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
  905+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
919906                 3*NAREG,        0,
 920907                 "ZG", },
 921908 
 922909 { OPLOG,        FORCC,
 923910         SOREG|SNAME,    TDOUBLE|TFLOAT,
<>924 -        SBREG|STBREG,   TLDOUBLE|TDOUBLE|TFLOAT,
  911+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
925912                 3*NAREG,        0,
 926913                 "ZG", },
 927914 
     
 !
933920 
 934921 /* AND/OR/ER/NOT */
 935922 { AND,  INTAREG|FOREFF,
<>936 -        SAREG|STAREG|SOREG|SNAME,       TWORD,
 937 -        SCON|SAREG|STAREG,              TWORD,
  923+        SAREG|SOREG|SNAME,      TWORD,
  924+        SCON|SAREG,             TWORD,
938925                 0,      RLEFT,
 939926                 "       andl AR,AL\n", },
 940927 
 941928 { AND,  INTAREG|FOREFF,
<>942 -        SAREG|STAREG,                   TLL,
 943 -        SAREG|STAREG|SOREG|SNAME,       TLL,
  929+        SAREG,                  TLL,
  930+        SAREG|SOREG|SNAME,      TLL,
944931                 0,      RLEFT,
 945932                 "       andl AR,AL\n    andl UR,UL\n", },
 946933 
 947934 { AND,  INTAREG|FOREFF,
<>948 -        SAREG|STAREG,                   TWORD,
 949 -        SAREG|STAREG|SOREG|SNAME,       TWORD,
  935+        SAREG,                  TWORD,
  936+        SAREG|SOREG|SNAME,      TWORD,
950937                 0,      RLEFT,
 951938                 "       andl AR,AL\n", },
 952939 
 953940 { AND,  INTAREG|FOREFF
<>954 -        SAREG|STAREG|SOREG|SNAME,       TSHORT|TUSHORT,
 955 -        SCON|SAREG|STAREG,              TSHORT|TUSHORT,
  941+        SAREG|SOREG|SNAME,      TSHORT|TUSHORT,
  942+        SCON|SAREG,             TSHORT|TUSHORT,
956943                 0,      RLEFT,
 957944                 "       andw ZR,ZL\n", },
 958945 
 959946 { AND,  INTAREG|FOREFF
<>960 -        SAREG|STAREG,                   TSHORT|TUSHORT,
 961 -        SAREG|STAREG|SOREG|SNAME,       TSHORT|TUSHORT,
  947+        SAREG,                  TSHORT|TUSHORT,
  948+        SAREG|SOREG|SNAME,      TSHORT|TUSHORT,
962949                 0,      RLEFT,
 963950                 "       andw ZR,ZL\n", },
 964951 
 965952 { AND,  INTAREG|FOREFF,
<>966 -        SAREG|STAREG|SOREG|SNAME,       TCHAR|TUCHAR,
 967 -        SCON|SAREG|STAREG,              TCHAR|TUCHAR,
  953+        SAREG|SOREG|SNAME,      TCHAR|TUCHAR,
  954+        SCON|SAREG,             TCHAR|TUCHAR,
968955                 0,      RLEFT,
 969956                 "       andb ZR,ZL\n", },
 970957 
 971958 { AND,  INTAREG|FOREFF,
<>972 -        SAREG|STAREG,                   TCHAR|TUCHAR,
 973 -        SAREG|STAREG|SOREG|SNAME,       TCHAR|TUCHAR,
  959+        SAREG,                  TCHAR|TUCHAR,
  960+        SAREG|SOREG|SNAME,      TCHAR|TUCHAR,
974961                 0,      RLEFT,
 975962                 "       andb ZR,ZL\n", },
 976963 
     
 !
992979 
 993980 #ifdef GCC_COMPAT
 994981 { GOTO,         FOREFF,
<>995 -        SAREG|STAREG,   TANY,
  982+        SAREG,  TANY,
996983         SANY,   TANY,
 997984                 0,      RNOP,
 998985                 "       jmp *AL\n", },
     
 !
10481035  */
 10491036 
 10501037 { UMINUS,       INAREG|INTAREG|FOREFF,
<>1051 -        STAREGTLL,
 1052 -        STAREGTLL,
  1038+        SAREG,  TLL,
  1039+        SAREG,  TLL,
10531040                 0,      RLEFT,
 10541041                 "       negl AL\n       adcl $0,UL\n    negl UL\n", },
 10551042 
 10561043 { UMINUS,       INAREG|INTAREG|FOREFF,
<>1057 -        STAREGTWORD|TPOINT,
 1058 -        STAREGTWORD|TPOINT,
  1044+        SAREG,  TWORD|TPOINT,
  1045+        SAREG,  TWORD|TPOINT,
10591046                 0,      RLEFT,
 10601047                 "       negl AL\n", },
 10611048 
 10621049 { UMINUS,       INAREG|INTAREG|FOREFF,
<>1063 -        STAREGTSHORT|TUSHORT,
 1064 -        STAREGTSHORT|TUSHORT,
  1050+        SAREG,  TSHORT|TUSHORT,
  1051+        SAREG,  TSHORT|TUSHORT,
10651052                 0,      RLEFT,
 10661053                 "       negw ZL\n", },
 10671054 
 10681055 { UMINUS,       INAREG|INTAREG|FOREFF,
<>1069 -        STAREGTCHAR|TUCHAR,
 1070 -        STAREGTCHAR|TUCHAR,
  1056+        SAREG,  TCHAR|TUCHAR,
  1057+        SAREG,  TCHAR|TUCHAR,
10711058                 0,      RLEFT,
 10721059                 "       negb ZL\n", },
 10731060 
 10741061 { UMINUS,       INBREG|INTBREG|FOREFF,
<>1075 -        STBREGTLDOUBLE|TDOUBLE|TFLOAT,
 1076 -        STBREGTLDOUBLE|TDOUBLE|TFLOAT,
  1062+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
  1063+        SBREG,  TLDOUBLE|TDOUBLE|TFLOAT,
10771064                 0,      RLEFT,
 10781065                 "       fchs\n", },
 10791066 
 10801067 #if 0
 10811068 { UMINUS,       INAREG|INTAREG|FOREFF,
<>1082 -        SAREG|STAREG|SNAME|SOREG,       TLL,
  1069+        SAREG|SNAME|SOREG,      TLL,
10831070         SANY,   TLL,
 10841071                 NAREG|NASR,     RESC1,
 10851072                 "       dmovn A1,AL\n", },
 10861073 #endif
 10871074 
 10881075 { COMPL,        INTAREG,
<>1089 -        SAREG|STAREG,   TLL,
  1076+        SAREG,  TLL,
10901077         SANY,   TANY,
 10911078                 NASL,   RLEFT,
 10921079                 "       notl AL\n       notl UL\n", },
 10931080 
 10941081 { COMPL,        INTAREG,
<>1095 -        SAREG|STAREG,   TWORD,
  1082+        SAREG,  TWORD,
10961083         SANY,   TANY,
 10971084                 NASL,   RLEFT,
 10981085                 "       notl AL\n", },
 10991086 
 11001087 { COMPL,        INTAREG,
<>1101 -        SAREG|STAREG,   TSHORT|TUSHORT,
  1088+        SAREG,  TSHORT|TUSHORT,
11021089         SANY,   TANY,
 11031090                 NASL,   RLEFT,
 11041091                 "       notw ZL\n", },
 11051092 
 11061093 { COMPL,        INTAREG,
<>1107 -        SAREG|STAREG,   TCHAR|TUCHAR,
  1094+        SAREG,  TCHAR|TUCHAR,
11081095         SANY,   TANY,
 11091096                 NASL,   RLEFT,
 11101097                 "       notb ZL\n", },
     
 !
11611148                 "       pushl UL\n      pushl AL\n", },
 11621149 
 11631150 { FUNARG,       FOREFF,
<>1164 -        SBREG|STBREG,   TDOUBLE,
  1151+        SBREG,  TDOUBLE,
11651152         SANY,           TDOUBLE,
 11661153                 0,      0,
 11671154                 "       subl $8,%esp\n  fstpl (%esp)\n", },
     
 !
11731160                 "       pushl AL\n", },
 11741161 
 11751162 { FUNARG,       FOREFF,
<>1176 -        SBREG|STBREG,   TFLOAT,
  1163+        SBREG,  TFLOAT,
11771164         SANY,           TFLOAT,
 11781165                 0,      0,
 11791166                 "       subl $4,%esp\n  fstps (%esp)\n", },
 11801167 
 11811168 { FUNARG,       FOREFF,
<>1182 -        SBREG|STBREG,   TLDOUBLE,
  1169+        SBREG,  TLDOUBLE,
11831170         SANY,           TLDOUBLE,
 11841171                 0,      0,
 11851172                 "       subl $12,%esp\n fstpt (%esp)\n", },
 11861173 
 11871174 { FUNARG,       FOREFF,
<>1188 -        STAREG|SAREG|SOREG|SNAME|SCON,  TANY,
  1175+        SAREG|SOREG|SNAME|SCONTANY,
<_11891176         SANY,   TSTRUCT,
 11901177                 3*NAREG|NASL,   0,
 11911178                 "ZF", },
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-10-30 16:16 +0100