Commit fe2b269a4ff4ed0b06c2dca5083fb2271da1c506

Authored by aurel32
1 parent f18cd223

target-alpha: misc fixes

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5355 c046a42c-6fe2-441c-8c8c-71466251a162
target-alpha/op.c
@@ -25,15 +25,6 @@ @@ -25,15 +25,6 @@
25 #include "host-utils.h" 25 #include "host-utils.h"
26 #include "op_helper.h" 26 #include "op_helper.h"
27 27
28 -/* Debug stuff */  
29 -void OPPROTO op_no_op (void)  
30 -{  
31 -#if !defined (DEBUG_OP)  
32 - __asm__ __volatile__("nop" : : : "memory");  
33 -#endif  
34 - RETURN();  
35 -}  
36 -  
37 /* Load and stores */ 28 /* Load and stores */
38 #define MEMSUFFIX _raw 29 #define MEMSUFFIX _raw
39 #include "op_mem.h" 30 #include "op_mem.h"
target-alpha/op_helper.h
@@ -43,5 +43,4 @@ void helper_mfpr (int iprn); @@ -43,5 +43,4 @@ void helper_mfpr (int iprn);
43 void helper_mtpr (int iprn); 43 void helper_mtpr (int iprn);
44 void helper_ld_phys_to_virt (void); 44 void helper_ld_phys_to_virt (void);
45 void helper_st_phys_to_virt (void); 45 void helper_st_phys_to_virt (void);
46 -void helper_tb_flush (void);  
47 46
target-alpha/translate.c
@@ -31,7 +31,6 @@ @@ -31,7 +31,6 @@
31 #include "qemu-common.h" 31 #include "qemu-common.h"
32 32
33 #define DO_SINGLE_STEP 33 #define DO_SINGLE_STEP
34 -#define GENERATE_NOP  
35 #define ALPHA_DEBUG_DISAS 34 #define ALPHA_DEBUG_DISAS
36 #define DO_TB_FLUSH 35 #define DO_TB_FLUSH
37 36
@@ -104,13 +103,6 @@ static void alpha_translate_init(void) @@ -104,13 +103,6 @@ static void alpha_translate_init(void)
104 done_init = 1; 103 done_init = 1;
105 } 104 }
106 105
107 -static always_inline void gen_op_nop (void)  
108 -{  
109 -#if defined(GENERATE_NOP)  
110 - gen_op_no_op();  
111 -#endif  
112 -}  
113 -  
114 /* Memory moves */ 106 /* Memory moves */
115 #if defined(CONFIG_USER_ONLY) 107 #if defined(CONFIG_USER_ONLY)
116 #define OP_LD_TABLE(width) \ 108 #define OP_LD_TABLE(width) \
@@ -184,10 +176,7 @@ static always_inline void gen_load_mem_dyngen (DisasContext *ctx, @@ -184,10 +176,7 @@ static always_inline void gen_load_mem_dyngen (DisasContext *ctx,
184 int ra, int rb, int32_t disp16, 176 int ra, int rb, int32_t disp16,
185 int clear) 177 int clear)
186 { 178 {
187 - if (ra == 31 && disp16 == 0) {  
188 - /* UNOP */  
189 - gen_op_nop();  
190 - } else { 179 + if (ra != 31 || disp16 != 0) {
191 if (rb != 31) 180 if (rb != 31)
192 tcg_gen_addi_i64(cpu_T[0], cpu_ir[rb], disp16); 181 tcg_gen_addi_i64(cpu_T[0], cpu_ir[rb], disp16);
193 else 182 else
@@ -374,8 +363,7 @@ static always_inline void gen_fbcond (DisasContext *ctx, @@ -374,8 +363,7 @@ static always_inline void gen_fbcond (DisasContext *ctx,
374 gen_set_label(l2); 363 gen_set_label(l2);
375 } 364 }
376 365
377 -static always_inline void gen_cmov (DisasContext *ctx,  
378 - TCGCond inv_cond, 366 +static always_inline void gen_cmov (TCGCond inv_cond,
379 int ra, int rb, int rc, 367 int ra, int rb, int rc,
380 int islit, uint8_t lit, int mask) 368 int islit, uint8_t lit, int mask)
381 { 369 {
@@ -487,7 +475,7 @@ static always_inline void gen_ext_h(void (*tcg_gen_ext_i64)(TCGv t0, TCGv t1), @@ -487,7 +475,7 @@ static always_inline void gen_ext_h(void (*tcg_gen_ext_i64)(TCGv t0, TCGv t1),
487 tcg_gen_shli_i64(cpu_ir[rc], cpu_ir[ra], 64 - ((lit & 7) * 8)); 475 tcg_gen_shli_i64(cpu_ir[rc], cpu_ir[ra], 64 - ((lit & 7) * 8));
488 else 476 else
489 tcg_gen_mov_i64(cpu_ir[rc], cpu_ir[ra]); 477 tcg_gen_mov_i64(cpu_ir[rc], cpu_ir[ra]);
490 - } else { 478 + } else {
491 TCGv tmp1, tmp2; 479 TCGv tmp1, tmp2;
492 tmp1 = tcg_temp_new(TCG_TYPE_I64); 480 tmp1 = tcg_temp_new(TCG_TYPE_I64);
493 tcg_gen_andi_i64(tmp1, cpu_ir[rb], 7); 481 tcg_gen_andi_i64(tmp1, cpu_ir[rb], 7);
@@ -521,7 +509,7 @@ static always_inline void gen_ext_l(void (*tcg_gen_ext_i64)(TCGv t0, TCGv t1), @@ -521,7 +509,7 @@ static always_inline void gen_ext_l(void (*tcg_gen_ext_i64)(TCGv t0, TCGv t1),
521 tcg_gen_shli_i64(tmp, tmp, 3); 509 tcg_gen_shli_i64(tmp, tmp, 3);
522 tcg_gen_shr_i64(cpu_ir[rc], cpu_ir[ra], tmp); 510 tcg_gen_shr_i64(cpu_ir[rc], cpu_ir[ra], tmp);
523 tcg_temp_free(tmp); 511 tcg_temp_free(tmp);
524 - } 512 + }
525 if (tcg_gen_ext_i64) 513 if (tcg_gen_ext_i64)
526 tcg_gen_ext_i64(cpu_ir[rc], cpu_ir[rc]); 514 tcg_gen_ext_i64(cpu_ir[rc], cpu_ir[rc]);
527 } else 515 } else
@@ -529,9 +517,9 @@ static always_inline void gen_ext_l(void (*tcg_gen_ext_i64)(TCGv t0, TCGv t1), @@ -529,9 +517,9 @@ static always_inline void gen_ext_l(void (*tcg_gen_ext_i64)(TCGv t0, TCGv t1),
529 } 517 }
530 518
531 /* Code to call arith3 helpers */ 519 /* Code to call arith3 helpers */
532 -static always_inline void gen_arith3_helper(void *helper,  
533 - int ra, int rb, int rc,  
534 - int islit, uint8_t lit) 520 +static always_inline void gen_arith3 (void *helper,
  521 + int ra, int rb, int rc,
  522 + int islit, uint8_t lit)
535 { 523 {
536 if (unlikely(rc == 31)) 524 if (unlikely(rc == 31))
537 return; 525 return;
@@ -792,7 +780,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -792,7 +780,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
792 break; 780 break;
793 case 0x0F: 781 case 0x0F:
794 /* CMPBGE */ 782 /* CMPBGE */
795 - gen_arith3_helper(helper_cmpbge, ra, rb, rc, islit, lit); 783 + gen_arith3(helper_cmpbge, ra, rb, rc, islit, lit);
796 break; 784 break;
797 case 0x12: 785 case 0x12:
798 /* S8ADDL */ 786 /* S8ADDL */
@@ -958,11 +946,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -958,11 +946,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
958 break; 946 break;
959 case 0x40: 947 case 0x40:
960 /* ADDL/V */ 948 /* ADDL/V */
961 - gen_arith3_helper(helper_addlv, ra, rb, rc, islit, lit); 949 + gen_arith3(helper_addlv, ra, rb, rc, islit, lit);
962 break; 950 break;
963 case 0x49: 951 case 0x49:
964 /* SUBL/V */ 952 /* SUBL/V */
965 - gen_arith3_helper(helper_sublv, ra, rb, rc, islit, lit); 953 + gen_arith3(helper_sublv, ra, rb, rc, islit, lit);
966 break; 954 break;
967 case 0x4D: 955 case 0x4D:
968 /* CMPLT */ 956 /* CMPLT */
@@ -970,11 +958,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -970,11 +958,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
970 break; 958 break;
971 case 0x60: 959 case 0x60:
972 /* ADDQ/V */ 960 /* ADDQ/V */
973 - gen_arith3_helper(helper_addqv, ra, rb, rc, islit, lit); 961 + gen_arith3(helper_addqv, ra, rb, rc, islit, lit);
974 break; 962 break;
975 case 0x69: 963 case 0x69:
976 /* SUBQ/V */ 964 /* SUBQ/V */
977 - gen_arith3_helper(helper_subqv, ra, rb, rc, islit, lit); 965 + gen_arith3(helper_subqv, ra, rb, rc, islit, lit);
978 break; 966 break;
979 case 0x6D: 967 case 0x6D:
980 /* CMPLE */ 968 /* CMPLE */
@@ -1015,11 +1003,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1015,11 +1003,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1015 break; 1003 break;
1016 case 0x14: 1004 case 0x14:
1017 /* CMOVLBS */ 1005 /* CMOVLBS */
1018 - gen_cmov(ctx, TCG_COND_EQ, ra, rb, rc, islit, lit, 1); 1006 + gen_cmov(TCG_COND_EQ, ra, rb, rc, islit, lit, 1);
1019 break; 1007 break;
1020 case 0x16: 1008 case 0x16:
1021 /* CMOVLBC */ 1009 /* CMOVLBC */
1022 - gen_cmov(ctx, TCG_COND_NE, ra, rb, rc, islit, lit, 1); 1010 + gen_cmov(TCG_COND_NE, ra, rb, rc, islit, lit, 1);
1023 break; 1011 break;
1024 case 0x20: 1012 case 0x20:
1025 /* BIS */ 1013 /* BIS */
@@ -1027,7 +1015,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1027,7 +1015,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1027 if (ra != 31) { 1015 if (ra != 31) {
1028 if (islit) 1016 if (islit)
1029 tcg_gen_ori_i64(cpu_ir[rc], cpu_ir[ra], lit); 1017 tcg_gen_ori_i64(cpu_ir[rc], cpu_ir[ra], lit);
1030 - else 1018 + else
1031 tcg_gen_or_i64(cpu_ir[rc], cpu_ir[ra], cpu_ir[rb]); 1019 tcg_gen_or_i64(cpu_ir[rc], cpu_ir[ra], cpu_ir[rb]);
1032 } else { 1020 } else {
1033 if (islit) 1021 if (islit)
@@ -1039,11 +1027,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1039,11 +1027,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1039 break; 1027 break;
1040 case 0x24: 1028 case 0x24:
1041 /* CMOVEQ */ 1029 /* CMOVEQ */
1042 - gen_cmov(ctx, TCG_COND_NE, ra, rb, rc, islit, lit, 0); 1030 + gen_cmov(TCG_COND_NE, ra, rb, rc, islit, lit, 0);
1043 break; 1031 break;
1044 case 0x26: 1032 case 0x26:
1045 /* CMOVNE */ 1033 /* CMOVNE */
1046 - gen_cmov(ctx, TCG_COND_EQ, ra, rb, rc, islit, lit, 0); 1034 + gen_cmov(TCG_COND_EQ, ra, rb, rc, islit, lit, 0);
1047 break; 1035 break;
1048 case 0x28: 1036 case 0x28:
1049 /* ORNOT */ 1037 /* ORNOT */
@@ -1083,11 +1071,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1083,11 +1071,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1083 break; 1071 break;
1084 case 0x44: 1072 case 0x44:
1085 /* CMOVLT */ 1073 /* CMOVLT */
1086 - gen_cmov(ctx, TCG_COND_GE, ra, rb, rc, islit, lit, 0); 1074 + gen_cmov(TCG_COND_GE, ra, rb, rc, islit, lit, 0);
1087 break; 1075 break;
1088 case 0x46: 1076 case 0x46:
1089 /* CMOVGE */ 1077 /* CMOVGE */
1090 - gen_cmov(ctx, TCG_COND_LT, ra, rb, rc, islit, lit, 0); 1078 + gen_cmov(TCG_COND_LT, ra, rb, rc, islit, lit, 0);
1091 break; 1079 break;
1092 case 0x48: 1080 case 0x48:
1093 /* EQV */ 1081 /* EQV */
@@ -1120,11 +1108,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1120,11 +1108,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1120 break; 1108 break;
1121 case 0x64: 1109 case 0x64:
1122 /* CMOVLE */ 1110 /* CMOVLE */
1123 - gen_cmov(ctx, TCG_COND_GT, ra, rb, rc, islit, lit, 0); 1111 + gen_cmov(TCG_COND_GT, ra, rb, rc, islit, lit, 0);
1124 break; 1112 break;
1125 case 0x66: 1113 case 0x66:
1126 /* CMOVGT */ 1114 /* CMOVGT */
1127 - gen_cmov(ctx, TCG_COND_LE, ra, rb, rc, islit, lit, 0); 1115 + gen_cmov(TCG_COND_LE, ra, rb, rc, islit, lit, 0);
1128 break; 1116 break;
1129 case 0x6C: 1117 case 0x6C:
1130 /* IMPLVER */ 1118 /* IMPLVER */
@@ -1139,7 +1127,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1139,7 +1127,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1139 switch (fn7) { 1127 switch (fn7) {
1140 case 0x02: 1128 case 0x02:
1141 /* MSKBL */ 1129 /* MSKBL */
1142 - gen_arith3_helper(helper_mskbl, ra, rb, rc, islit, lit); 1130 + gen_arith3(helper_mskbl, ra, rb, rc, islit, lit);
1143 break; 1131 break;
1144 case 0x06: 1132 case 0x06:
1145 /* EXTBL */ 1133 /* EXTBL */
@@ -1147,11 +1135,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1147,11 +1135,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1147 break; 1135 break;
1148 case 0x0B: 1136 case 0x0B:
1149 /* INSBL */ 1137 /* INSBL */
1150 - gen_arith3_helper(helper_insbl, ra, rb, rc, islit, lit); 1138 + gen_arith3(helper_insbl, ra, rb, rc, islit, lit);
1151 break; 1139 break;
1152 case 0x12: 1140 case 0x12:
1153 /* MSKWL */ 1141 /* MSKWL */
1154 - gen_arith3_helper(helper_mskwl, ra, rb, rc, islit, lit); 1142 + gen_arith3(helper_mskwl, ra, rb, rc, islit, lit);
1155 break; 1143 break;
1156 case 0x16: 1144 case 0x16:
1157 /* EXTWL */ 1145 /* EXTWL */
@@ -1159,11 +1147,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1159,11 +1147,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1159 break; 1147 break;
1160 case 0x1B: 1148 case 0x1B:
1161 /* INSWL */ 1149 /* INSWL */
1162 - gen_arith3_helper(helper_inswl, ra, rb, rc, islit, lit); 1150 + gen_arith3(helper_inswl, ra, rb, rc, islit, lit);
1163 break; 1151 break;
1164 case 0x22: 1152 case 0x22:
1165 /* MSKLL */ 1153 /* MSKLL */
1166 - gen_arith3_helper(helper_mskll, ra, rb, rc, islit, lit); 1154 + gen_arith3(helper_mskll, ra, rb, rc, islit, lit);
1167 break; 1155 break;
1168 case 0x26: 1156 case 0x26:
1169 /* EXTLL */ 1157 /* EXTLL */
@@ -1171,19 +1159,19 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1171,19 +1159,19 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1171 break; 1159 break;
1172 case 0x2B: 1160 case 0x2B:
1173 /* INSLL */ 1161 /* INSLL */
1174 - gen_arith3_helper(helper_insll, ra, rb, rc, islit, lit); 1162 + gen_arith3(helper_insll, ra, rb, rc, islit, lit);
1175 break; 1163 break;
1176 case 0x30: 1164 case 0x30:
1177 /* ZAP */ 1165 /* ZAP */
1178 - gen_arith3_helper(helper_zap, ra, rb, rc, islit, lit); 1166 + gen_arith3(helper_zap, ra, rb, rc, islit, lit);
1179 break; 1167 break;
1180 case 0x31: 1168 case 0x31:
1181 /* ZAPNOT */ 1169 /* ZAPNOT */
1182 - gen_arith3_helper(helper_zapnot, ra, rb, rc, islit, lit); 1170 + gen_arith3(helper_zapnot, ra, rb, rc, islit, lit);
1183 break; 1171 break;
1184 case 0x32: 1172 case 0x32:
1185 /* MSKQL */ 1173 /* MSKQL */
1186 - gen_arith3_helper(helper_mskql, ra, rb, rc, islit, lit); 1174 + gen_arith3(helper_mskql, ra, rb, rc, islit, lit);
1187 break; 1175 break;
1188 case 0x34: 1176 case 0x34:
1189 /* SRL */ 1177 /* SRL */
@@ -1223,7 +1211,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1223,7 +1211,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1223 break; 1211 break;
1224 case 0x3B: 1212 case 0x3B:
1225 /* INSQL */ 1213 /* INSQL */
1226 - gen_arith3_helper(helper_insql, ra, rb, rc, islit, lit); 1214 + gen_arith3(helper_insql, ra, rb, rc, islit, lit);
1227 break; 1215 break;
1228 case 0x3C: 1216 case 0x3C:
1229 /* SRA */ 1217 /* SRA */
@@ -1243,11 +1231,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1243,11 +1231,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1243 break; 1231 break;
1244 case 0x52: 1232 case 0x52:
1245 /* MSKWH */ 1233 /* MSKWH */
1246 - gen_arith3_helper(helper_mskwh, ra, rb, rc, islit, lit); 1234 + gen_arith3(helper_mskwh, ra, rb, rc, islit, lit);
1247 break; 1235 break;
1248 case 0x57: 1236 case 0x57:
1249 /* INSWH */ 1237 /* INSWH */
1250 - gen_arith3_helper(helper_inswh, ra, rb, rc, islit, lit); 1238 + gen_arith3(helper_inswh, ra, rb, rc, islit, lit);
1251 break; 1239 break;
1252 case 0x5A: 1240 case 0x5A:
1253 /* EXTWH */ 1241 /* EXTWH */
@@ -1255,11 +1243,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1255,11 +1243,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1255 break; 1243 break;
1256 case 0x62: 1244 case 0x62:
1257 /* MSKLH */ 1245 /* MSKLH */
1258 - gen_arith3_helper(helper_msklh, ra, rb, rc, islit, lit); 1246 + gen_arith3(helper_msklh, ra, rb, rc, islit, lit);
1259 break; 1247 break;
1260 case 0x67: 1248 case 0x67:
1261 /* INSLH */ 1249 /* INSLH */
1262 - gen_arith3_helper(helper_inslh, ra, rb, rc, islit, lit); 1250 + gen_arith3(helper_inslh, ra, rb, rc, islit, lit);
1263 break; 1251 break;
1264 case 0x6A: 1252 case 0x6A:
1265 /* EXTLH */ 1253 /* EXTLH */
@@ -1267,11 +1255,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1267,11 +1255,11 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1267 break; 1255 break;
1268 case 0x72: 1256 case 0x72:
1269 /* MSKQH */ 1257 /* MSKQH */
1270 - gen_arith3_helper(helper_mskqh, ra, rb, rc, islit, lit); 1258 + gen_arith3(helper_mskqh, ra, rb, rc, islit, lit);
1271 break; 1259 break;
1272 case 0x77: 1260 case 0x77:
1273 /* INSQH */ 1261 /* INSQH */
1274 - gen_arith3_helper(helper_insqh, ra, rb, rc, islit, lit); 1262 + gen_arith3(helper_insqh, ra, rb, rc, islit, lit);
1275 break; 1263 break;
1276 case 0x7A: 1264 case 0x7A:
1277 /* EXTQH */ 1265 /* EXTQH */
@@ -1310,15 +1298,15 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) @@ -1310,15 +1298,15 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
1310 break; 1298 break;
1311 case 0x30: 1299 case 0x30:
1312 /* UMULH */ 1300 /* UMULH */
1313 - gen_arith3_helper(helper_umulh, ra, rb, rc, islit, lit); 1301 + gen_arith3(helper_umulh, ra, rb, rc, islit, lit);
1314 break; 1302 break;
1315 case 0x40: 1303 case 0x40:
1316 /* MULL/V */ 1304 /* MULL/V */
1317 - gen_arith3_helper(helper_mullv, ra, rb, rc, islit, lit); 1305 + gen_arith3(helper_mullv, ra, rb, rc, islit, lit);
1318 break; 1306 break;
1319 case 0x60: 1307 case 0x60:
1320 /* MULQ/V */ 1308 /* MULQ/V */
1321 - gen_arith3_helper(helper_mulqv, ra, rb, rc, islit, lit); 1309 + gen_arith3(helper_mulqv, ra, rb, rc, islit, lit);
1322 break; 1310 break;
1323 default: 1311 default:
1324 goto invalid_opc; 1312 goto invalid_opc;
@@ -2397,7 +2385,7 @@ static always_inline void gen_intermediate_code_internal (CPUState *env, @@ -2397,7 +2385,7 @@ static always_inline void gen_intermediate_code_internal (CPUState *env,
2397 } 2385 }
2398 if (loglevel & CPU_LOG_TB_IN_ASM) { 2386 if (loglevel & CPU_LOG_TB_IN_ASM) {
2399 fprintf(logfile, "IN: %s\n", lookup_symbol(pc_start)); 2387 fprintf(logfile, "IN: %s\n", lookup_symbol(pc_start));
2400 - target_disas(logfile, pc_start, ctx.pc - pc_start, 1); 2388 + target_disas(logfile, pc_start, ctx.pc - pc_start, 1);
2401 fprintf(logfile, "\n"); 2389 fprintf(logfile, "\n");
2402 } 2390 }
2403 #endif 2391 #endif