Commit Graph

41765 Commits

Author SHA1 Message Date
lacak
c16d232c3a fcl-db: bufdataset: when updates in update buffers are canceled, reverted records must be correctly restored to all active indexes not only in current (then other indexes remains in inconsistent state)
Bug #25314

git-svn-id: trunk@26093 -
2013-11-15 07:54:08 +00:00
nickysn
6af4353933 + enabled PatternLineVESA256 in the graph unit for i8086-msdos as it now
compiles and works correctly.

git-svn-id: trunk@26092 -
2013-11-15 00:48:44 +00:00
sergei
141b2f7066 * arcsin and arccos: improve accuracy at small arguments by replacing sqr(1-x*x) with sqr((1-x)*(1+x)).
* arcosh: likewise, error near 1.0 decreases approx. from 80*eps to 4*eps.
* artahn: improve accuracy by replacing ln(x+1) with lnxp1(x).

git-svn-id: trunk@26091 -
2013-11-14 18:26:34 +00:00
Jonas Maebe
b6d279d4aa * don't transform div-by-power-of-2 into a shift when overflow checking is
enabled (mantis #23849)

git-svn-id: trunk@26089 -
2013-11-14 15:47:49 +00:00
lacak
f02dd9fde9 fcl-db: sqldb: formatting + add default information schema query for SchemaType=stProcedures (for those TSQLConnection descendants, which does not implement own schema query use sql standard)
git-svn-id: trunk@26087 -
2013-11-14 11:55:42 +00:00
sergei
636736dda6 * log2() and log10(): replaced division by ln(base) with multiplication by reciprocal constant, this executes faster and somehow provides slightly better accuracy.
git-svn-id: trunk@26086 -
2013-11-14 08:22:28 +00:00
sergei
c7213b7ff1 - Math unit: don't raise EInvalidArgument exception in general math functions, this is Delphi-compatible. Delphi raises EInvalidArgument only in statistical/financial functions; general math functions execute code which causes EInvalidOp raised by hardware (or low-level system routines).
git-svn-id: trunk@26085 -
2013-11-14 07:49:38 +00:00
sergei
5206584805 * lnxp1 function fixed to be accurate near zero argument values, using code from AMath library by Wolfgang Ehrhardt.
git-svn-id: trunk@26084 -
2013-11-14 07:03:11 +00:00
Jonas Maebe
9b1a36fcdb * don't call buildderef for the local symtable of procdefs unless we will
write it to the ppu

git-svn-id: trunk@26083 -
2013-11-13 20:52:38 +00:00
florian
92508a9801 * take of life of tlabelnode.left, the test does not test this however because I'am not aware of any example to force a left node for a label
git-svn-id: trunk@26082 -
2013-11-13 19:26:37 +00:00
nickysn
fcd079db3d - rm the ss: prefix from the references, relative to bp (for them ss is the default)
git-svn-id: trunk@26081 -
2013-11-13 17:36:59 +00:00
nickysn
318a79cda7 * added a cld instruction in the int 0 handler
git-svn-id: trunk@26080 -
2013-11-13 17:08:39 +00:00
Jonas Maebe
cada770f9e * changed return value in case of failure in ThreadManager.SemaphoreInit
from nil to pointer(-1), because nil/0 is a valid return value for
    sem_open() on some platforms

git-svn-id: trunk@26079 -
2013-11-13 16:51:11 +00:00
sergei
3ce0b33302 * Win64 SEH: when creating a finalization procedure, put its def into the same symtable with sym. By default, defs are added into symtablestack.top, which may be set to something temporary like exceptsymtable. In such cases it is possible that def is destroyed before sym, leaving sym with invalid pointers.
git-svn-id: trunk@26077 -
2013-11-13 12:27:27 +00:00
pierre
926c1ba657 Fix extension od dxegen.pp source in fpmake
git-svn-id: trunk@26076 -
2013-11-13 11:26:24 +00:00
nickysn
9bfb25ff4c * use a far jmp to FPC_HANDLEERROR in far code memory models
git-svn-id: trunk@26075 -
2013-11-13 00:42:47 +00:00
nickysn
b6c02c651f * use %ifdef __FAR_CODE__ instead of %ifdef __MEDIUM__ in the int 0 handler (for
compatibility with future memory models)

git-svn-id: trunk@26074 -
2013-11-13 00:40:12 +00:00
nickysn
06c5acf69a + added division by zero exception handling for i8086-msdos
git-svn-id: trunk@26073 -
2013-11-12 22:05:05 +00:00
pierre
f6f183f866 Put both _environ and __environ as .comm inside startup script to avoid crt1.o loading
git-svn-id: trunk@26069 -
2013-11-12 16:41:08 +00:00
pierre
2370669f86 Avoid infinite recursion on generic classes for IDE browser
git-svn-id: trunk@26068 -
2013-11-12 16:39:20 +00:00
Jonas Maebe
864a72ee69 * fixed (harmless) range errors
git-svn-id: trunk@26067 -
2013-11-12 16:11:17 +00:00
Jonas Maebe
3e393b867b * small extension of the test
git-svn-id: trunk@26066 -
2013-11-12 10:30:28 +00:00
sergei
897c8b8f7b * Cleanup fpc_trunc_real implementation.
* For single-precision variant, truncate to 64 bits instead of 32, since this how trunc()/round() are defined.
* Do not access float64 as int64, doing so would break on ARM hardfloat after r26010.
  

git-svn-id: trunk@26065 -
2013-11-12 09:31:23 +00:00
Jonas Maebe
5f744ff355 * fixed spelling error and updated link where to download the html docs
git-svn-id: trunk@26064 -
2013-11-11 22:46:19 +00:00
nickysn
dc432918da + enabled the use of the DIV/IDIV instruction for 16-bit div/mod on i8086
* ti8086.moddivnode.pass_generate_code: use cg.a_op_const_reg, instead of
  emit_const_reg, in order to support generating plain 8086/8088 code
  (shr/shl/sar reg,const is 186+ if const is >= 2).

git-svn-id: trunk@26063 -
2013-11-11 22:34:41 +00:00
nickysn
bd083c0b8e * ti8086moddivnode.pass_generate_code converted to 16-bit. Note that this code
is still not active, due to the cpuneedsdiv32helper define, but will
  eventually be enabled for 16-bit divisions.

git-svn-id: trunk@26062 -
2013-11-11 21:01:13 +00:00
marco
11800f0804 * hints fixes by AlexL, Mantis #25230
git-svn-id: trunk@26059 -
2013-11-11 11:21:08 +00:00
sergei
437b3755d1 * math.hypot(): factor larger argument out of expression in order to avoid loss of precision.
git-svn-id: trunk@26026 -
2013-11-11 09:56:20 +00:00
lacak
aa147703d5 fcl-db: memds: when FieldDefs are changed set TableIsCreated to false to signal, that CreteTable should be called.
+ Add test unit for TMemDataset to allow test specific properties/methods of TMemDataset
+ Add this unit to test frameworks

git-svn-id: trunk@26025 -
2013-11-11 09:14:21 +00:00
Jonas Maebe
8d1fb0ee1c * added a safety check to gen_load_cgpara_loc()
git-svn-id: trunk@26024 -
2013-11-10 23:27:05 +00:00
Jonas Maebe
8a0caea0c0 + override g_save_registers() and g_restore_registers() with do-nothing versions
for high level code generator targets

git-svn-id: trunk@26023 -
2013-11-10 21:33:38 +00:00
Jonas Maebe
1b6e4e572f - removed duplicate thlcg2ll a_label method (it's declared the same in
thlcgobj and not virtual in either class)

git-svn-id: trunk@26022 -
2013-11-10 21:32:39 +00:00
Jonas Maebe
8cdde466bb * include fpcdefs.inc
git-svn-id: trunk@26021 -
2013-11-10 21:30:55 +00:00
Jonas Maebe
62e1df9e76 * fixed indentation
git-svn-id: trunk@26020 -
2013-11-10 21:25:34 +00:00
Jonas Maebe
c1cec52897 * fixed alignment of bitpacked arrays of ordinals/enums: the prevous code
always returned the alignment of enum/ordinal by itself, which could be
    either bigger or smaller than what was required
  * for non-bitpacked regular arrays, always use the alignment of the elements
    instead of sometimes the natural alignment of the size of the elements
    (which can be different)

git-svn-id: trunk@26019 -
2013-11-10 21:22:28 +00:00
nickysn
dea947f87b * fixed tcgx86.a_op_const_ref for shl/shr/sar/rol/ror on i8086 and x86_64
git-svn-id: trunk@26018 -
2013-11-10 20:39:47 +00:00
florian
412dc6586f * the writestr helper initializes the target string, so mark it as being written
before the call to the helper to get proper life information

git-svn-id: trunk@26017 -
2013-11-10 20:20:40 +00:00
florian
8be7cfa05f * check the scope of a variable when checking dfa based uninitialized variables,
dfa is procedure local only so consider only variables of the current scope

git-svn-id: trunk@26016 -
2013-11-10 20:20:38 +00:00
florian
57586b69c7 * implicit try...finally frames are added after dfa so we don't have to take care if the subroutine needs/uses those or not
git-svn-id: trunk@26015 -
2013-11-10 20:20:36 +00:00
florian
3cb747f4a7 * mark the node which is the entry of the user code with a flag
* check for uninitialized variables at the node which is marked as the start of the user code

git-svn-id: trunk@26014 -
2013-11-10 20:20:27 +00:00
nickysn
870d432468 + reenabled the new str<->float conversion code on i8086 after the fix in r26005
git-svn-id: trunk@26013 -
2013-11-10 18:29:17 +00:00
florian
24d88edf37 * fixes arm building after 26004
git-svn-id: trunk@26012 -
2013-11-10 17:46:03 +00:00
Jonas Maebe
f348e89112 - removed too early assignment of have_first_symbol:=true, making the later
check of "if not have_first_symbol and dosub then" always evaluate to
    false (found by looking at the results of constant propagation :)

git-svn-id: trunk@26011 -
2013-11-10 15:08:28 +00:00
sergei
203efdcd0e * Let order of fields in float64 record depend on FPC_DOUBLE_HILO_SWAPPED, so messing with this order on every usage of float64 is no longer necessary.
git-svn-id: trunk@26010 -
2013-11-10 14:52:57 +00:00
nickysn
c666649320 * proper fix for the passing of TEST_OPT to tstunits on msdos. The value of
TEST_OPT was normally already passed in OPT, but on msdos the old value
  was killed, due to the 'override OPT=-CX'.

git-svn-id: trunk@26009 -
2013-11-10 14:36:06 +00:00
marco
b4496c4aba * trim output buffer in try..finally, catch result iconv in variable.
git-svn-id: trunk@26008 -
2013-11-10 12:53:58 +00:00
nickysn
681350daba * add the options specified in TEST_OPT when compiling the tstunits. This allows
running the testsuite for a different than the default i8086 memory model by
  specifying (for example) TEST_OPT=-WmMedium

git-svn-id: trunk@26007 -
2013-11-10 12:23:26 +00:00
marco
be92aba9ba * correction for missing start in wavstream record. Mantis #25268
git-svn-id: trunk@26006 -
2013-11-10 11:34:01 +00:00
Jonas Maebe
6359441045 * force shl operations to be 32 bit on 16/8 bit platforms (patch by
Max Nazhalov, mantis #25241)

git-svn-id: trunk@26005 -
2013-11-10 10:24:54 +00:00
florian
a0f0d0de40 * make use of the noreturn directive for internalerror
* clean up of the internalerror procedure variable in the constexp unit

git-svn-id: trunk@26004 -
2013-11-10 09:01:03 +00:00