florian
4f052e4f90
o fix several issues with floating point exceptions
...
+ mask underflow and precision on startup
+ check for floating point exceptions after inlined float routine helpers
- do not check for floating point exceptions after floating point moves
git-svn-id: branches/laksen/riscv_new@39645 -
2018-08-19 15:26:00 +00:00
florian
6b9f52b4f2
+ couple of { %OPT=-CE } to tests added
...
git-svn-id: branches/laksen/riscv_new@39641 -
2018-08-19 12:42:26 +00:00
florian
999cbd94b8
+ support to generate software based floating point exception checking
...
(enabled by -CE)
git-svn-id: branches/laksen/riscv_new@39639 -
2018-08-19 10:56:47 +00:00
florian
203409ab48
* fixed floating point exception masking support for RiscV64
...
git-svn-id: branches/laksen/riscv_new@39638 -
2018-08-19 10:55:41 +00:00
florian
3c69f9a066
+ basic infrastructure to generate code for floating point exception
...
checking for CPUs without floating point exception support
git-svn-id: branches/laksen/riscv_new@39637 -
2018-08-19 10:54:45 +00:00
Jeppe Johansen
f781c8942e
Write real atomic operations, and add memory barrier operations.
...
Add support for fence, and acquire/release syntax to assembler reader.
Fix broken register aliases.
git-svn-id: branches/laksen/riscv_new@39524 -
2018-07-29 16:43:09 +00:00
Jeppe Johansen
f2670bc8fb
Fix missing alignment call.
...
git-svn-id: branches/laksen/riscv_new@39523 -
2018-07-29 14:18:19 +00:00
Jeppe Johansen
90d5f5e760
Added library search paths.
...
Removed GP and TP from allocatable registers for now. GP should not be overwritten.
Ported dllprt0.as
Fixed register usage in cprt0.as
git-svn-id: branches/laksen/riscv_new@39522 -
2018-07-29 13:08:15 +00:00
Jeppe Johansen
76dda5813e
Updated dynlinker filename.
...
Fix passing of vararg register pairs.
Fix passing of big record, and return of records.
Disabled framepointer elimination for the time being.
git-svn-id: branches/laksen/riscv_new@39519 -
2018-07-28 20:06:06 +00:00
florian
dc3830d78d
* integer and float registers do not overlay on Risc-V
...
git-svn-id: branches/laksen/riscv_new@39512 -
2018-07-26 20:57:01 +00:00
florian
44150f43ac
* RISC-V 32 compilation fixed
...
+ lazarus project file for the compiler added
git-svn-id: branches/laksen/riscv_new@39511 -
2018-07-26 19:18:47 +00:00
florian
14bfcbb0da
* compiled the calling convention test files by riscv64-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
...
with -O3
git-svn-id: branches/laksen/riscv_new@39508 -
2018-07-24 21:11:52 +00:00
Jeppe Johansen
d32d158b4d
Regenerated utils makefiles.
...
git-svn-id: branches/laksen/riscv_new@39496 -
2018-07-23 12:25:52 +00:00
Jeppe Johansen
49dae7e900
Fixed the elfreader, so it correctly reads the riscv type.
...
Set the default machineflag to rvc+rvf+rvd.
git-svn-id: branches/laksen/riscv_new@39495 -
2018-07-23 12:18:33 +00:00
Jeppe Johansen
27ab039366
Fixed _fini and _init references in cprt0.as
...
Add RiscV to fcl-res and fpcres.
Check that constant is a valid imm12 when doing overflow checking.
git-svn-id: branches/laksen/riscv_new@39494 -
2018-07-23 11:40:55 +00:00
Jeppe Johansen
a8c82856b1
Fixed missing maybeadjust calls after not operation.
...
git-svn-id: branches/laksen/riscv_new@39493 -
2018-07-23 10:20:32 +00:00
Jeppe Johansen
b98eb3daa9
Changed order in stack unravelling RTL code, to match the most common cases.
...
Fixed unsigned conditions for branch conditions.
Added some additional const loading cases.
Changed the temporary register used during calls because it could otherwise clash with the argument passing registers.
git-svn-id: branches/laksen/riscv_new@39492 -
2018-07-23 01:11:31 +00:00
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
florian
269069f5db
* empty dummy object files
...
git-svn-id: branches/laksen/riscv_new@39488 -
2018-07-22 18:43:07 +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
dcb0f4fdb5
Fixed setjmp that overwrote a callee save register.
...
Disable relaxation for the gp load part of the prt0 code.
Fixed up some syscall definitions.
git-svn-id: branches/laksen/riscv_new@39478 -
2018-07-20 15:00:14 +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
Jeppe Johansen
2b663392f0
New branch for RiscV work.
...
git-svn-id: branches/laksen/riscv_new@39473 -
2018-07-20 06:41:37 +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
0e6b9951ee
* Fix bug ID #21594 , wrong firstrecord when a data link is destroyed and buffercount changed.
...
git-svn-id: trunk@39471 -
2018-07-18 12:57:00 +00:00
michael
270cf0ed06
* Fix bug #18672 , using improved patch of Laco
...
git-svn-id: trunk@39470 -
2018-07-18 12:23:04 +00:00
michael
3acdf481c2
* Fix bug #34001 : wrong stream length for compressed text
...
git-svn-id: trunk@39469 -
2018-07-18 12:10:23 +00:00
michael
2cf8a9661f
* Additional fixes for strikethrough/linecap, plus example
...
git-svn-id: trunk@39468 -
2018-07-18 12:03:07 +00:00
michael
a113501901
* Patch from Petr-K to fix underline and strikethrough (Bug ID 34000)
...
git-svn-id: trunk@39467 -
2018-07-18 11:50:35 +00:00
michael
e54474dd28
* Patch from Petr-K to allow setting line cap style (bug ID 33999)
...
git-svn-id: trunk@39466 -
2018-07-18 11:46:10 +00:00
svenbarth
38c30a557d
* deprecate MaxGListSize; it's no longer used by the generic types
...
git-svn-id: trunk@39465 -
2018-07-17 19:30:29 +00:00
svenbarth
2ec7a5acff
* change declaration of TTypeList from a static array to a pointer to T as the static array might breach the
...
limits for static arrays if the used type is too large (especially on 32-bit systems); as FPC supports indexing
of typed pointers like arrays this should be mostly backwards compatible
git-svn-id: trunk@39464 -
2018-07-17 19:30:26 +00:00
Mattias Gaertner
4976f55aa4
pastojs: version 0.9.32
...
git-svn-id: trunk@39463 -
2018-07-17 07:17:05 +00:00
Mattias Gaertner
acea898d9c
pastojs: fixed mem leak
...
git-svn-id: trunk@39462 -
2018-07-17 07:10:15 +00:00
Mattias Gaertner
4b973bf22d
fcl-passrc: fixed double free
...
git-svn-id: trunk@39461 -
2018-07-17 07:10:04 +00:00
Mattias Gaertner
61c36a008a
fcl-passrc: fixed mem leaks
...
git-svn-id: trunk@39460 -
2018-07-17 05:33:11 +00:00
Mattias Gaertner
14af86bd1c
pastojs: fixed mem leaks
...
git-svn-id: trunk@39459 -
2018-07-17 04:46:35 +00:00
Mattias Gaertner
1a9c7021e4
pastojs: fixed mem leaks
...
git-svn-id: trunk@39458 -
2018-07-16 21:48:43 +00:00
Mattias Gaertner
013e75408a
fcl-passrc: fixed mem leaks and double releases
...
git-svn-id: trunk@39456 -
2018-07-16 15:51:35 +00:00