* 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 -
This commit is contained in:
nickysn 2020-05-28 21:08:02 +00:00
parent 4637a882d5
commit 3f95fa50ef

View File

@ -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;