Commit Graph

48781 Commits

Author SHA1 Message Date
Jonas Maebe
eeae34ea7d * simplified handling of loading a reference into a register of a
larger size in case of structured types
   o also fixes the logic for big endian

git-svn-id: trunk@34029 -
2016-06-30 15:33:31 +00:00
Jonas Maebe
f2c1e4234f * use g_ptrtypecast_ref() in a_load_ref_reg() when we have to typecast
references

git-svn-id: trunk@34028 -
2016-06-30 15:33:27 +00:00
Jonas Maebe
c421171461 * fixed handling of fpu/mm loads from "named registers" in case they involve
a typecast from a struct to a scalar type (webtbs/tw26993)

git-svn-id: trunk@34027 -
2016-06-30 15:33:24 +00:00
Jonas Maebe
0ce68d223f - removed unused tllvmshadowsymtable.recordalignmin field
git-svn-id: trunk@34026 -
2016-06-30 15:33:21 +00:00
Jonas Maebe
542b6b604e * missing closing comment
git-svn-id: trunk@34025 -
2016-06-30 15:32:50 +00:00
pierre
fb50d0860b Use BX register instead of AX to reload DS at proc entry if register convention is used
git-svn-id: trunk@34024 -
2016-06-29 20:48:51 +00:00
pierre
8058f6b301 Use SizeInt type for DoMem variable argument, as it might be different from PtrInt, for instance for some msdos memory models
git-svn-id: trunk@34022 -
2016-06-28 16:13:24 +00:00
pierre
d2113f5ead Use SizeInt type for DoMem variable argument, as it might be different from PtrInt, for instance for some msdos memory models
git-svn-id: trunk@34021 -
2016-06-28 15:59:09 +00:00
pierre
5ff51591cf * Fix "-CX" use for i8086 with generic functions (test/tgenfuc*.pp tests),
it was currently broken as the specialization was declared
  with local bind type, which generated no symbol at all
  with the internal ogomf writer.

git-svn-id: trunk@34020 -
2016-06-28 14:33:57 +00:00
pierre
7129de8a6e Fix compilation with -dSYSTEMDEBUG after heap changes (removal of 'tiny' in memory functions in tiny heap)
git-svn-id: trunk@34019 -
2016-06-25 08:16:52 +00:00
pierre
13076a3580 Use NO prefix to disable a feature (-Sfnoheap) instead of '-' prefix
git-svn-id: trunk@34018 -
2016-06-25 05:27:09 +00:00
pierre
270a574d6a + Allow to disable specific feature with -Sf-FEATURE_NAME
* Fix "-CX -al" use for i8086, because it was currently broken
  -al triggered switch to nasm external assembler but with smart linking,
  this should also generate a switch to external assembler.

git-svn-id: trunk@34017 -
2016-06-24 15:55:10 +00:00
pierre
dfeadf89e9 Modify test to take into account the specific prologue for Huge model
git-svn-id: trunk@34016 -
2016-06-24 15:13:37 +00:00
pierre
7efce7f121 Rewrite CommandLine creation in Dos.Exec function to avoid problems when ComLine is 255 characters long
git-svn-id: trunk@34015 -
2016-06-21 10:13:41 +00:00
pierre
3253711e95 Disable expliccitly overlfow and range checks
git-svn-id: trunk@34014 -
2016-06-21 09:21:18 +00:00
pierre
544d33bf48 Range and overflow check explicitly disabled
git-svn-id: trunk@34013 -
2016-06-21 08:18:22 +00:00
pierre
40292a476f Expicitly disable range check on old test and add new test with and changes
git-svn-id: trunk@34012 -
2016-06-21 08:14:43 +00:00
pierre
f079701302 Also disable range check error that can happen on 64-bit processors
git-svn-id: trunk@34011 -
2016-06-21 08:02:19 +00:00
pierre
df7e562d94 Add explicit $R- or $Q- to avoid different results if -Criot option is used
git-svn-id: trunk@34010 -
2016-06-20 15:55:10 +00:00
pierre
27119cad3c Disable range checks explicitly as THandle is unsigned at least for win32 OS
git-svn-id: trunk@34009 -
2016-06-20 15:26:50 +00:00
nickysn
5306ee552b * regenerated makefiles with latest fpcmake
git-svn-id: trunk@34008 -
2016-06-18 01:00:45 +00:00
nickysn
9233ac9e0a * update revision.inc
git-svn-id: trunk@34007 -
2016-06-18 00:55:09 +00:00
nickysn
11006c2b72 * set the proper file extensions for the i8086-embedded target
git-svn-id: trunk@34006 -
2016-06-18 00:45:34 +00:00
nickysn
c639bf3900 * fixed bug, caused by an incorrect order of ifdefs, which caused the system
unit of the embedded target to not compile on CPUs, not using the softfpu
  implementation

git-svn-id: trunk@34005 -
2016-06-18 00:22:20 +00:00
nickysn
20d2c74d8e + added system_i8086_embedded to the systems_embedded set
git-svn-id: trunk@34004 -
2016-06-18 00:00:18 +00:00
nickysn
73d0dae569 + added various things, needed for i8086 compilation to the system unit of the
embedded target

git-svn-id: trunk@34003 -
2016-06-17 22:31:38 +00:00
nickysn
a58dd988a4 * regenerate makefiles after the fpcmake update
git-svn-id: trunk@34002 -
2016-06-17 22:05:59 +00:00
nickysn
cb5a2b9a2e + enable the i8086-embedded cpu/os combination in fpmkunit as well
git-svn-id: trunk@34001 -
2016-06-17 21:55:38 +00:00
nickysn
2dc530dfe3 + enable the i8086-embedded cpu/os combination in fpcmake
git-svn-id: trunk@34000 -
2016-06-17 20:24:55 +00:00
nickysn
c2305809dc + added an i8086-embedded target support to the compiler (RTL and makefile
support are not done yet)

git-svn-id: trunk@33999 -
2016-06-17 19:15:24 +00:00
michael
e022ba1b53 * Annotations (and HTML links) support
git-svn-id: trunk@33998 -
2016-06-16 20:14:20 +00:00
florian
d31d24ed16 * r33995 was not complete
git-svn-id: trunk@33997 -
2016-06-16 19:26:43 +00:00
svenbarth
dfe00a8ed1 Fix for Mantis #30279. Apply patch by Max Nazhalov to fix compilation of i386-wince and arm-wince (the only modification is that the no longer used AnsiString variants of ExecuteProcess are removed)
git-svn-id: trunk@33996 -
2016-06-16 17:03:17 +00:00
florian
1cbae41cab * proper fix for the issue detected in r33945
git-svn-id: trunk@33995 -
2016-06-15 20:43:52 +00:00
svenbarth
248490bbf1 * declare fpc_zeromem and fpc_fillmem as inline to avoid one call
git-svn-id: trunk@33994 -
2016-06-15 20:16:16 +00:00
Jonas Maebe
11c90a73b1 - removed "Set8087CW(Default8087CW)" call from SysEntry:
o it is already performed in fpc_cpucodeinit
   o in libraries, fpc_cpucodeinit first sets Default8087CW to the current x87
     control word to avoid them enabling fpu exceptions if the host platform
     had first disabled them

git-svn-id: trunk@33993 -
2016-06-15 18:32:07 +00:00
Jonas Maebe
899add8c7d * don't emit default values for local variables in generic routines: those
default values are not used, and they are not type-correct (and hence
    cause trouble with LLVM)

git-svn-id: trunk@33992 -
2016-06-15 18:32:02 +00:00
Jonas Maebe
5313db710b * override gen_stack_check_size_para() and gen_stack_check_call()
for llvm and do nothing (see comments in the code)

git-svn-id: trunk@33991 -
2016-06-15 18:31:58 +00:00
Jonas Maebe
98ac6c4797 * converted gen_stack_check_call() to the high level code generator
git-svn-id: trunk@33990 -
2016-06-15 18:31:52 +00:00
Jonas Maebe
4121facc7a * only free the llvm shadow symtable when the original symtable will
also be freed

git-svn-id: trunk@33989 -
2016-06-15 18:31:47 +00:00
Jonas Maebe
8ca9ece66a * fixed buffer overrun in tai_aggregatetypedconst.add_to_string()
git-svn-id: trunk@33988 -
2016-06-15 18:31:42 +00:00
Jonas Maebe
8c006f04e2 * don't check type size equality for conversions to formaldef either
git-svn-id: trunk@33987 -
2016-06-15 18:31:37 +00:00
michael
15c5ea3b9c * Fix bug in event-based variables
git-svn-id: trunk@33986 -
2016-06-14 17:25:14 +00:00
svenbarth
638339812e i386-win32 also has indirect entry information, so enable this in the compiler and disable the corresponding define in system.pp
git-svn-id: trunk@33985 -
2016-06-14 12:25:21 +00:00
svenbarth
25c4a5c986 Fix usage of external resources on systems besides Darwin by moving the variable referencing FPC_RESLOCATION fon non-indirect entry information systems from system.inc back into intres.inc
git-svn-id: trunk@33984 -
2016-06-14 12:18:36 +00:00
pierre
a72434e93a Trial to clarify heap for i8086 issues:
- MSDOS heap in tinyheap.inc modified to use usual
  SysGetMem and similar names.
  - Use HAS_MEMORYMANAGER (used previously in wince source code,
  to specify that a memory manager is defined elsewhere than inside
  heap.inc include file.
  - Use
  - Remove TinyHeapMemoryManager Structure variable completely

  heaptrc.pp: remove unneeded macro code after name changes of tinyheap.inc

  msdos/system.pp now only defines HAS_MEMORYMANAGER macro
  win16/system.pp defines HAS_MEMORYMANAGER and FPC_NO_DEFAULT_HEAP
  as it still uses a different memory manager.
  __stkbottom variable added for win16 system.pp as it is required
  by i8086 specific stack check code.

git-svn-id: trunk@33983 -
2016-06-13 22:26:03 +00:00
svenbarth
7f079ff58a Fix compilation of Win64 and WinCE as those don't have indirect entry information yet and thus they'd require FPC_RESLOCATION which is not available for those platforms... Fixes Mantis #30264.
git-svn-id: trunk@33982 -
2016-06-13 07:55:45 +00:00
nickysn
452d9b747b * fixed code generation for initialized pointer variables, with the initial
value set to the address of an external variable in the i8086 medium and
  compact memory models. Should fix Mantis #30107

git-svn-id: trunk@33981 -
2016-06-13 00:29:32 +00:00
Jonas Maebe
3f01efbee0 * adapted tcgtypeconvnode.second_int_to_int() to work with high level cpu
targets, and removed the (buggy) LLVM-specific version

git-svn-id: trunk@33980 -
2016-06-12 20:56:40 +00:00
Jonas Maebe
2d1023140a * don't try to check whether the size of from and to in type conversion nodes
are the same in case of open arrays (their size can't be determined at
    compile time) -- this is just a sanity check, which can't be performed in
    this case

git-svn-id: trunk@33979 -
2016-06-12 20:56:37 +00:00