Commit Graph

41579 Commits

Author SHA1 Message Date
paul
6e7cc22207 compiler: don't allow to assign to for-in loop variable (bug #0025318)
git-svn-id: trunk@26108 -
2013-11-19 05:29:37 +00:00
nickysn
0020a2ed10 + when targeting the i8087, emit FWAIT prefix manually for the 8087 instructions
that require it in the NASM asm writer, since NASM doesn't do it itself.

git-svn-id: trunk@26107 -
2013-11-19 01:26:57 +00:00
nickysn
12b2f86e99 + added function requires_fwait_on_8087(), which checks whether a given
instruction needs adding a FWAIT prefix on the i8087.

git-svn-id: trunk@26106 -
2013-11-18 23:38:57 +00:00
sergei
949b994a68 - Got rid of "goto".
git-svn-id: trunk@26104 -
2013-11-17 19:32:54 +00:00
nickysn
85e1f444c5 * is_ecx_used modified to only check the callee side, but after a call to
init_paraloc_info to ensure that the callee side paraloc info is created.

git-svn-id: trunk@26103 -
2013-11-17 15:46:56 +00:00
reiniero
f19d65118d * fcl-db gui test runner: move edit .ini button out of the way a bit
git-svn-id: trunk@26102 -
2013-11-17 10:50:30 +00:00
nickysn
fbca7ee2cb * check callerside if calleeside isn't available in is_ecx_used. Based on the
patch by Do-wan Kim, mantis #25269.

git-svn-id: trunk@26101 -
2013-11-16 19:39:15 +00:00
michael
a13f479b50 * Added PeriodBetween by Bart
git-svn-id: trunk@26100 -
2013-11-16 17:18:09 +00:00
nickysn
3eeb422abe * use $(NASM) to compile the asm loaders. Fixes mantis #25223.
git-svn-id: trunk@26099 -
2013-11-16 13:05:55 +00:00
nickysn
5b3163beb4 * updated fpcmake revision.inc
git-svn-id: trunk@26098 -
2013-11-16 12:38:25 +00:00
nickysn
07e3792801 + added NASM to the default tools in fpcmake.ini
git-svn-id: trunk@26097 -
2013-11-16 12:37:46 +00:00
marco
f488e8decd * add some definition of char (#0..#255) to the dummy system types.
git-svn-id: trunk@26096 -
2013-11-15 20:04:13 +00:00
sergei
4f0b3f61ec * fpc_trunc_real: explicitly cast float64.high and float32 to longint, fixes test suite regressions on softfloat targets. These targets have different definitions of float64/float32 (with unsigned fields), causing comparisons like "float64.high<0" to be optimized out.
git-svn-id: trunk@26095 -
2013-11-15 13:26:09 +00:00
sergei
bca2c464da * Don't generate x87 instructions for sin and cos on win64, somehow managed to not commit this part in r25995. Mantis #17273.
git-svn-id: trunk@26094 -
2013-11-15 10:37:59 +00:00
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