Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.102
 
1.103
 
MAIN:ragge:20080622152459
 
local2.c
_>11151115 mflags(char *str)
 11161116 {
 11171117 }
<_ 1118+
  1119+/*
  1120+ * Do something target-dependent for xasm arguments.
  1121+ */
  1122+int
  1123+myxasm(struct interpass *ip, NODE *p)
  1124+{
  1125+        struct interpass *ip2;
  1126+        NODE *in = 0, *ut = 0;
  1127+        char *w;
  1128+        int reg;
  1129+
  1130+        w = p->n_name;
  1131+        if (*w == '=') {
  1132+                w++;
  1133+                ut = p->n_left;
  1134+        } else if (*w == '+') {
  1135+                w++;
  1136+                in = ut = p->n_left;
  1137+        } else
  1138+                in = p->n_left;
  1139+
  1140+        switch (w[0]) {
  1141+        case 'D': reg = EDI; break;
  1142+        case 'S': reg = ESI; break;
  1143+        case 'a': reg = EAX; break;
  1144+        case 'b': reg = EBX; break;
  1145+        case 'c': reg = ECX; break;
  1146+        case 'd': reg = EDX; break;
  1147+        default:
  1148+                return 0;
  1149+        }
  1150+        w[0] = 'r'; /* now reg */
  1151+        p->n_label = CLASSA;
  1152+
  1153+        if (in && ut)
  1154+                in = tcopy(in);
  1155+        p->n_left = mklnode(REG, 0, reg, INT);
  1156+        if (ut) {
  1157+                ip2 = ipnode(mkbinode(ASSIGN, ut, tcopy(p->n_left), INT));
  1158+                DLIST_INSERT_AFTER(ip, ip2, qelem);
  1159+        }
  1160+        if (in) {
  1161+                ip2 = ipnode(mkbinode(ASSIGN, tcopy(p->n_left), in, INT));
  1162+                DLIST_INSERT_BEFORE(ip, ip2, qelem);
  1163+        }
  1164+        return 1;
  1165+}
FishEye: Open Source License registered to PCC.
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-12-22 00:58 +0100