2
0
Эх сурвалжийг харах

* use const_align(sizeof(pint)) alignment instead of sizeof(pint) for various
compiler-generated structures, so they don't waste any extra alignment space
on 8-bit CPUs like the Z80 and the AVR

git-svn-id: trunk@45524 -

nickysn 5 жил өмнө
parent
commit
3f95fa50ef
1 өөрчлөгдсөн 11 нэмэгдсэн , 11 устгасан
  1. 11 11
      compiler/ngenutil.pas

+ 11 - 11
compiler/ngenutil.pas

@@ -1162,7 +1162,7 @@ implementation
         unitinits.get_final_asmlist(
           current_asmdata.DefineAsmSymbol('INITFINAL',AB_GLOBAL,AT_DATA,tabledef),
           tabledef,
-          sec_data,'INITFINAL',sizeof(pint)
+          sec_data,'INITFINAL',const_align(sizeof(pint))
         )
       );
 
@@ -1219,7 +1219,7 @@ implementation
       sym:=current_asmdata.DefineAsmSymbol('FPC_THREADVARTABLES',AB_GLOBAL,AT_DATA,tabledef);
       current_asmdata.asmlists[al_globals].concatlist(
         tcb.get_final_asmlist(
-          sym,tabledef,sec_data,'FPC_THREADVARTABLES',sizeof(pint)
+          sym,tabledef,sec_data,'FPC_THREADVARTABLES',const_align(sizeof(pint))
         )
       );
       tcb.free;
@@ -1274,7 +1274,7 @@ implementation
            s:=make_mangledname('THREADVARLIST',current_module.localsymtable,'');
            sym:=current_asmdata.DefineAsmSymbol(s,AB_GLOBAL,AT_DATA_FORCEINDIRECT,tabledef);
            current_asmdata.asmlists[al_globals].concatlist(
-             tcb.get_final_asmlist(sym,tabledef,sec_data,s,sizeof(pint)));
+             tcb.get_final_asmlist(sym,tabledef,sec_data,s,const_align(sizeof(pint))));
            include(current_module.moduleflags,mf_threadvars);
            current_module.add_public_asmsym(sym);
          end
@@ -1328,7 +1328,7 @@ implementation
         tcb.get_final_asmlist(
           current_asmdata.DefineAsmSymbol(tablename,AB_GLOBAL,AT_DATA,tabledef),
           tabledef,
-          sec_data,tablename,sizeof(pint)
+          sec_data,tablename,const_align(sizeof(pint))
         )
       );
       tcb.free;
@@ -1370,7 +1370,7 @@ implementation
       current_asmdata.asmlists[al_globals].concatList(
         tcb.get_final_asmlist(
           current_asmdata.DefineAsmSymbol(s,AB_GLOBAL,AT_DATA,rawdatadef),
-          rawdatadef,sec_data,s,sizeof(pint)));
+          rawdatadef,sec_data,s,const_align(sizeof(pint))));
       tcb.free;
       include(current_module.moduleflags,unitflag);
     end;
@@ -1438,7 +1438,7 @@ implementation
       current_asmdata.AsmLists[al_globals].concatList(
         tcb.get_final_asmlist(
           current_asmdata.DefineAsmSymbol('FPC_RESOURCESTRINGTABLES',AB_GLOBAL,AT_DATA,tabledef),
-          tabledef,sec_rodata,'FPC_RESOURCESTRINGTABLES',sizeof(pint)
+          tabledef,sec_rodata,'FPC_RESOURCESTRINGTABLES',const_align(sizeof(pint))
         )
       );
       tcb.free;
@@ -1467,7 +1467,7 @@ implementation
               voidpointertype,
               sec_rodata,
               'FPC_RESLOCATION',
-              sizeof(puint)
+              const_align(sizeof(puint))
             )
           );
 
@@ -1512,7 +1512,7 @@ implementation
           tcb.emit_tai(Tai_const.Create_int_dataptr(stacksize),ptruinttype);
           sym:=current_asmdata.DefineAsmSymbol('__stklen',AB_GLOBAL,AT_DATA,ptruinttype);
           current_asmdata.asmlists[al_globals].concatlist(
-            tcb.get_final_asmlist(sym,ptruinttype,sec_data,'__stklen',sizeof(pint))
+            tcb.get_final_asmlist(sym,ptruinttype,sec_data,'__stklen',const_align(sizeof(pint)))
           );
           tcb.free;
         end;
@@ -1554,7 +1554,7 @@ implementation
       tcb.emit_tai(Tai_const.Create_int_dataptr(heapsize),ptruinttype);
       sym:=current_asmdata.DefineAsmSymbol('__heapsize',AB_GLOBAL,AT_DATA,ptruinttype);
       current_asmdata.asmlists[al_globals].concatlist(
-        tcb.get_final_asmlist(sym,ptruinttype,sec_data,'__heapsize',sizeof(pint))
+        tcb.get_final_asmlist(sym,ptruinttype,sec_data,'__heapsize',const_align(sizeof(pint)))
       );
       tcb.free;
 
@@ -1574,7 +1574,7 @@ implementation
       tcb.emit_ord_const(byte(cs_gdb_valgrind in current_settings.globalswitches),u8inttype);
       sym:=current_asmdata.DefineAsmSymbol('__fpc_valgrind',AB_GLOBAL,AT_DATA,u8inttype);
       current_asmdata.asmlists[al_globals].concatlist(
-        tcb.get_final_asmlist(sym,ptruinttype,sec_data,'__fpc_valgrind',sizeof(pint))
+        tcb.get_final_asmlist(sym,ptruinttype,sec_data,'__fpc_valgrind',const_align(sizeof(pint)))
       );
       tcb.free;
     end;
@@ -1619,7 +1619,7 @@ implementation
       current_asmdata.asmlists[al_objc_data].concatList(
         tcb.get_final_asmlist(
           current_asmdata.DefineAsmSymbol(target_asm.labelprefix+'_OBJC_IMAGE_INFO',AB_LOCAL,AT_DATA,u64inttype),
-          u64inttype,sec_objc_image_info,'_OBJC_IMAGE_INFO',sizeof(pint)
+          u64inttype,sec_objc_image_info,'_OBJC_IMAGE_INFO',const_align(sizeof(pint))
         )
       );
       tcb.free;