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