Commit Graph

41167 Commits

Author SHA1 Message Date
nickysn
4b3bf874df * Added CLDs in the RTL i386 inline asm routines, wrapped in {$ifdef
FPC_ENABLED_CLD}.

git-svn-id: trunk@25606 -
2013-09-29 10:53:49 +00:00
nickysn
4929bc5694 * regenerated the i8086 ins files
git-svn-id: trunk@25603 -
2013-09-28 21:10:23 +00:00
nickysn
781fa416e2 * make insdatx86 now also refereshes the i8086 ins files
git-svn-id: trunk@25602 -
2013-09-28 21:08:21 +00:00
nickysn
c47d745bcf + added support for i8086 in mkx86ins.pp
git-svn-id: trunk@25601 -
2013-09-28 21:06:09 +00:00
nickysn
a013019462 * make insdatx86 now also updates the i8086 reg files
git-svn-id: trunk@25600 -
2013-09-28 20:59:46 +00:00
nickysn
d8ef5aa3c4 * mkx86reg.pp updated to support i8086
git-svn-id: trunk@25599 -
2013-09-28 20:56:47 +00:00
svenbarth
2c93687c5a Fix an embarrasing error in m68k which fixes 60 tests.
m68k/cgcpu.pas, tcg68k.g_flags2reg:
  * don't sign extend the flag value which was stored to the register, but instead do a "AND 1" on it to reduce it to 1 bit; afterall Booleans in Pascal are either 0 or 1 and not 0 or $FF

+ added test

git-svn-id: trunk@25598 -
2013-09-28 20:07:57 +00:00
nickysn
4d6a9137cf + added the new -CTcld option to the help screen
git-svn-id: trunk@25597 -
2013-09-28 16:05:01 +00:00
nickysn
989c543ea2 * UpdateTargetSwitchStr moved from unit globals to unit options in order to
avoid the dependency of unit globals on unit symtable, which breaks the build
  of ppudump

git-svn-id: trunk@25596 -
2013-09-28 15:43:56 +00:00
nickysn
a48b44cfe5 + added a new tsystemflag tf_cld, which indicates that ts_cld should be enabled
by default on this target
+ tf_cld enabled for i8086-msdos (for Turbo Pascal compatibility)

git-svn-id: trunk@25595 -
2013-09-28 14:57:12 +00:00
nickysn
ac66f3ae1b + added new field 'define' to ttargetswitchinfo, which specifies a system macro
to be defined while the target switch is active
* the CLD target switch defines 'FPC_ENABLED_CLD' once again

git-svn-id: trunk@25594 -
2013-09-28 14:14:32 +00:00
Jonas Maebe
90fb63db26 * also compare the type of tordconstnode in docompare, so that the node CSE
doesn't replace e.g. 32 bit and 64 bit constants with the same value by
    a single 32 bit constant (mantis #25090)

git-svn-id: trunk@25593 -
2013-09-28 14:12:50 +00:00
nickysn
bd0585274e * tsettings.enablecld converted to a targetswitch ts_cld
git-svn-id: trunk@25592 -
2013-09-28 13:41:58 +00:00
nickysn
e4b05477e1 * put the cld instructions behind {$ifdef FPC_ENABLED_CLD} in i386/strings*.inc
* strupper and strlower were missing a cld, so it was added to them as well.

git-svn-id: trunk@25591 -
2013-09-28 12:06:47 +00:00
nickysn
52fcc0a407 + added a new x86-specific compiler option 'enablecld', which controls whether
the compiler should emit a CLD before using the x86 string instructions.

git-svn-id: trunk@25590 -
2013-09-28 11:54:02 +00:00
svenbarth
4d1fb1573e m68k: Fix handling of small sets (based on how ARM does it)
Fixes 12 tests

git-svn-id: trunk@25589 -
2013-09-28 08:17:13 +00:00
svenbarth
83f4344c20 Fix around 30 tests for m68k by fixing FillChar:
* completely disable the DBRA part for CPUs without DBRA
  * replace CMP/BNE with BPL which uses the flags of the SUB instruction
Additional fixes for the other two (still disabled) DBRA alternatives:
  * use BPL instead of BMI (which is wrong)

git-svn-id: trunk@25587 -
2013-09-27 20:57:55 +00:00
svenbarth
dfb0c7da24 Forgot to commit this the last time: Use CPUM68K_HAS_DBRA instead of CPUCOLDFIRE (which does not exist anymore).
git-svn-id: trunk@25586 -
2013-09-27 20:54:54 +00:00
Jonas Maebe
8e107217f6 + added "nostackframe" to routine with code that should assemble into
a single instruction

git-svn-id: trunk@25585 -
2013-09-27 15:06:48 +00:00
michael
48250dcafd * implementation of sqSupportEmptyDatabaseName from Laco, used in PostGres and MSSQL
git-svn-id: trunk@25584 -
2013-09-27 11:42:15 +00:00
paul
d801548604 compiler: support also XOR expressions in macro expressions
git-svn-id: trunk@25583 -
2013-09-27 00:28:15 +00:00
michael
098769d1b3 * Added TStringList.CompareStrings (Delphi compatibility), patch by Stephano, bug ID #24981
git-svn-id: trunk@25582 -
2013-09-26 18:09:12 +00:00
svenbarth
eebabc0152 Correct fix for Mantis #24909 : some systems (Linux, OpenBSD) use the one order while other systems use the other (FreeBSD, NetBSD).
+ add a define for each of the two orders
* fail if none of the two defines is defined ( => for porting to new systems)
+ use the order as specified by the define

git-svn-id: trunk@25581 -
2013-09-26 12:27:37 +00:00
svenbarth
32beb30129 Small improvements for generate_specializations.
pgenutil.pas, generate_specializations:
  * use splite_generic_name
  * use the genericparas list instead of iterating the complete symlist
pgenutil.pas, split_generic_name:
  * leave the loop instead of providing an internal error if the right part is not a number

git-svn-id: trunk@25580 -
2013-09-26 12:17:30 +00:00
svenbarth
e8edbd29c0 Fix for Mantis #24687.
pgenutil.pas:
  + add new function could_be_generic which checks whether a given symbol name could be a generic (which is determined using the genericdummysyms list for the current module)
pexpr.pas:
  * factor: only do a typecheck pass (postfixoperators does one as well) if the found node can not be a generic type
  * sub_expr: do a typecheck pass if it isn't a specialization

+ added test

git-svn-id: trunk@25579 -
2013-09-26 10:21:11 +00:00
svenbarth
fb8b0e7a27 Fix for Mantis #24453. Check for nested types after a specialization. Additionally check correctly whether a type is really a generic before accepting it when parsing a generic.
pgenutil.pas, generate_specialization:
  * use "is_generic" instead of "df_generic in defoptions" as nested non generic types will have that flag set as well and thus would be acceptable for the "<...>" notation although no generic version of it exists
ptype.pas, single_type:
  * check for nested types after doing a specialization

+ added tests (one for now working case and one for now forbidden case)

git-svn-id: trunk@25578 -
2013-09-26 09:21:28 +00:00
svenbarth
68a3827539 Fix for Mantis #21051. Correctly handle specializations that occur during the specialization of methods.
cclasses.pas:
  + TFPHashList & TFPHashObjectList: add WhileEachCall methods that walk the list like ForEachCall does, but uses a while-loop instead of a for-loop
psub.pas, generate_specialization_procs:
  * use WhileEachCall instead of ForEachCall as new defs can be added during the specialization that need to be specialized as well

+ added test

git-svn-id: trunk@25577 -
2013-09-26 08:15:58 +00:00
michael
b45c092186 * Fixed bug ID #24909 (switch 2 fields in addrinfo record)
git-svn-id: trunk@25576 -
2013-09-26 07:13:50 +00:00
michael
710313a748 * Removed unussed but unix-only variables
git-svn-id: trunk@25575 -
2013-09-26 07:08:36 +00:00
paul
bc636658d6 rtl: add/change some token related types
git-svn-id: trunk@25574 -
2013-09-26 03:51:06 +00:00
Jonas Maebe
2c664ac6ae * fix compatibility with new Package Management system under Haiku
(patch by Olivier Coursiere, mantis #25051)

git-svn-id: trunk@25573 -
2013-09-25 20:57:41 +00:00
michael
1eb2308ffa * Applied patch from Daniel Garpary to be able to create custom TDomElement descendents
git-svn-id: trunk@25572 -
2013-09-25 19:20:07 +00:00
michael
973c0687fc * Changes as suggested in bug ID #24810, so a threaded web application can be stopped correctly, even from a request
git-svn-id: trunk@25571 -
2013-09-25 19:06:16 +00:00
michael
83cad92b11 * Implement event handler for handling errors during accept. Implemented Abort as suggested in Bug ID #24810
git-svn-id: trunk@25570 -
2013-09-25 19:04:37 +00:00
nickysn
d89d27a00e + added the dependency of unit ptc to unit p_ddraw on win32 and win64
git-svn-id: trunk@25569 -
2013-09-25 14:55:50 +00:00
nickysn
5da9170615 + enabled compilation of unit ptc for go32v2
git-svn-id: trunk@25568 -
2013-09-25 14:39:33 +00:00
marco
c34760677b * zip64 support by Reinier Olislagers, mantis #23533
git-svn-id: trunk@25567 -
2013-09-25 11:04:35 +00:00
lacak
ca44693e4b fcl-db: base: addition to rev.25543 + move property Stream from public to protected section.
git-svn-id: trunk@25566 -
2013-09-25 11:01:38 +00:00
paul
de6a53376c win32: update TOKEN_INFORMATION_CLASS from windows sdk
git-svn-id: trunk@25565 -
2013-09-25 08:50:38 +00:00
sergei
a6d34945a2 * Commented out exponent check added in r25549: since this code is used by compiler, it breaks compilation of code with constants in extended range on targets without extended precision.
git-svn-id: trunk@25564 -
2013-09-25 07:18:18 +00:00
michael
be6d5ec663 * Some refactoring, so fpweb is easier to customize
git-svn-id: trunk@25563 -
2013-09-25 07:17:51 +00:00
paul
cdd5d029f0 compiler: don't add operator name as a function result into operator symtable. For FPC mode only operator result identifier should be added and for Delphi mode only 'Result' identifier. Fixes mantis #0025081
git-svn-id: trunk@25562 -
2013-09-25 05:22:28 +00:00
paul
c22c364f43 compiler: regenerate parameter list in tprocvardef.getcopy (fixes compiler crash, issue #0025077)
git-svn-id: trunk@25561 -
2013-09-25 03:28:14 +00:00
paul
ce6c8c1b59 compiler: search namespace symbols also in the interface symtable of a unit when we are registering a unit with a namespace in the implementation section (fixes issue #0025059)
git-svn-id: trunk@25560 -
2013-09-25 02:25:26 +00:00
paul
d373ad27bc compiler: don't allow unit/namespace symbols be visible outside current unit or unit of currently specialized generic
git-svn-id: trunk@25559 -
2013-09-25 00:29:56 +00:00
Jonas Maebe
44b141ea1a * also load the methodpointer type for managed VM types. It's required
now that there is no special assigned handling anymore, because the
    generic "<>nil" code for method pointers loads the "proc" field
    via an internally generated tmethod() typecast (using the
    methodpointer type). Additionally, not loading this type was
    an artefact from the time that it wasn't available yet for the
    JVM target

git-svn-id: trunk@25558 -
2013-09-24 23:57:21 +00:00
Jonas Maebe
20d6db20c8 * fixed compilation of length(unicode/ansistring) on JVM target after r25499
(we previously internally generated assigned(unicode/ansistring) nodes,
     which now cause typecheck errors because there is no special assigned
     handling anymore)

git-svn-id: trunk@25557 -
2013-09-24 23:57:17 +00:00
nickysn
1f783f539c * emit a cld instruction before the rep movsXX in tcg8086.g_copyvaluepara_openarray as well
git-svn-id: trunk@25556 -
2013-09-24 20:09:11 +00:00
nickysn
5c46e6f474 * emit a cld instruction before the rep movsXX in tcg386.g_copyvaluepara_openarray
git-svn-id: trunk@25555 -
2013-09-24 20:07:53 +00:00
sergei
d981861433 * IsNan(single): can be written much simpler, because representation of single casted to longint is the same on big-endian and little-endian targets.
git-svn-id: trunk@25554 -
2013-09-24 18:55:44 +00:00