Commit Graph

51417 Commits

Author SHA1 Message Date
pierre
38704411b2 Define conditional FASTMOVE_DISABLE_SSE3 to discard SSE specific code, needed for Watcom Assembler support
git-svn-id: trunk@36849 -
2017-08-04 20:53:09 +00:00
pierre
f4ecf87a50 Add conditional FASTMOVE_DISABLE_SSE3 to be able to discard SSE specific code, needed for Watcom Assembler support
git-svn-id: trunk@36848 -
2017-08-04 20:51:58 +00:00
nickysn
ee79ff3635 * improved the optimization of signed modulus by power-of-2, so it uses less
operations. Previously generated code:
    sign:=sar(left,sizeof(left)*8-1);
    result:=((((left xor sign)-sign) and right) xor sign)-sign;
  New code:
    mask:=sar(left,sizeof(left)*8-1) and ((1 shl power)-1);
    result:=((left+mask) and right)-mask;

git-svn-id: trunk@36847 -
2017-08-04 16:20:50 +00:00
svenbarth
8ffc035a86 * inline for simple methods
git-svn-id: trunk@36846 -
2017-08-04 15:51:08 +00:00
nickysn
a1928859b3 * in the optimization of signed division by power-of-2 constant in
tmoddivnode.firstoptimize, replaced tordconstnode(right).value-1 with
  tcgint((qword(1) shl power)-1), so that it becomes independent from the sign
  of right, so that in the future, we can also apply this optimization for
  negative power-of-2 divisors as well (only a unary minus node would have to
  be inserted in this case).

git-svn-id: trunk@36845 -
2017-08-04 15:50:33 +00:00
pierre
42bfa3967c Fix compilation of sysutils unit
git-svn-id: trunk@36844 -
2017-08-04 15:10:05 +00:00
pierre
ee4956be40 Define FPC_ANSI_TEXTFILEREC for watcom OS
git-svn-id: trunk@36843 -
2017-08-04 14:58:58 +00:00
nickysn
277026ffd4 * perform the high level signed division by power-of-2 optimization for all
int types, larger than the ALU of the CPU, instead of just for 64-bit ints on
  32-bit or smaller CPUs.

git-svn-id: trunk@36842 -
2017-08-04 14:34:42 +00:00
pierre
afab9524f2 Add missing SharedSuffix constant to system unit
git-svn-id: trunk@36841 -
2017-08-04 14:17:28 +00:00
pierre
a07d649343 Fix compilation of sysutils unit for netware
git-svn-id: trunk@36840 -
2017-08-04 14:13:39 +00:00
nickysn
b9fdca6f49 + better high level optimization for 64-bit signed division by 2 on 32-bit and
lower CPUs. Instead of the (sar(temp,sizeof(temp)*8-1) and 1) expression, use
  the equivalent, but simpler (temp shr (sizeof(temp)*8-1))

git-svn-id: trunk@36839 -
2017-08-04 13:51:51 +00:00
pierre
1aab7e7ee2 Fix compilation of netware system unit
git-svn-id: trunk@36838 -
2017-08-04 13:51:07 +00:00
svenbarth
c9be061921 * put test files that are outside of the tests directory into a "root" subdirectory of tests
git-svn-id: trunk@36837 -
2017-08-04 13:49:02 +00:00
pierre
5dec40d089 Add more CPU options to embedded/rtl.cfg
git-svn-id: trunk@36836 -
2017-08-04 13:38:07 +00:00
pierre
987dd2754c Add explicit object file name (required when using linux wasm executable, for which default object extension is .o not .obj
git-svn-id: trunk@36835 -
2017-08-04 13:26:17 +00:00
pierre
4626db1814 Adapt to DoDirSeparators declaration change
git-svn-id: trunk@36834 -
2017-08-04 13:25:16 +00:00
pierre
d7cdbcd71e m68k CPU also needs -SfSOFTFPU option
git-svn-id: trunk@36833 -
2017-08-04 13:09:37 +00:00
pierre
7966957ec9 Add configuration options for i8086 and m68k CPUs
git-svn-id: trunk@36832 -
2017-08-04 12:56:15 +00:00
pierre
db00b1e554 Fix two obvious compilation errors
git-svn-id: trunk@36831 -
2017-08-04 12:26:24 +00:00
pierre
a1b956f778 Remove erroneous directory prefixes for PPU files in dependencies
git-svn-id: trunk@36830 -
2017-08-04 12:18:35 +00:00
pierre
9fb2652433 List possible CPU in alphabetical order
git-svn-id: trunk@36829 -
2017-08-04 11:14:12 +00:00
pierre
4d29122097 msgtxt.inc and msgidx.inc regenerated after: Remove obsolete -Tsunos help line, it is not accpeted by the compiler anymore
git-svn-id: trunk@36828 -
2017-08-04 09:38:59 +00:00
pierre
8fba611697 Remove obsolete -Tsunos help line, it is not accpeted by the compiler anymore
git-svn-id: trunk@36827 -
2017-08-04 09:38:08 +00:00
pierre
1322a3f53e Avoid double rule for system unit
git-svn-id: trunk@36826 -
2017-08-04 09:16:54 +00:00
pierre
e6d282d2ed Avoid double rule for iso7185 unit
git-svn-id: trunk@36825 -
2017-08-04 09:12:39 +00:00
pierre
708b9e162c Add obsolete comment in ppudump output for obsoleted cpu and systems
git-svn-id: trunk@36824 -
2017-08-04 09:07:01 +00:00
pierre
3d5be0fd2d Add obsolete prefix to cpu_vm and system_vm_embedded, vm(vis) specfic code has been removed in rev 30836 dated 2015-05-09
git-svn-id: trunk@36823 -
2017-08-04 09:02:50 +00:00
pierre
f281ee339e Add obsolete prefix to cpu_ia64, system_ia64_win64 and system_ia64_embedded, ia64 specfic code has been removed in rev 30836 dated 2015-05-09
git-svn-id: trunk@36822 -
2017-08-04 08:54:34 +00:00
pierre
cf5c6d11ac Add obsolete prefix to cpu_alpha, system_alpha_linux and system_alpha_embedded, alpha specfic code has been removed in rev 30836 dated 2015-05-09
git-svn-id: trunk@36821 -
2017-08-04 08:29:02 +00:00
nickysn
ee4c82f5f5 * in the high level optimization of signed division by power-of-2 constant, set
shiftval to left.resultdef.size*8-1, instead of 31, so that it shifts by 15 or
  7 on 16-bit and 8-bit CPUs, when the integer type is small.

git-svn-id: trunk@36820 -
2017-08-03 16:02:27 +00:00
Mattias Gaertner
37c9dc2c3f fcl-passrc: resolver: eval set of integer range
git-svn-id: trunk@36819 -
2017-08-03 09:28:29 +00:00
pierre
936fac3a33 Remove double-compilation of unixtype unit
git-svn-id: trunk@36818 -
2017-08-02 22:36:28 +00:00
michael
cccff83bab * Fix compilation
git-svn-id: trunk@36817 -
2017-08-02 11:11:54 +00:00
michael
1729d6a848 * Rework to be able to use in compiler testsuite
* Refactor for better code readability
  * Set exit status based on bitmask: 
    bit 0 set -> there were failures
    bit 1 set -> there were errors 
  * Allow use of testdefaults.ini file
  * Location of testdefaults.ini file can be set in environment variable FPCUNITCONFIG.
  * Improved usage message.

git-svn-id: trunk@36816 -
2017-08-02 10:02:24 +00:00
nickysn
19087d04da * replace several emit_const_reg calls that generate SHR or SAR instructions
with calls to cg.a_op_const_reg in the x86 div code generator, so that the
  same code can be used in the future for i8086 as well (SHR and SAR by
  constants other than 1 are 186+, so on 8086 they have to go through the CL
  register, which is handled correctly in cg.a_op_const_reg)

git-svn-id: trunk@36815 -
2017-07-31 16:02:52 +00:00
florian
f4718c0969 * made nop handling generic for sparc, so it is used by sparc64 as well
git-svn-id: trunk@36814 -
2017-07-29 20:06:14 +00:00
pierre
ba7586a5c8 Fix for FPU generated exception as interrupt 0x10, contributed by Max Nazhalov
git-svn-id: trunk@36813 -
2017-07-29 11:50:21 +00:00
lacak
301fc9af70 fcl-db: base: fix widestring copy #32215
git-svn-id: trunk@36812 -
2017-07-28 19:04:28 +00:00
Mattias Gaertner
4a588fcbc2 pastojs: error on var absolute
git-svn-id: trunk@36811 -
2017-07-28 17:50:52 +00:00
Mattias Gaertner
e266fd75e0 fcl-passrc: resolver: read widechar literals
git-svn-id: trunk@36810 -
2017-07-28 17:50:24 +00:00
svenbarth
e76b1b2959 * use unique internalerror instead of copying that from ncgmem (though it should never happen that both occur at once in a AVR compiler)
git-svn-id: trunk@36809 -
2017-07-28 15:54:03 +00:00
svenbarth
88c98e87cd * declare REFIID compatible to Win32/Win64
git-svn-id: trunk@36808 -
2017-07-28 15:43:13 +00:00
nickysn
b92b0eac83 * also improve the code, generated for signed division by 2 on i8086, when
optimize cpu target is 486+, by replacing the sequence
    sar reg, 15
    and reg, 1
  with:
    shr reg, 15

git-svn-id: trunk@36807 -
2017-07-28 15:38:40 +00:00
svenbarth
0076284a86 * revert changes from r36770
* use constref for REFIID parameters, at least for non-interface functions (interface methods will be done separately as they're a breaking change, not to mention TObject's methods)

git-svn-id: trunk@36806 -
2017-07-28 15:37:49 +00:00
Károly Balogh
4002833001 morphos: also enable the elf32 loader in exeinfo for morphos
git-svn-id: trunk@36805 -
2017-07-28 12:20:40 +00:00
Károly Balogh
ac19b0eae6 morphos: enabling lineinfo unit
git-svn-id: trunk@36804 -
2017-07-27 22:31:19 +00:00
Károly Balogh
33abf859b4 netbsd/m68k: a fuggly fix for FpLseek, so the compiler works natively at least
git-svn-id: trunk@36803 -
2017-07-27 19:02:40 +00:00
Károly Balogh
12697deda7 netbsd: try to support syscalls which return 64bit values properly on 68k
git-svn-id: trunk@36802 -
2017-07-27 19:01:38 +00:00
Károly Balogh
071b588da2 netbsd/m68k: tweaks, so it works at least in my test-env with NetBSD/amiga 7.1
git-svn-id: trunk@36801 -
2017-07-27 19:00:37 +00:00
nickysn
9e8cc127b0 * improved the code, generated for signed division by 2 on i386 and x86_64 by
replacing the sequence
    sar reg, 31 (or 63)
    and reg, 1
  with:
    shr reg, 31 (or 63)

git-svn-id: trunk@36800 -
2017-07-27 16:02:30 +00:00