LEFT | RIGHT |
(no file at all) | |
1 // Inferno utils/5c/peep.c | 1 // Inferno utils/5c/peep.c |
2 // http://code.google.com/p/inferno-os/source/browse/utils/5c/peep.c | 2 // http://code.google.com/p/inferno-os/source/browse/utils/5c/peep.c |
3 // | 3 // |
4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. | 4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. |
5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) | 5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) |
6 // Portions Copyright © 1997-1999 Vita Nuova Limited | 6 // Portions Copyright © 1997-1999 Vita Nuova Limited |
7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) | 7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) |
8 // Portions Copyright © 2004,2006 Bruce Ellis | 8 // Portions Copyright © 2004,2006 Bruce Ellis |
9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) | 9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) |
10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others | 10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others |
(...skipping 1082 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1093 if(v->reg == REGRET) | 1093 if(v->reg == REGRET) |
1094 return 2; | 1094 return 2; |
1095 if(v->type == D_FREG) | 1095 if(v->type == D_FREG) |
1096 if(v->reg == FREGRET) | 1096 if(v->reg == FREGRET) |
1097 return 2; | 1097 return 2; |
1098 | 1098 |
1099 case ABL: /* funny */ | 1099 case ABL: /* funny */ |
1100 if(v->type == D_REG) { | 1100 if(v->type == D_REG) { |
1101 if(v->reg <= REGEXT && v->reg > exregoffset) | 1101 if(v->reg <= REGEXT && v->reg > exregoffset) |
1102 return 2; | 1102 return 2; |
1103 » » » if(v->reg == REGARG) | 1103 » » » if(v->reg == (uchar)REGARG) |
1104 return 2; | 1104 return 2; |
1105 } | 1105 } |
1106 if(v->type == D_FREG) | 1106 if(v->type == D_FREG) |
1107 if(v->reg <= FREGEXT && v->reg > exfregoffset) | 1107 if(v->reg <= FREGEXT && v->reg > exfregoffset) |
1108 return 2; | 1108 return 2; |
1109 | 1109 |
1110 if(s != A) { | 1110 if(s != A) { |
1111 if(copysub(&p->to, v, s, 1)) | 1111 if(copysub(&p->to, v, s, 1)) |
1112 return 1; | 1112 return 1; |
1113 return 0; | 1113 return 0; |
1114 } | 1114 } |
1115 if(copyau(&p->to, v)) | 1115 if(copyau(&p->to, v)) |
1116 return 4; | 1116 return 4; |
1117 return 3; | 1117 return 3; |
1118 | 1118 |
1119 case ATEXT: /* funny */ | 1119 case ATEXT: /* funny */ |
1120 if(v->type == D_REG) | 1120 if(v->type == D_REG) |
1121 » » » if(v->reg == REGARG) | 1121 » » » if(v->reg == (uchar)REGARG) |
1122 return 3; | 1122 return 3; |
1123 return 0; | 1123 return 0; |
1124 } | 1124 } |
1125 return 0; | 1125 return 0; |
1126 } | 1126 } |
1127 | 1127 |
1128 int | 1128 int |
1129 a2type(Prog *p) | 1129 a2type(Prog *p) |
1130 { | 1130 { |
1131 | 1131 |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1460 continue; | 1460 continue; |
1461 } | 1461 } |
1462 if(t1 == End || t1 == Branch) { | 1462 if(t1 == End || t1 == Branch) { |
1463 applypred(r, &j1, Falsecond, Keepbranch); | 1463 applypred(r, &j1, Falsecond, Keepbranch); |
1464 excise(r); | 1464 excise(r); |
1465 continue; | 1465 continue; |
1466 } | 1466 } |
1467 } | 1467 } |
1468 } | 1468 } |
1469 } | 1469 } |
LEFT | RIGHT |