sergei
eeb15fc445
* Added virtual method tprocinfo.postprocess_code and moved target-specific processing from base class into target-specific descendant classes (ARM and AVR, other targets still to do).
...
git-svn-id: trunk@27449 -
2014-04-02 13:14:06 +00:00
Jonas Maebe
edff5a9aa1
* fixed m68k typo in r27438
...
git-svn-id: trunk@27443 -
2014-04-01 21:48:28 +00:00
Jonas Maebe
f017e16722
* increased ppu version after all symdef changes
...
git-svn-id: trunk@27442 -
2014-04-01 21:41:40 +00:00
Jonas Maebe
d452686c39
* moved pbestrealtype from symdef to symcpu
...
git-svn-id: trunk@27441 -
2014-04-01 21:41:37 +00:00
Jonas Maebe
a251b270b6
- removed no longer used jvmdef unit from uses clause
...
git-svn-id: trunk@27440 -
2014-04-01 21:41:33 +00:00
Jonas Maebe
93d50bc287
* moved jvm-specific classdef-related fields from tenumdef to a platform-
...
specific descendant
git-svn-id: trunk@27439 -
2014-04-01 21:41:30 +00:00
Jonas Maebe
9c7c64a3af
* moved amiga/morphos-specific libsym-related field from tprocdef to
...
cpu-specific descendants (unfortunately causes some duplication, but the
code is trivial and there is no easy way to avoid it)
* also moved the use of the field in ncal to cpu-specific files (with same
caveat)
git-svn-id: trunk@27438 -
2014-04-01 21:41:27 +00:00
Jonas Maebe
5053a39501
* moved ARM-specific tprocdef.total_stackframe_size field to cpu-specific
...
descendant
git-svn-id: trunk@27437 -
2014-04-01 21:41:24 +00:00
Jonas Maebe
f101118cd6
* moved MIPS-specific tprocdef.total_local_size field to cpu-specific
...
descendant
git-svn-id: trunk@27436 -
2014-04-01 21:41:21 +00:00
Jonas Maebe
d020a32b9a
- removed no longer used tprocdef.fpu_used field for i386/i8086 (the one
...
place where it was used, we now handle the consequence directly)
git-svn-id: trunk@27435 -
2014-04-01 21:41:18 +00:00
Jonas Maebe
806bf0b88e
- removed storing/loading unused byte for tprocdef.fpu_used
...
git-svn-id: trunk@27434 -
2014-04-01 21:41:14 +00:00
florian
0a7b795744
* fix for the regressions caused by r27417
...
git-svn-id: trunk@27433 -
2014-04-01 19:34:21 +00:00
nickysn
5f57274b74
+ proper i8086 Seg() implementation (i.e. support segments other than DS)
...
git-svn-id: trunk@27432 -
2014-04-01 19:11:39 +00:00
sergei
8c693a3300
* Win64 apparently expects records with single field of floating-point type to be passed the same way as that only field, i.e. in xmm register. Fixes tests/cg/tcalext6.pp.
...
git-svn-id: trunk@27431 -
2014-04-01 17:04:47 +00:00
sergei
db621780d5
* x86_64-win64: fixed handling of RELOC_RELATIVE_1..RELOC_RELATIVE_5 COFF relocations, they were off by 4 bytes, causing failure in tests/test/tcalext.pp.
...
git-svn-id: trunk@27430 -
2014-04-01 16:26:56 +00:00
florian
73cf0b62f2
* relaxed conditions for floats in int registers, this improved softfloat code significantly
...
git-svn-id: trunk@27417 -
2014-03-31 21:14:16 +00:00
sergei
68b97bee5a
* ARM: Implemented floating-point negation and abs() for softfloat using integer instructions. Fixes webtbs/tw4534.pp, and also yields much faster code than existing implementation.
...
Background: these operations are defined as flipping or clearing the upper bit of number, respectively, and never result in precision loss or raise floating-point exceptions.
git-svn-id: trunk@27411 -
2014-03-31 15:03:15 +00:00
nickysn
d6cb55297c
+ symx86.pas added to ppc8086.lpi
...
git-svn-id: trunk@27405 -
2014-03-31 09:24:55 +00:00
Jonas Maebe
8364232049
+ symx86 unit, forgot to commit (part of r27397)
...
git-svn-id: trunk@27399 -
2014-03-30 22:03:55 +00:00
nickysn
e86e108dc5
+ added the newly added source files from r27379 to ppc8086.lpi
...
git-svn-id: trunk@27398 -
2014-03-30 21:25:33 +00:00
Jonas Maebe
338c064beb
* moved x86-specific tpointerdef functionality to architecture-specific
...
descendants
git-svn-id: trunk@27397 -
2014-03-30 21:04:36 +00:00
Jonas Maebe
dae5d1ff62
+ added class reference types of the architecture-specific t*def/t*sym
...
classes
git-svn-id: trunk@27396 -
2014-03-30 21:04:32 +00:00
Jonas Maebe
43992495cb
* moved jvm tprocdef name mangling to jvm-specific descendant class
...
git-svn-id: trunk@27395 -
2014-03-30 21:04:29 +00:00
Jonas Maebe
f4c0daddb4
* moved jvm-specific exprasm field from tprocdef to jvm-specific descendant
...
git-svn-id: trunk@27394 -
2014-03-30 21:04:25 +00:00
nickysn
0a9f738167
+ tcg8086.g_copyvaluepara_openarray: support source to be in a different segment
...
git-svn-id: trunk@27393 -
2014-03-30 19:55:11 +00:00
nickysn
4763723c75
+ support compact, large and huge memory models in x86/cpubase.segment_regs_equal()
...
git-svn-id: trunk@27392 -
2014-03-30 19:36:21 +00:00
nickysn
1f8280e8f1
* load the destination segment in tcg8086.g_copyvaluepara_openarray from SS
...
instead of DS, because the destination is on the stack, but in some memory
models DS may be different than SS
git-svn-id: trunk@27391 -
2014-03-30 19:10:21 +00:00
nickysn
096bba90da
* fixed Tcgx86.g_concatcopy not using the correct push instruction size when
...
pushing the source segment
git-svn-id: trunk@27389 -
2014-03-30 18:09:15 +00:00
nickysn
f4a0c08736
* fixed nested access to parent local variables in i8086 far data memory models
...
git-svn-id: trunk@27388 -
2014-03-30 17:50:35 +00:00
florian
8dfcc2b399
* do not reuse tmp. registers in tbasecgarm.handle_load_store
...
git-svn-id: trunk@27387 -
2014-03-30 17:28:45 +00:00
Jonas Maebe
11c7d5223c
* moved ifdef'd jvm code from tprocvardef to jvm-specific descendant
...
git-svn-id: trunk@27386 -
2014-03-30 17:15:57 +00:00
Jonas Maebe
a05b078fa0
* made ppuload_platform() virtual (should have been part of r27378)
...
git-svn-id: trunk@27385 -
2014-03-30 17:15:53 +00:00
Jonas Maebe
721fd887c3
* moved all jvm-specific code from symsym to jvm/symcpu
...
git-svn-id: trunk@27384 -
2014-03-30 16:55:09 +00:00
Jonas Maebe
4a7e6b8b8f
* instantiate the cpu-specific version of all defs/syms when loading them
...
from ppu (was only done for absolutevarsym until now)
git-svn-id: trunk@27383 -
2014-03-30 16:55:06 +00:00
nickysn
9ae26316e8
* fixed the handling of const resourcestrings in the i8086 far data memory models
...
git-svn-id: trunk@27380 -
2014-03-30 16:30:51 +00:00
Jonas Maebe
4a79481c51
* isolated segment-related functionality of tabsolutevarsym into i386/i8086-
...
specific descendent classes and moved the code that deals with this in the
code generator also to target-specific classes -> only ifdefs left in
pdecvar
git-svn-id: trunk@27379 -
2014-03-30 15:42:53 +00:00
Jonas Maebe
2474369dde
* made all ppuwrite methods in leaf classes "final", because you cannot
...
override them safely in subclasses to add more data (they finalise
writing their ibentry)
* removed "virtual" from all ppuload constructors for similar reason
as above
+ added virtual (empty) ppuwrite_plaform() method that is called from
tstoreddef/tstoredsym.ppuwrite(), which can be safely overridden in
child classes to add extra data (called centrally from a new
tstoreddef/sym.writeentry() method)
+ added virtual (empty) ppuload_platform() method that is called from
tstoreddef/tstoredsym.ppuload(), which can be safely overridden in
child classes to read the extra data (unfortunately cannot be called
from one single location, and these calls had to be added for each
generic subclass separately)
git-svn-id: trunk@27378 -
2014-03-30 15:42:49 +00:00
marco
70088d12a8
* eliminate classes unit from the compiler by copying an array of string based
...
extractstrings to cclasses.
git-svn-id: trunk@27372 -
2014-03-30 12:03:10 +00:00
nickysn
66d7beb7fe
* i8086 far data memory model fix for except_buf_size
...
git-svn-id: trunk@27371 -
2014-03-30 12:00:20 +00:00
marco
56277b18db
* move fpcsubst to utils/ because it uses classes
...
git-svn-id: trunk@27370 -
2014-03-30 11:45:51 +00:00
nickysn
5ae9443d66
* moved the EXCEPT_BUF_SIZE const to be local to ncgutils.get_exception_temps,
...
because that's the only place where it's used
git-svn-id: trunk@27369 -
2014-03-30 11:27:07 +00:00
sergei
1744988962
* Modified behavior of CExtended type in overload selection: it is made more compatible to Extended than to Double and Single. Also an Extended parameter selects a CExtended overload (if available) instead of Double.
...
+ Test.
git-svn-id: trunk@27366 -
2014-03-30 07:31:58 +00:00
Jonas Maebe
b57c95043f
+ support overriding tdef/tsym methods with target-specific functionality:
...
o made all (non-abstract) tdef and tsym constructors virtual
o added c*def/c*sym classref types for every (non-abstract) t*def/t*sym
class
o added cpusym unit for every architecture that derives a tcpu*def/tcpu*sym
class from the base classes, and initialises the c*def/c*sym classes with
them. This is done so that the llvm target will be able to derive from
the tcpu*def/sym classes without umpteen ifdefs, and it also means that
the WPO can devirtualise everything because the c* variables are only
initialised with one class type
o replaced all t*def/t*sym constructor calls with c*def/c*sym constructor
calls
git-svn-id: trunk@27361 -
2014-03-29 22:31:55 +00:00
Jonas Maebe
b5fd71c3b9
* removed {$ifndef i8086} in tx86vecnode, instead reset cvecnode to
...
tcgvecnode in the n8086mem initcode
git-svn-id: trunk@27360 -
2014-03-29 22:31:49 +00:00
Jonas Maebe
57859963d6
- removed {$ifdef compress} code (it hasn't been activated/maintained since
...
a very long time)
git-svn-id: trunk@27359 -
2014-03-29 22:31:46 +00:00
Jonas Maebe
6b16c05a98
* fixed compilation for i8086 with 2.6.x (it gave an unreachable code
...
warning)
git-svn-id: trunk@27358 -
2014-03-29 22:31:43 +00:00
Jonas Maebe
0edb7b2288
* fixed r27320 for darwin, as its mangled names get prefixed with '_'
...
and hence the generated mangled name did not start with a '$' as
expected
git-svn-id: trunk@27357 -
2014-03-29 22:31:36 +00:00
nickysn
17a8c03e41
* declare the group dgroup even in i8086 far data memory models
...
git-svn-id: trunk@27348 -
2014-03-29 19:35:54 +00:00
florian
c38e52bb27
* create shorter code for -<single/double> when generating avx code
...
git-svn-id: trunk@27347 -
2014-03-29 19:35:41 +00:00
nickysn
0082db46ea
* i8086 far data memory model fix in tcgloadnode.generate_nested_access.
...
The system unit now compiles in the compact and large memory models again.
git-svn-id: trunk@27341 -
2014-03-29 18:32:01 +00:00