소스 검색

Cleaned up the reloc type mess. Now there's RT_NONE, RT_DIRECT, and RT_AMS, along with their corresponding handlers in parse_file and save_tpr.

git-svn-id: file:///var/svn/tigccpp/trunk@399 9552661e-59e3-4036-b4f2-dbe53926924f
joeyadams 18 년 전
부모
커밋
59fad2c1c2
2개의 변경된 파일14개의 추가작업 그리고 3개의 파일을 삭제
  1. 11 2
      ktigcc/tpr.cxx
  2. 3 1
      ktigcc/tpr.h

+ 11 - 2
ktigcc/tpr.cxx

@@ -242,9 +242,12 @@ int parse_file(FILE *f,TPRDataStruct *dest)
 #define reloc_param(token,setting) \
             if ( (p=find_param(buffer, token)) ) \
             { \
-                if (!strcmp(p,"None") || !strcmp(p,"AMS") \
-                    || !strcmp(p,"Direct")) \
+                if (!strcmp(p,"None")) \
                     dest->libopts.setting = RT_NONE; \
+                else if (!strcmp(p,"Direct")) \
+                    dest->libopts.setting = RT_DIRECT; \
+                else if (!strcmp(p,"AMS")) \
+                    dest->libopts.setting = RT_AMS; \
                 else if (!strcmp(p, "Precomputed")) \
                     dest->libopts.setting = RT_PRECOMP; \
                 else if (!strcmp(p, "Kernel")) \
@@ -558,6 +561,12 @@ int save_tpr(FILE *f,TPRDataStruct *dest)
 	case RT_NONE: \
 		fprintf(f,token "None\r\n"); \
 		break; \
+    case RT_DIRECT: \
+        fprintf(f,"%sDirect\r\n",token); \
+        break; \
+    case RT_AMS: \
+        fprintf(f,"%sAMS",token); \
+        break; \
 	case RT_PRECOMP: \
 		fprintf(f,token "Precomputed\r\n"); \
 		break; \

+ 3 - 1
ktigcc/tpr.h

@@ -79,7 +79,9 @@ struct tprsettings
 };
 
 enum tprreloctypes {
-  RT_NONE, // AMS (relocs) / Direct (ROM_CALLs) / None (BSS), not for DataVar
+  RT_NONE, // None (BSS)
+  RT_DIRECT, // Direct (ROM_CALLs)
+  RT_AMS, // AMS (relocs)
   RT_PRECOMP, // ROM_CALLs only: Precomputed (Optimized)
   RT_KERNEL, // Kernel
   RT_COMPRESSED, // Compressed