florian
f3b7e3281a
* fix int to real for non-register locations
...
git-svn-id: branches/laksen/riscv_new@39491 -
2018-07-22 20:48:15 +00:00
florian
f48203b66f
* generate no uleb with differences for line information
...
git-svn-id: branches/laksen/riscv_new@39490 -
2018-07-22 19:43:47 +00:00
Jeppe Johansen
c6b27bc225
Fix shift operations on 32bit operands.
...
git-svn-id: branches/laksen/riscv_new@39489 -
2018-07-22 19:25:46 +00:00
Jeppe Johansen
6d9a0fdc73
Added implementation of InstructionLoadsFromReg.
...
Fixed spilling_get_operation_type_ref, no mem operation modifies ref registers.
git-svn-id: branches/laksen/riscv_new@39487 -
2018-07-22 18:38:07 +00:00
Jeppe Johansen
a906feb05e
Fixed bug in peephole optimizer.
...
git-svn-id: branches/laksen/riscv_new@39486 -
2018-07-22 16:58:10 +00:00
Jeppe Johansen
2499129ba5
Pass aggregates larger than 2*XLEN as a reference.
...
Fix load_reg_reg and make it do proper type conversions.
Added maybeadjust to tcgrv.
git-svn-id: branches/laksen/riscv_new@39485 -
2018-07-22 14:15:29 +00:00
florian
9776ea2afe
* SLTIU -> SLTU
...
git-svn-id: branches/laksen/riscv_new@39484 -
2018-07-22 13:55:53 +00:00
florian
32a58ba7d1
* might_have_sideeffects gets flags: if mhs_exceptions is passed, nodes which might cause an exception are considered as having a side effect
...
git-svn-id: branches/laksen/riscv_new@39483 -
2018-07-22 13:11:21 +00:00
florian
65a415c13e
* fix assembling with official binutils
...
* fix compilation on 32 bit hosts
+ compile with -Sew
git-svn-id: branches/laksen/riscv_new@39482 -
2018-07-22 13:10:24 +00:00
Jeppe Johansen
054bf32f1f
Add RV64GC cpu type.
...
Fix float loading.
Fix a number of small issues with wrong operand sizes.
Fixed concatcopy code generation.
Align jump table for case statements.
git-svn-id: branches/laksen/riscv_new@39481 -
2018-07-21 22:34:42 +00:00
Jeppe Johansen
768fc2ea4b
Added overflow checking in for add instructions.
...
git-svn-id: branches/laksen/riscv_new@39479 -
2018-07-20 15:34:22 +00:00
Jeppe Johansen
2aaf481d89
Regenerated makefiles.
...
git-svn-id: branches/laksen/riscv_new@39476 -
2018-07-20 10:40:57 +00:00
Jeppe Johansen
6352328f3a
Update packages with information about RiscV.
...
Fix g_external_wrapper, since it uses a register.
Fixed calling of gas.
Ported cprt0.
git-svn-id: branches/laksen/riscv_new@39475 -
2018-07-20 10:40:28 +00:00
Jeppe Johansen
ceb38833f2
Added RiscV32/64 target, from a cleaned up version of branches/laksen/riscv/trunk.
...
git-svn-id: branches/laksen/riscv_new@39474 -
2018-07-20 08:21:15 +00:00
nickysn
42432d4ef3
* use sizeuinttype, instead of ptruinttype for the indexdef conversion in
...
tcgvecnode.pass_generate_code. This avoids a meaningless conversion to 32-bit
(and using the cwd instruction) on i8086 in the far data memory models.
git-svn-id: trunk@39472 -
2018-07-19 15:27:14 +00:00
michael
f6867cbd63
* Patch by Cyrax to allow creating map file on linux (bug ID 33982)
...
git-svn-id: trunk@39449 -
2018-07-14 08:12:38 +00:00
florian
93c5eae528
* accept dereferences in generics definitions, resolves #33700 properly
...
git-svn-id: trunk@39447 -
2018-07-13 21:00:33 +00:00
florian
52846df241
* fixed condition in getbestreal
...
git-svn-id: trunk@39446 -
2018-07-13 19:53:47 +00:00
florian
0c6cf12fbf
+ support for the directive $EXCESSPRECISION
...
git-svn-id: trunk@39443 -
2018-07-12 21:39:50 +00:00
Jeppe Johansen
3e2be29030
Make sure to align at the end of the .text, in case .data bytes will be placed there in flash.
...
git-svn-id: trunk@39442 -
2018-07-12 18:52:19 +00:00
nickysn
9272bf59b2
+ added x86 (i8086, i386 and x86_64) intrinsics fpc_x86_get_cs/ss/ds/es/fs/gs
...
for getting the value of x86 segment registers
git-svn-id: trunk@39433 -
2018-07-11 14:19:40 +00:00
florian
d4c65cdac4
* better register de-allocation after CWD/CWB
...
git-svn-id: trunk@39413 -
2018-07-07 21:38:42 +00:00
florian
4f580f7878
+ add missing exit as mentioned by J. Gareth Moreton in #33754
...
git-svn-id: trunk@39408 -
2018-07-07 14:53:56 +00:00
florian
0eea2141f6
* patch by J. Gareth Moreton: clarity in directive conflict error messages, resolves #33754
...
git-svn-id: trunk@39407 -
2018-07-07 14:46:01 +00:00
florian
96e92527e9
* constant folding of not must check if the deftype is really an orddef, resolves #33696
...
git-svn-id: trunk@39406 -
2018-07-07 14:17:41 +00:00
pierre
6cab9fd7db
Add replacement of $GCSECTIONS for shared libraries
...
git-svn-id: trunk@39403 -
2018-07-07 07:22:51 +00:00
svenbarth
441fc2fab6
* also parse postfix operators after parsing a _STRING token (required for class functions on type helpers for String)
...
+ added tests
git-svn-id: trunk@39399 -
2018-07-06 15:57:11 +00:00
marco
2a80eb3fdd
* patch from #31920 , pass gc-sections to .so's
...
git-svn-id: trunk@39392 -
2018-07-06 08:17:10 +00:00
nickysn
ff2fff365f
+ added x86 compiler intrinsics fpc_x86_sti and fpc_x86_cli, which generate the
...
'sti' and 'cli' instructions
git-svn-id: trunk@39388 -
2018-07-04 16:48:34 +00:00
nickysn
6cd88a24dc
* release al/ax/eax immediately after the 'in', before (instead of after) moving
...
it to the destination imaginary register. This generates better code.
git-svn-id: trunk@39380 -
2018-07-04 13:09:47 +00:00
nickysn
f34710faa0
+ use the in and out instructions with immediate constant port number for ports
...
that are evaluated as a compile-time constant in the range 0..255
git-svn-id: trunk@39365 -
2018-07-03 20:15:20 +00:00
nickysn
fdc896ad0a
+ inline support for the x86 'in' and 'out' instructions. Currently only enabled
...
in the i8086-msdos 'ports' unit, but will be enabled on other targets (e.g.
go32v2) in the future as well. 32-bit 'in' and 'out' not inlined on i8086, but
will be on i386 and x86_64.
git-svn-id: trunk@39362 -
2018-07-03 17:01:42 +00:00
florian
b70fc52874
* patch by Ondrej Pokorny: the stored property modifier does not delete the inherited default value anymore, resolves #33564
...
git-svn-id: trunk@39357 -
2018-07-01 20:11:13 +00:00
florian
eb61923762
* patch by Ondrej Pokorny: The nodefault is now inherited from parent class, resolves #33563
...
git-svn-id: trunk@39356 -
2018-07-01 19:01:41 +00:00
florian
5782acc32d
* patch by J. Gareth Moreton to fix 33909
...
git-svn-id: trunk@39353 -
2018-07-01 12:54:30 +00:00
Károly Balogh
e7025b6759
another fix for the new warning introduced in r39347, hopefully it fixes win32 build
...
git-svn-id: trunk@39352 -
2018-06-30 16:51:41 +00:00
florian
6a2cb0bbbd
* more compilation fixes
...
git-svn-id: trunk@39350 -
2018-06-30 12:48:54 +00:00
florian
68eb921d46
* broken compilation after r39347 fixed
...
git-svn-id: trunk@39349 -
2018-06-30 12:30:25 +00:00
florian
9af9658fa7
* first parameter of SetLength must be valid, as it is read
...
git-svn-id: trunk@39347 -
2018-06-30 11:25:43 +00:00
nickysn
e813a11e85
+ support TP7-compatible @proc^ (as in FillChar(@proc^,...))
...
git-svn-id: trunk@39343 -
2018-06-29 14:16:35 +00:00
pierre
c654739db9
Change default settings for i8086 compiler when compiled for go32v2 OS, to avoid use of Watcom tools
...
git-svn-id: trunk@39340 -
2018-06-29 09:41:38 +00:00
nickysn
88d9dd23ae
* the 'again' parameter of factor_read_id() changed to 'out' instead of 'var'
...
git-svn-id: trunk@39317 -
2018-06-27 15:59:40 +00:00
nickysn
a38e9ff12e
* if an include file name ends in dot, and the file is not found, also search
...
for the file name without the dot. So, for example, if the code contains
{$I MPAL256.} and 'MPAL256.' is not found, search also for 'MPAL256'
git-svn-id: trunk@39316 -
2018-06-27 14:41:06 +00:00
nickysn
966564aade
- removed 'if assigned(code)' before calling code.free in tcgprocinfo.destroy,
...
since .free already checks for <>nil
git-svn-id: trunk@39312 -
2018-06-27 12:38:58 +00:00
florian
78943ea843
+ patch by J. Gareth Moreton: x86 optimisations for Jcc and SETcc, resolves #33899
...
* optimization also added for i386
git-svn-id: trunk@39307 -
2018-06-25 20:40:05 +00:00
florian
af37ca8563
- remove SetccMovbLeaveRet2SetccLeaveRet optimization, this type of code is not generated anymore for years
...
git-svn-id: trunk@39306 -
2018-06-25 20:40:04 +00:00
florian
1472a81768
* patch by J. Gareth Moreton to unify the x86 assembler optimizer method headers, resolves #33908
...
git-svn-id: trunk@39305 -
2018-06-25 20:13:34 +00:00
florian
4aa0ad6735
* use vmov.xx to load float constants if possible
...
git-svn-id: trunk@39298 -
2018-06-24 12:40:00 +00:00
florian
4f5f3c4a09
+ support for vmov.xx vreg,#imm on arm
...
git-svn-id: trunk@39297 -
2018-06-24 12:39:59 +00:00
svenbarth
a2b58b842b
+ add support for threadvars in records
...
+ added tests
git-svn-id: trunk@39289 -
2018-06-23 13:49:16 +00:00