mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-13 17:59:27 +02:00
* mips: Added support for unaligned load/store. It greatly improves performance and prevents bus errors on systems which do not emulate unaligned memory access.
git-svn-id: trunk@45871 -
This commit is contained in:
parent
55c4986c8d
commit
cc936710a0
@ -465,6 +465,12 @@ var
|
||||
begin
|
||||
if (TCGSize2Size[fromsize] < TCGSize2Size[tosize]) then
|
||||
a_load_reg_reg(list,fromsize,tosize,reg,reg);
|
||||
if (ref.alignment<>0) and
|
||||
(ref.alignment<tcgsize2size[tosize]) then
|
||||
begin
|
||||
a_load_reg_ref_unaligned(list,FromSize,ToSize,reg,ref);
|
||||
exit;
|
||||
end;
|
||||
case tosize of
|
||||
OS_8,
|
||||
OS_S8:
|
||||
@ -491,6 +497,12 @@ var
|
||||
begin
|
||||
if (TCGSize2Size[fromsize] >= TCGSize2Size[tosize]) then
|
||||
fromsize := tosize;
|
||||
if (ref.alignment<>0) and
|
||||
(ref.alignment<tcgsize2size[fromsize]) then
|
||||
begin
|
||||
a_load_ref_reg_unaligned(list,FromSize,ToSize,ref,reg);
|
||||
exit;
|
||||
end;
|
||||
case fromsize of
|
||||
OS_S8:
|
||||
Op := A_LB;{Load Signed Byte}
|
||||
|
Loading…
Reference in New Issue
Block a user