if not required, to avoid translating OS_C64 into OS_F64 (fix for x86
test failures after r45205)
git-svn-id: trunk@45221 -
(cherry picked from commit 3f6ad30b69)
integer registers, for homogeneous records/arrays on ppc64le (related to
mantis #36934)
git-svn-id: trunk@45205 -
(cherry picked from commit 722ad1ff7b)
the different vector types must be either handled in the high level cg or
by using the shuffle parameter
git-svn-id: trunk@43860 -
(cherry picked from commit b7c6e01b03)
* changed the way OP_NEG and OP_NOT are handled in op_reg_ref, in order to be
consistent with op_reg_reg
* introduced op_reg,op_ref,op_subsetreg,op_subsetref and op_loc for the unary
operations only (OP_NEG,OP_NOT)
git-svn-id: trunk@45302 -
(cherry picked from commit 0f6ab0de17)
# Conflicts:
# compiler/cgobj.pas
checks for fpu exceptions for arm and aarch64.
------------------------------------------------------------------------
r42525 | florian | 2019-07-28 21:06:36 +0000 (Sun, 28 Jul 2019) | 2 lines
+ software handling of exceptions on arm
* reworked software handling of exceptions so they can be check lazily
------------------------------------------------------------------------
--- Merging r42525 into '.':
U compiler/arm/cgcpu.pas
U compiler/arm/narmadd.pas
U compiler/arm/narminl.pas
U compiler/arm/narmmat.pas
U compiler/ncgcal.pas
U compiler/procinfo.pas
U rtl/arm/arm.inc
--- Recording mergeinfo for merge of r42525 into '.':
U .
Summary of conflicts:
Tree conflicts: 1
------------------------------------------------------------------------
r42891 | florian | 2019-09-01 17:26:11 +0000 (Sun, 01 Sep 2019) | 1 line
+ support for software floating point exception handling on AArch64 (-CE)
------------------------------------------------------------------------
--- Merging r42891 into '.':
U compiler/aarch64/cgcpu.pas
U compiler/aarch64/ncpuadd.pas
U compiler/aarch64/ncpuinl.pas
U compiler/aarch64/ncpumat.pas
U rtl/aarch64/aarch64.inc
U rtl/aarch64/math.inc
U rtl/aarch64/mathu.inc
--- Recording mergeinfo for merge of r42891 into '.':
G .
git-svn-id: branches/fixes_3_2@46225 -
U rtl/inc/objc.pp
--- Recording mergeinfo for merge of r41243 into '.':
U .
--- Merging r41335 into '.':
U compiler/arm/cgcpu.pas
U compiler/cgobj.pas
--- Recording mergeinfo for merge of r41335 into '.':
G .
--- Merging r41422 into '.':
U compiler/scanner.pas
--- Recording mergeinfo for merge of r41422 into '.':
G .
--- Merging r41474 into '.':
U compiler/pexpr.pas
A tests/webtbf/tw35149a.pp
A tests/webtbs/tw35149.pp
--- Recording mergeinfo for merge of r41474 into '.':
G .
--- Merging r41650 into '.':
U compiler/aarch64/racpugas.pas
--- Recording mergeinfo for merge of r41650 into '.':
G .
--- Merging r41651 into '.':
U tests/test/taarch64abi.pp
--- Recording mergeinfo for merge of r41651 into '.':
G .
--- Merging r41905 into '.':
U compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r41905 into '.':
G .
git-svn-id: branches/fixes_3_2@41943 -
so that they can still be freed after the reference has been changed
(e.g. in case of array indexing or record field accesses) (mantis #33628)
git-svn-id: trunk@38814 -
tcpuparamanager, very similar to the existing get_volatile_registers_XXX. The
new methods are called get_saved_registers_XXX, where XXX is the register
type ("int", "address", "fpu" or "mm")
git-svn-id: trunk@38794 -
from cpubase unit to a method in the tcg class. The reason for doing that is
that this is now a standard part of the 16-bit and 8-bit code generators and
moving to the tcg class allows doing extra checks (not done yet, but for
example, in the future, we can keep track of whether there was an extra
register allocated with getintregister and halt with an internalerror in case
GetNextReg() is called for registers, which weren't allocated as a part of a
sequence, therefore catching a certain class of 8-bit and 16-bit code
generator bugs at compile time, instead of generating wrong code).
- removed GetLastReg() from avr's cpubase unit, because it isn't used for
anything. It might be added to the tcg class, in case it's ever needed, but
for now I've left it out.
* GetOffsetReg() and GetOffsetReg64() were also moved to the tcg unit.
git-svn-id: trunk@37180 -
o separate information for reading and writing, because e.g. in a
try-block, only the writes to local variables and parameters are
volatile (they have to be committed immediately in case the next
instruction causes an exception)
o for now, only references to absolute memory addresses are marked
as volatile
o the volatily information is (should be) properly maintained throughout
all code generators for all archictures with this patch
o no optimizers or other compiler infrastructure uses the volatility
information yet
o this functionality is not (yet) exposed at the language level, it
is only for internal code generator use right now
git-svn-id: trunk@34996 -
it was AT_NONE, which is invalid and should never be used
* explicitly pass the correct value for all calls to those methods elsewhere
in the compiler
git-svn-id: trunk@34250 -
tasmdata.DefineAsmSymbol() and all routines that call it
o will be used to automatically generate AB_INDIRECT sybols when
necessary
git-svn-id: trunk@34164 -
paralocs (e.g. a 3 byte record) in case the data's size has been
rounded up to the next power of two as far as the paraloc is concerned
(because those 3 bytes had to be shifted to be located in the upper 3
bytes of a 4 byte location)
git-svn-id: trunk@32633 -
type-safe way (for LLVM, and also internal consistency checking between
the VMT as generated in nobj.pas and ncgvmt.pas)
o also converted the VMT validity checking to the node level
git-svn-id: trunk@30950 -
* tcg.a_reg_dealloc: ignore NR_NO, prevents creating useless deallocations of NR_DEFAULTFLAGS on MIPS targets which have NR_DEFAULTFLAGS=NR_NO.
git-svn-id: trunk@29242 -
hardcoded registers for the most part)
+ added extra g_exception_discard_reason() that can be called when we only
want to get rid of the currently pushed exception reason, and don't have
to load it (so it can do nothing on platforms that don't use push/pop)
git-svn-id: branches/hlcgllvm@28481 -