Commit Graph

20678 Commits

Author SHA1 Message Date
florian
b41cb26727 + write selected features in ppu of the system unit and load them further on
* ppu version update
* -Sf might be used only during system unit compilation
* loadsystemunit factored out so the system unit can be loaded earlier than other units to get features set

git-svn-id: trunk@37708 -
2017-12-10 16:32:56 +00:00
Károly Balogh
0d15323c29 also add solaris-sparc64 to ppudump, fix build breakage after r37701
git-svn-id: trunk@37702 -
2017-12-08 17:16:32 +00:00
pierre
ce13d8a698 Fix fullcycle on x86_64-solaris machine by adding system_sparc64_solaris system constant
git-svn-id: trunk@37701 -
2017-12-08 16:53:37 +00:00
pierre
901f7ba81c handle system_i386_netbsd for default_target_set
git-svn-id: trunk@37695 -
2017-12-07 16:27:26 +00:00
nickysn
1c8b607d92 - disable threading on win16
git-svn-id: trunk@37669 -
2017-12-03 15:37:50 +00:00
nickysn
ef6cc202cd * corrected check for f_variants, introduced in r37660 (it was incorrectly
checking for f_threading instead)

git-svn-id: trunk@37668 -
2017-12-03 15:20:45 +00:00
florian
0b10193660 * use dwarf-3 for avr-embedded by default as it makes the size of DW_FORM_ref_addr target indepented
git-svn-id: trunk@37661 -
2017-12-02 17:37:11 +00:00
florian
0725bfcdf0 * do not generate references to the variant type, if the variants feature is not available
git-svn-id: trunk@37660 -
2017-12-02 17:16:32 +00:00
nickysn
7763942907 * fixed the 'Unsupported fixup location type' error messages in the MZ internal
linker

git-svn-id: trunk@37631 -
2017-11-28 02:29:28 +00:00
nickysn
b571f48735 * fixed the return type of FarAddr(), so that it is assignment compatible to
typed far pointers as well

git-svn-id: trunk@37629 -
2017-11-27 19:42:36 +00:00
nickysn
78e0f6c68b + added an i8086-specific FarAddr() function, similar to Addr(), but always
returns a far pointer, regardless of the current memory model

git-svn-id: trunk@37628 -
2017-11-27 16:41:48 +00:00
florian
46ab35edb3 * apply MovOpMov2Op also to inc and dec
* made core more readable

git-svn-id: trunk@37624 -
2017-11-26 15:28:44 +00:00
florian
2be94d3c78 * fix building on win64 with FPC_SOFT_FPUX80 defined, resolves #32502
git-svn-id: trunk@37621 -
2017-11-26 15:16:37 +00:00
nickysn
c464f7fa56 * fixed the SEG inline asm directive when used with 32-bit registers on the i8086 target
git-svn-id: trunk@37613 -
2017-11-22 15:04:30 +00:00
pierre
c63981e5b5 Fix msdos failure due to copy/paste error in previous commit
git-svn-id: trunk@37611 -
2017-11-20 21:45:29 +00:00
florian
cb087279d6 * do not generate an andi if the constant is 255
git-svn-id: trunk@37608 -
2017-11-19 18:05:21 +00:00
florian
366360d36c * LdiMov/Cp2Ldi/Cpi may not be performed if reg0=reg1
* cleanup of MovOp2Op
* fixed MovMov2Mov

git-svn-id: trunk@37607 -
2017-11-19 18:05:19 +00:00
florian
010a6f5016 + shift by 8 and 16 on 8 and 16 bit cpus by simple register moves
git-svn-id: trunk@37606 -
2017-11-19 18:05:18 +00:00
florian
ad01f059e8 * after a LdiMov/Cp2Ldi/Cpi optimization, the compiler should not continue to optimize this instruction because then reg. alloc info is wrong
git-svn-id: trunk@37604 -
2017-11-19 18:05:14 +00:00
nickysn
4fc2fa7899 * alloc/dealloc NR_DEFAULTFLAGS in the a_cmp_* methods in the i8086 code
generator

git-svn-id: trunk@37601 -
2017-11-17 19:28:37 +00:00
Károly Balogh
4b113579a5 some tabs to spaces indentation cleanup. no functional change
git-svn-id: trunk@37599 -
2017-11-17 11:31:49 +00:00
Károly Balogh
e6aed467b5 renamed script unit to cscript to avoid namespace conflict with univint package on Darwin. this makes it possible to build the textmode IDE on Darwin
git-svn-id: trunk@37598 -
2017-11-17 11:27:19 +00:00
florian
7fa9d267e3 * correctly set cpu defines after r37582, even if architecture and cpu type defines are equal (like CPUMIPS32), resolves #32687
git-svn-id: trunk@37590 -
2017-11-13 21:13:53 +00:00
florian
f22a6629c1 * set types correctly for char -> shortstring conversions, resolves #32686
git-svn-id: trunk@37585 -
2017-11-12 22:14:23 +00:00
florian
826f208e45 * define CPU and FPU type macros before the second parsing of the parameters so they can be used in config files
git-svn-id: trunk@37582 -
2017-11-12 22:14:18 +00:00
florian
674398c5a5 * i8086 compilation fixed after r37572
git-svn-id: trunk@37573 -
2017-11-11 13:25:02 +00:00
florian
73fda1ccb6 * factored out OptPass1Sub
+ make use of OptPass1Sub on x86_64 and i8086 as well

git-svn-id: trunk@37572 -
2017-11-10 20:55:22 +00:00
nickysn
ae92973196 + added support for the retw, retnw, retfw, retd, retnd, retfd, retq, retnq and
retfq x86 instructions. These are variants of the ret instruction with the
  return offset size set explicitly, e.g. retfw is a 16-bit far ret (i.e. pops
  a 16-bit offset and a 16-bit segment), retfd is a 32-bit far ret (pops a
  32-bit offset, followed by a 16-bit segment), etc.

git-svn-id: trunk@37571 -
2017-11-10 16:53:29 +00:00
pierre
ba3afefa4c Regenerate register include files after commit 37564: Fix value of NR_DR6 and NR_DR7
git-svn-id: trunk@37565 -
2017-11-07 07:30:42 +00:00
pierre
176cec14c9 Fix value of NR_DR6 and NR_DR7
git-svn-id: trunk@37564 -
2017-11-07 07:29:54 +00:00
nickysn
034b753e10 * commented out PostPeepholeOptMov, because it breaks the pascal port of cwsdpmi
git-svn-id: trunk@37563 -
2017-11-06 23:30:11 +00:00
nickysn
24d447716e * fixed support for access from inline asm to absolute vars, pointing to an
array element (previously, it would always point to the start of the array)

git-svn-id: trunk@37558 -
2017-11-06 16:06:34 +00:00
florian
2140b586a6 * i386 building fixed
git-svn-id: trunk@37554 -
2017-11-04 19:42:08 +00:00
florian
1556599ad5 * symbols with bind type AB_EXTERNAL_INDIRECT need to be declared as EXTERN for masm/nasm etc.
git-svn-id: trunk@37553 -
2017-11-04 19:10:17 +00:00
florian
c36c4d838d + PostPeepHoleOptsCpu for i8086
git-svn-id: trunk@37552 -
2017-11-04 19:10:15 +00:00
florian
4da4b768ec * factored out PostPeepholeOptTest
+ use PostPeepholeOptTest on x86-64

git-svn-id: trunk@37551 -
2017-11-04 19:10:14 +00:00
florian
3097eaf8ee * made PostPeepholeOptMov a function
git-svn-id: trunk@37550 -
2017-11-04 19:10:12 +00:00
florian
a7ea7fb569 * factored out PostPeepholeOptCmp
+ use PostPeepholeOptCmp for x86_64

git-svn-id: trunk@37549 -
2017-11-04 19:10:09 +00:00
florian
194c0c7073 * compilation fixed
git-svn-id: trunk@37546 -
2017-11-01 16:54:08 +00:00
florian
c7d5525b56 + implemented some AVR specific intrinsics
git-svn-id: trunk@37544 -
2017-11-01 16:33:34 +00:00
florian
4752b0ef96 + tinlinenode calls cpu specific routines for unknown inline numbers
git-svn-id: trunk@37543 -
2017-11-01 16:33:32 +00:00
nickysn
e5dad9c98c + set oper.haslabelref in several other places, where a reference, containing a
label is created in the intel syntax x86 assembler. This fixes tfarcal3.pp and
  tfarcal4.pp after r37538

git-svn-id: trunk@37541 -
2017-11-01 14:31:16 +00:00
nickysn
9649154368 * fixed the token2str const array for intel syntax x86 asm
git-svn-id: trunk@37540 -
2017-11-01 13:36:16 +00:00
nickysn
9450beb99c * fixed bug in intel syntax i8086 inline asm, when certain 'jmp/call [v]'
instructions got erroneously converted to 'jmp/call v', if 'v' is an external
  far variable that points to certain things (like a local label, exported via
  public)

git-svn-id: trunk@37538 -
2017-10-31 16:49:38 +00:00
nickysn
49a96af874 + also support 'external near' var declarations on i8086
git-svn-id: trunk@37536 -
2017-10-30 21:52:03 +00:00
florian
3bcf774c7b * compilation fixed
git-svn-id: trunk@37534 -
2017-10-30 21:01:10 +00:00
nickysn
303309b28f + added support for 'external far' variables for i8086
git-svn-id: trunk@37532 -
2017-10-30 18:03:44 +00:00
nickysn
29558a74cd + support exporting labels from asm blocks in intel syntax asm blocks via the
'public' directive

git-svn-id: trunk@37530 -
2017-10-30 16:44:13 +00:00
nickysn
d318ab086a * when handling absolute vars from within intel inline assembly, take the
absolute var size into account (not the type of the var it points to or no
  size at all, if it points to a fixed address)

git-svn-id: trunk@37525 -
2017-10-26 15:58:48 +00:00
nickysn
8a0d8f025b * fixed another i8086 inline asm 32-bit constant bug (e.g. in 'or eax, 80000001h')
git-svn-id: trunk@37521 -
2017-10-25 19:38:37 +00:00