Commit Graph

41509 Commits

Author SHA1 Message Date
nickysn
fd05d0c14e * 16/8-bit ALU fix in maybechangeloadnodereg. This fixes the tbopr and trox2
tests on i8086.

git-svn-id: trunk@25752 -
2013-10-13 11:35:56 +00:00
michael
d097d73de2 * make TParam.Value published
git-svn-id: trunk@25751 -
2013-10-13 10:46:02 +00:00
nickysn
f6e846c574 + added the NEC V20/V30 instructions
git-svn-id: trunk@25750 -
2013-10-11 21:27:56 +00:00
michael
376259cc8e * Different default mechanism
git-svn-id: trunk@25748 -
2013-10-11 08:04:08 +00:00
michael
481b0e7260 * Fix typo (from Andreas Schneider)
git-svn-id: trunk@25747 -
2013-10-11 07:58:41 +00:00
Károly Balogh
db49a169cb handle more locations in tm68knotnode, fixes several tests failing to compile with 200203223
git-svn-id: trunk@25746 -
2013-10-11 02:51:23 +00:00
Károly Balogh
aedf2dc20d fixed spilling operation type for A_LEA, fixes test tb0112 to compile, but still fails to run
git-svn-id: trunk@25745 -
2013-10-11 02:03:48 +00:00
Károly Balogh
275031a0dd fix a bogus R_INTREGISTER to be R_ADDRESSREGISTER in getopstr()
git-svn-id: trunk@25744 -
2013-10-10 22:24:56 +00:00
Károly Balogh
fe3d11118c add string version of the new instructions to the right place. removed one more duplicate table.
git-svn-id: trunk@25743 -
2013-10-10 22:12:40 +00:00
Károly Balogh
dfe2f253f9 added 68040 CPU type, MOVE16 and ColdFire V4 extra instructions
git-svn-id: trunk@25742 -
2013-10-10 22:01:58 +00:00
Károly Balogh
280ee919b7 removed several debug writeln()s
git-svn-id: trunk@25741 -
2013-10-10 21:20:20 +00:00
Károly Balogh
bcab04538c removed unused table, cleanups
git-svn-id: trunk@25740 -
2013-10-10 21:19:15 +00:00
Károly Balogh
4c5f273bc5 removed redundant instruction table only used for ugly debug, and the ugly debug code itself
git-svn-id: trunk@25739 -
2013-10-10 21:16:07 +00:00
sergei
a5ae26da7e * Moved SkipEntryExitMarker method from ARM optimizer to the base one, since it is not target-dependent. Now it can be reused by other targets.
git-svn-id: trunk@25738 -
2013-10-10 21:12:49 +00:00
sergei
a3364a4b80 - RTL, Linux/FreeBSD shared library startup: removed FPC_SHARED_LIB_EXIT label, it is a leftover from times when library startup code was erroneously halting owning process on exit.
git-svn-id: trunk@25737 -
2013-10-10 13:14:56 +00:00
sergei
f2a4d1bbbc - Do not compile generic threadvar code if tf_section_threadvars flag is enabled for target (currently there are no such targets).
git-svn-id: trunk@25736 -
2013-10-10 12:55:30 +00:00
sergei
90d66595c2 * typecheck_real_to_currency: generate inline round() node instead of direct call to fpc_round_real, this allows target-specific processing to take place and possibly emit more efficient code.
* Provide x86_64 SSE versions of fpc_trunc_real and fpc_round_real, strictly they are not necessary after the above change to code generation, but it still reduces size of system unit by avoiding compilation of related generic code.

git-svn-id: trunk@25735 -
2013-10-10 12:46:51 +00:00
nickysn
849843fb20 * fixed compilation of unit graph for win32 and win64 after r25730
git-svn-id: trunk@25734 -
2013-10-10 09:06:13 +00:00
michael
b1b8cc2542 * Patch from LaCo to fix bug #25118
git-svn-id: trunk@25733 -
2013-10-10 06:36:22 +00:00
michael
86d2d0c9be * Patch from LaCo to bring implementation in line with other DB dyn units (bug ID 25118)
git-svn-id: trunk@25732 -
2013-10-10 06:34:52 +00:00
nickysn
b73252bd3d + enabled compilation of the code page units for i8086-msdos
git-svn-id: trunk@25731 -
2013-10-09 23:39:36 +00:00
nickysn
73e875c7b2 * the graph unit's built in font compressed to use 1 bit per pixel, instead of
1 byte. This saves 14kb of space from the precious 64kb available for data in
  the i8086 medium memory model.

git-svn-id: trunk@25730 -
2013-10-09 21:10:58 +00:00
nickysn
d69a3447cd * the DrawnList structure (used by FloodFill) is now dynamically allocated
before a FloodFill and freed afterwards, so it doesn't waste memory, while
  not in use

git-svn-id: trunk@25729 -
2013-10-09 20:27:04 +00:00
svenbarth
6fef9a2c80 Correctly implement g_intf_wrapper. Fixes nearly 200 tests and now the cross compiled compiler is at least able to print the help (compiling a simple program does not work yet though).
m68k/cgcpu.pas, tcg68k:
  + override g_adjust_self_value as we don't do register allocation for the wrapper we need to adjust the Self value using the scratch registers (could be improved however) and we also can not use the offset that the original procedure in tcg uses
  * fix g_intf_wrapper by using the correct operations and loading the correct (virtual) method offset

git-svn-id: trunk@25728 -
2013-10-09 19:56:17 +00:00
nickysn
327a15488e * generate a run time error 203 in the tiny heap in case there's not enough
memory for a memory allocation and ReturnNilIfGrowHeapFails is false

git-svn-id: trunk@25727 -
2013-10-09 19:27:55 +00:00
florian
babbc21afd * fix handling of register sets on m68k: it is required that they are stored as two tcpuregistersets because address registers and data registers have different register types
git-svn-id: trunk@25726 -
2013-10-09 18:15:06 +00:00
nickysn
6f474e525c * TNewModeInfo/newModeList modified so that it doesn't keep a second copy of the
TModeInfo record for each mode, but instead keep only a pointer to the entry
  in the regular ModeList. This frees a lot of memory on i8086-msdos, when using
  the medium memory model (which has a 64kb data limit).

git-svn-id: trunk@25725 -
2013-10-08 21:11:39 +00:00
nickysn
6d1663fdc5 * the TNewModeInfo record type moved to the implementation part of the graph
unit. It is extremely unlikely that this type was ever used by programs,
  because:
  1) the newModeInfo structure of this type is in the implementation part of
     the unit
  2) none of the graph unit procedures and functions use this type either as a
     parameter or as a function result

git-svn-id: trunk@25724 -
2013-10-08 19:20:54 +00:00
marco
c7206dde97 * changed type of unused parameter in TWMSetFocus from WParam to LParam as
suggest by ChrisF, Mantis #25171

git-svn-id: trunk@25723 -
2013-10-08 16:02:25 +00:00
nickysn
7b7334138b + use PatternLineVESA256 also for the 640x400 256-colour VESA mode
git-svn-id: trunk@25722 -
2013-10-08 14:45:56 +00:00
lacak
3c0386ca19 fcl-db: sqlDB: add more informations to schema query for table columns (SchemaType=stColumns)
(Values for COLUMN_DATATYPE are not compatible across TSQLConnections, but are proprietary)

git-svn-id: trunk@25721 -
2013-10-08 07:34:53 +00:00
paul
1c578de28c compiler:
* don't allow to apply the same hint directive twice
  * change parser_e_proc_dir_not_allowed to more generic variant parser_e_dir_not_allowed - they are similar and 'procedure' prefix does not give more information about the error.
  * maybe_parse_hint_directives() uses procdef settings for initial values
  + add tests

git-svn-id: trunk@25720 -
2013-10-08 04:56:42 +00:00
Jonas Maebe
9619ed8b4b - undo hack from r25713
* fix maybe_parse_hint_directives() when it is called multiple times for a
   procdef that has a deprecation message specified (fixes crashes
   reported in #25101/#25165)

git-svn-id: trunk@25719 -
2013-10-07 20:54:26 +00:00
nickysn
8fad859161 * the default packrecords setting changed to 1 on i8086 for Turbo Pascal 7
compatibility

git-svn-id: trunk@25718 -
2013-10-07 20:42:17 +00:00
nickysn
9d1ba65cec * {$PackRecords NORMAL}, {$PackRecords DEFAULT} and {$ALIGN RESET} now set
packrecords to default_settings.packrecords, instead of 0

git-svn-id: trunk@25717 -
2013-10-07 20:41:19 +00:00
yury
b293f7e5c4 * ppudump: Do not skip unnamed inline array type definitions such as "var arr: array of integer";
git-svn-id: trunk@25716 -
2013-10-07 20:15:13 +00:00
svenbarth
a4683461cf Fix around 25 tests (under them all tcalval* tests!) by indeed using the save/restore registers code I adjusted earlier.
m68k/cgcpu.pas, tcg68k:
  - remove g_save_registers and g_restore_registers which DID NOT CALL inherited!
  - also remove commented methods g_save_all_registers & g_restore_all_registers

git-svn-id: trunk@25715 -
2013-10-07 19:36:21 +00:00
nickysn
4e951d908d * extracted the common code for the VESA 32k and 64k colour TModeInfo initialization
git-svn-id: trunk@25714 -
2013-10-07 15:11:56 +00:00
paul
82243b5c9d compiler: temporary disable hint directive parse if objectivec1 modeswitch set
git-svn-id: trunk@25713 -
2013-10-07 14:31:29 +00:00
paul
8f6f0d63a0 compiler: check modeswitches first
git-svn-id: trunk@25712 -
2013-10-07 13:17:22 +00:00
nickysn
7e3dd92b03 * extracted the common code for the VESA 16-colour TModeInfo initialization
git-svn-id: trunk@25711 -
2013-10-07 13:11:46 +00:00
paul
912384594b fpc: allow hint directives between other procedure directives in Delphi mode (issue #25101)
git-svn-id: trunk@25710 -
2013-10-07 10:59:53 +00:00
michael
4bdf29795c * Example how to create public/private RSA key
git-svn-id: trunk@25709 -
2013-10-07 07:51:53 +00:00
michael
eeb3d8236a * Added some constants and encoding functions.
git-svn-id: trunk@25708 -
2013-10-07 07:27:12 +00:00
nickysn
0aff18ac61 + implemented tcg64f8086.a_op64_ref_reg
git-svn-id: trunk@25707 -
2013-10-07 00:17:03 +00:00
nickysn
3cdbf9a805 + implemented tcg64f8086.a_op64_const_ref
git-svn-id: trunk@25706 -
2013-10-06 23:56:25 +00:00
nickysn
3bdd3d9a4e + optimization in tcg64f8086.a_op64_const_reg for OP_ADD and OP_SUB when the
lowest 48, 32 or 16 bits of the constant are zeros

git-svn-id: trunk@25705 -
2013-10-06 23:43:38 +00:00
nickysn
88c7ca96c5 + optimization in tcg8086.a_op_const_reg and .a_op_const_ref for 32-bit OP_ADD
and OP_SUB when the low 16 bits of the const are 0

git-svn-id: trunk@25704 -
2013-10-06 23:23:06 +00:00
nickysn
8f44e729cc * tcg8086.a_op_const_ref and .a_op_const_reg: when splitting a 32-bit OP_AND,
OP_OR or OP_XOR operation into two 16-bit parts, call a_op_const_reg/ref
  recursively for the 16-bit parts, so certain optimizations can be done if the
  low or high 16-bit of the const are $ffff.

git-svn-id: trunk@25703 -
2013-10-06 23:02:07 +00:00
Károly Balogh
1f11c39a5d * huge m68k/cgcpu.pas cleanup and improvement commit
- removed the ancient DEBUG_CHARLIE silliness... :)
- moved some repeated code patterns into separate functions
- rewrote most of of tcg68k.a_op_const_reg and tcg68k.a_op_reg_reg
- smarter code generation in tcg68k.a_cmp_const_reg_label
- added support for MULU/MULS on Coldfire in a case which is often used by the CG to index arrays to be used instead of the RTL helpers, this results in a *HUGE* speedup in tw5086 for example

git-svn-id: trunk@25702 -
2013-10-06 22:16:37 +00:00