Commit Graph

477 Commits

Author SHA1 Message Date
svenbarth
46a8afb50d + declare Pointer types for the remaining Boolean types
git-svn-id: trunk@42032 -
2019-05-10 15:25:08 +00:00
Jonas Maebe
0b246f3dbd * converted Boolean8 to an internal type, and mapped Boolean to the
new internal pasbool1(type) (part of mantis #34411)
   o apply the _Bool x86-64 parameter passing rules only to pasbool1

git-svn-id: trunk@39949 -
2018-10-16 21:14:18 +00:00
florian
a34d4e715c Merged riscv_new branch
git-svn-id: trunk@39813 -
2018-09-26 19:49:08 +00:00
Jeppe Johansen
74a7963d58 Redo overflow checking code.
Fix shift operators in case of unsigned subreg operations. There should be no sign extension here.
Add some unittest implementations that test stack execution and writing to readonly constants.

git-svn-id: branches/laksen/riscv_new@39762 -
2018-09-16 18:37:59 +00:00
svenbarth
d9cb5c4502 + add a Boolean8 alias for Boolean for symmetry's sake (fixes Mantis #34058)
git-svn-id: trunk@39673 -
2018-08-24 15:53:10 +00:00
marco
096e7d7513 * add prawbytestring.
git-svn-id: trunk@39662 -
2018-08-22 12:26:42 +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
26a3ac3fd4 * moved the fpc_in_x86_*port* constants to the system unit in cpuinnr.inc in the
i8086, i386 and x86_64 rtl directories. This is done for consistency with
  other compiler internal function numbers (which are declared in innr.inc).

git-svn-id: trunk@39367 -
2018-07-03 21:30:43 +00:00
marco
43d7b23555 * fix for #33817, also p* marshalledstring for Delphi compat.
git-svn-id: trunk@39165 -
2018-06-04 10:58:23 +00:00
michael
e46b89c8bb * Patch from Ondrej Pokorny to fix camelcase (bug ID 4b46872)
git-svn-id: trunk@38619 -
2018-03-24 14:39:56 +00:00
pierre
250e924ad3 + Add RTE 236 for thread errors:
inc/systemh.inc and java/jsystemh.inc:
    + Add reThreadError (and also reNoDynLibsSupport) to TRuntimeError.
    * Add new values to RuntimeErrorExitCodes after extension of TRuntimeError
  inc/system.inc and java/jsystem.inc:
    * use RTE 236 in fpc_threaderror.
  objpas/sysconst.pp and objpas/sysutils/stre.inc:
    + Add SThreadError string constant.
  objpas/sysutils/sysutilh.inc:
    + Add EThreadError class.
  objpas/sysutils/sysutils.inc
    + Add 236 to EThreadError conversion to exeptmap.

git-svn-id: trunk@38584 -
2018-03-21 10:19:04 +00:00
florian
22df9cde3e * halt and runerror never return
git-svn-id: trunk@38202 -
2018-02-11 10:21:16 +00:00
Károly Balogh
07513150e0 * make StdOut/StdErr optionally a true alias of Output/ErrOutput, so they share the same underlying TextRec. this reduces data segment usage on small systems by more than 1K.
git-svn-id: trunk@38196 -
2018-02-10 22:45:51 +00:00
svenbarth
ea193bc993 * enable explicit Pointer overloads of Interlocked* functions for M68k as that has a calling convention where the passing of Pointer values differs from ordinal values (address vs. int registers). Fixes e.g. usage of the Classes unit
git-svn-id: trunk@38053 -
2018-01-26 21:37:58 +00:00
svenbarth
e09ec0e36b + add ability to have explicitely implemented Pointer overloads of the Interlocked* routines instead of forwarding them to the ones with suitable size.
git-svn-id: trunk@38052 -
2018-01-26 21:36:35 +00:00
maciej-izak
8aaa3c0fd5 + added additional OpaquePointer type for the system unit (mantis #32977).
git-svn-id: trunk@37942 -
2018-01-09 21:45:03 +00:00
maciej-izak
f719f81c06 + added new types for the system unit: opaque data type (TOpaqueData) and related opaque pointer (POpaqueData) (mantis #32977)
git-svn-id: trunk@37940 -
2018-01-09 21:18:26 +00:00
nickysn
29f307589e + added an i8086-specific procedure MoveData, that allows moving of far data,
regardless of the memory model; procedure interface is the same as a similar
  Turbo C (and DJGPP) function

git-svn-id: trunk@37741 -
2017-12-15 21:47:21 +00:00
nickysn
0119e7afb3 * changed the codepointer type in the i8086 small and compact memory models from
nearpointer to nearcspointer

git-svn-id: trunk@37730 -
2017-12-14 17:36:15 +00:00
marco
52f81da69c * some aliases for newer delphi versions, patch by Silvio.
utf8char, putf8char and marshal*

git-svn-id: trunk@37689 -
2017-12-06 10:49:35 +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
florian
ff86c80176 * cpu specific header file for the system unit: cpuh.inc, moved several declarations into it
git-svn-id: trunk@37542 -
2017-11-01 16:33:30 +00:00
svenbarth
fe95d73fe5 * move RTTI header include above ObjPas header include
git-svn-id: trunk@37426 -
2017-10-08 08:44:51 +00:00
Károly Balogh
e1501c86bf m68k: fix no FPU support
git-svn-id: trunk@37227 -
2017-09-16 18:13:57 +00:00
svenbarth
187ebc6821 * adjust/update guard against older compiler versions
git-svn-id: trunk@36876 -
2017-08-12 08:17:07 +00:00
florian
8bbe7d7268 * define STACK_BIAS constant for sparc64, it is fundamental
git-svn-id: trunk@36540 -
2017-06-19 21:17:54 +00:00
florian
cd70098b84 + SPARC64 support for the system unit
git-svn-id: trunk@36431 -
2017-06-05 21:33:59 +00:00
nickysn
ba665e103c + added sqr(shortint) and sqr(smallint) for CPUs with 8/16-bit alu
git-svn-id: trunk@36342 -
2017-05-26 13:16:36 +00:00
nickysn
78a7445751 + added Odd(byte) and Odd(shortint) for cpus with 8-bit alu and Odd(word)/
Odd(smallint) for cpus with 8 or 16-bit alu

git-svn-id: trunk@36328 -
2017-05-25 14:42:56 +00:00
nickysn
fa645dcaf7 + added abs(smallint) and abs(shortint) for cpus with 8-bit or 16-bit alu
git-svn-id: trunk@36327 -
2017-05-25 14:14:18 +00:00
nickysn
504662826a * fixed the rtl cpu ifdefs for the rol/ror/sar cpu support check
git-svn-id: trunk@36153 -
2017-05-08 10:16:15 +00:00
pierre
651f8b17c1 Add minimum type/const for RTL compilation with threading support disabled
git-svn-id: trunk@36106 -
2017-05-04 22:12:17 +00:00
nickysn
056e742684 + enable the internal 8-bit and 16-bit sar on i8086
git-svn-id: trunk@36032 -
2017-05-01 12:36:36 +00:00
nickysn
b14f277e8f + use rtl helpers for 64-bit shl/shr/sar/rol/ror modify in place operations, on
platforms that don't have native 64-bit implementation of the corresponding
  64-bit shift/rotate operation

git-svn-id: trunk@35787 -
2017-04-13 15:24:32 +00:00
nickysn
321876252b + enabled the rol/ror intrinsic on i8086
git-svn-id: trunk@35734 -
2017-04-04 22:37:58 +00:00
nickysn
ca46040728 + added 16-bit versions of the InterLocked* functions for i8086
git-svn-id: trunk@35149 -
2016-12-18 00:17:10 +00:00
Jonas Maebe
868370d727 + InterlockedCompareExchangePointer() alias for InterlockedCompareExchange(pointer)
(mantis #29964)

git-svn-id: trunk@34599 -
2016-10-02 12:57:07 +00:00
svenbarth
a2c9c75e97 Convert Insert() and Delete() to intrinsics in preparation for dynamic array support for these two procedures.
Since overloading compilerprocs does not work each procedure got its own unique name, but they are using the new compilerproc extension to map them to the Insert and Delete symbol so that error messages can be shown with the respective name for the procedure declarations instead of fpc_shortstr_delete for example.

git-svn-id: trunk@33895 -
2016-06-03 21:25:49 +00:00
svenbarth
788393c298 Change WideString initialization to work correctly with indirect main information as well
rtl/inc/systemh.inc & rtl/java/jsystemh_types.inc:
  - TEntryInformation: remove WideInitTables
rtl/win/sysosh.inc:
  + TEntyrInformationOS: add WideInitTables
rtl/win/syswin.inc:
  * adjust WStrInitTablesTable, so that it is now a pointer and can be used both with direct and indirect main entry
  * InitWin32Widestrings: WStrInitTablesTable is now a pointer
rtl/win32/sysinit.inc:
  * WideInitTables has moved to the OS specific part of the entry information
rtl/win32/system.pp:
  * OsSetupEntryinformation: setup WStrInitTablesTable

git-svn-id: trunk@33571 -
2016-04-29 13:13:14 +00:00
Károly Balogh
1192978152 m68k: software mod/div and mul helper requirement has nothing to do with the softfpu, CF and plain 68k simply needs it
git-svn-id: trunk@33532 -
2016-04-18 02:20:08 +00:00
florian
bb1f2b8062 * make NativeInt and NativeUInt unique types, resolves #29444
git-svn-id: trunk@33234 -
2016-03-13 15:30:38 +00:00
svenbarth
7b67ead440 Pass further main program data through the indirect entry information.
rtl/inc/systemh.inc:
  + TEntryInformation: add Pointer fields ResourceStringTables, ResStrInitTables, WideInitTables (for targets with separate WideString type) and ResLocation (not used on Windows, but since most other targets don't have Windows' resource system it's not part of OS)
rtl/java/jsystemh_types.inc:
  + TEntryInformation: adjust for consistency reasons
rtl/win32/sysinit.inc:
  * SysInitEntryInformation: initialize with pointers to the correct tables

git-svn-id: trunk@33027 -
2016-01-29 16:51:27 +00:00
svenbarth
3da7675eb1 Add a possiblity for targets to specify additional fields for TEntryInformation using an optional sub record called TEntryInformationOS
rtl/inc/systemh.inc:
  + add field OS of type TEntryInformationOS if the target specifies HAS_ENTRYINFORMATION_OS
rtl/java/jsystemh_types.inc:
  + same adjustments as above for consistency reasons despite it being not used there anyway

git-svn-id: trunk@33024 -
2016-01-29 15:32:33 +00:00
svenbarth
b525cecad8 - get rid of the calling convention modifier for PascalMain as it's generated using the default calling convention anyway (without any parameters this luckily doesn't matter that much ;) )
(Note: adjusted merge info as in my packages branch there is a less complete commit for this)

git-svn-id: trunk@33023 -
2016-01-29 14:51:15 +00:00
nickysn
0f6b5161e6 * the 'count' parameter of Move and FillChar on i8086 made 16-bit unsigned,
instead of signed (BP7 compatibility)

git-svn-id: trunk@32443 -
2015-11-21 17:55:47 +00:00
marco
08f9400070 * adding puint64 mantis #29020
git-svn-id: trunk@32351 -
2015-11-16 20:39:38 +00:00
marco
d95b95e648 * fix for #28940 also add PSizeUint
git-svn-id: trunk@32257 -
2015-11-06 15:54:54 +00:00
Jonas Maebe
80902035e0 * moved excepth.inc include from the system unit implementation to interface
so that we can still find the type definitions in it once we don't store
    the entire implementation symtable to the ppu anymore

git-svn-id: trunk@32151 -
2015-10-25 19:21:54 +00:00
michael
8161c1135c * Add offset to Pos functions, Delphi XE 8 compatible.
git-svn-id: trunk@31464 -
2015-08-31 13:05:37 +00:00
marco
8cf0c3bcb6 * camel case paramcount as per mantis #28503
git-svn-id: trunk@31307 -
2015-08-10 08:17:46 +00:00