Use reverse_byte to write constant sets in cross-endian configuration

This commit is contained in:
Pierre Muller 2024-01-25 11:04:42 +00:00
parent 5eda6e027d
commit 11b0b9dc57

View File

@ -2664,6 +2664,7 @@ implementation
i,
size: aint;
usedef: tdef;
b : byte;
begin
{ These are default values of parameters. These should be encoded
via DW_AT_default_value, not as a separate sym. Moreover, their
@ -2744,7 +2745,10 @@ implementation
size:=sym.constdef.size;
while (i<size) do
begin
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit((pbyte(sym.value.valueptr+i)^)));
b:=pbyte(sym.value.valueptr+i)^;
if (target_info.endian<>source_info.endian) then
b:=reverse_byte(b);
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(b));
inc(i);
end;
end;