Commit Graph

43239 Commits

Author SHA1 Message Date
lacak
54c09051a0 fcl-db: base: when copying character data use MaxLen up to Size (not DataSize), because buffer size is = DataSize, o we can copy max. DataSize-1 which is Size.
+ better test TestInsertLargeStrFields

git-svn-id: trunk@27717 -
2014-05-02 09:08:53 +00:00
nickysn
906d828ee0 * tcg8086.g_copyvaluepara_openarray: fix for the case where ref.segment is
specified, but equal to DS in the current memory model -> call the high level
  code generator with a near pointer type in order to force the segment to be
  ignored

git-svn-id: trunk@27716 -
2014-05-01 22:28:07 +00:00
nickysn
c9c29a3cd4 + ignore the source segment, when the destination cgpara is a near pointer in
tcg8086.a_loadaddr_ref_cgpara

git-svn-id: trunk@27715 -
2014-05-01 21:56:04 +00:00
nickysn
c9f8703679 + set ref.segment to NR_SS for all temps/localvars on i8086. This allows the
segment to survive e.g. several nested vecnodes, which cause the base register
  to change from BP to something else. In the cases where the ss: prefix is not
  needed, it is removed by make_simple_ref.
+ remove the ss: prefix in the several cases where make_simple_ref isn't called
  (namely spilling and tcg8086.a_call_reg_far)

git-svn-id: trunk@27714 -
2014-05-01 21:18:47 +00:00
nickysn
38aec68d6f * ti8086vecnode.update_reference_reg_mul: remove the segment before calling
base, because base may in some cases call cg.a_loadaddr_ref_reg, which will
  overwrite the next register, if the source reference contains a segment

git-svn-id: trunk@27713 -
2014-05-01 19:39:52 +00:00
florian
2fa066b003 * optimize vmovaps/vmovapd after avx instructions
git-svn-id: trunk@27712 -
2014-05-01 19:20:35 +00:00
florian
8060d4a3f7 * when updating registers in RegUsedAfterInstruction, new reg. allocs should be ignored
git-svn-id: trunk@27711 -
2014-05-01 19:20:32 +00:00
nickysn
8c86d64866 * fixed 'data structure too large' error in test tcall1.pp in the i8086 large
memory model

git-svn-id: trunk@27710 -
2014-05-01 18:27:01 +00:00
nickysn
3dfc6ac7e1 * fixed the passing of extended floating type parameters on i8086 for
pocall_register after r24761 (it is the same change as in r24766, but for
  pocall_register)

git-svn-id: trunk@27709 -
2014-05-01 16:45:49 +00:00
nickysn
906412411f * fixed the passing of pushaddr paramaters for pocall_register in i8086 far data
memory models

git-svn-id: trunk@27708 -
2014-05-01 16:43:35 +00:00
michael
f28dbdafcc * Support all methods
git-svn-id: trunk@27707 -
2014-05-01 14:29:03 +00:00
michael
295a3cac38 * 64-bit stream
git-svn-id: trunk@27706 -
2014-05-01 14:28:25 +00:00
michael
1aba82b677 * 64-bit support
git-svn-id: trunk@27705 -
2014-05-01 14:26:46 +00:00
michael
2fc9ad04e8 * No longer needed check for result.encoding
git-svn-id: trunk@27704 -
2014-05-01 14:25:33 +00:00
michael
f57f109e82 * Version 2.5.1 added, and set as default
git-svn-id: trunk@27703 -
2014-05-01 14:24:50 +00:00
michael
c5939fb770 * SNI support
git-svn-id: trunk@27702 -
2014-05-01 14:23:23 +00:00
michael
6c85e66390 * Some extra constants, specifically SNI related
git-svn-id: trunk@27701 -
2014-05-01 14:22:41 +00:00
nickysn
24bf272c69 * fixed the passing of array of const parameters in i8086 far data memory models
git-svn-id: trunk@27700 -
2014-05-01 12:46:29 +00:00
nickysn
4bbf2e8618 + enabled {$hugecode} for the test tcalcla1.pp in i8086 large memory model,
because in this model, the code of the test exceeds 64kb

git-svn-id: trunk@27699 -
2014-04-30 21:45:04 +00:00
Jonas Maebe
fba0eb0351 + test for part of mantis #25931 (already works correctly)
git-svn-id: trunk@27698 -
2014-04-30 20:08:50 +00:00
Jonas Maebe
724a6e9019 * fixed -Sx (mantis #25930)
git-svn-id: trunk@27697 -
2014-04-30 19:43:34 +00:00
Jonas Maebe
270c2d700e * allow the "then" part of an if-statement to be terminated by any endtoken,
instead of only by "else" (mantis #25781)

git-svn-id: trunk@27696 -
2014-04-30 19:25:06 +00:00
Jonas Maebe
02ce2e6029 * moved to correct directory
git-svn-id: trunk@27695 -
2014-04-30 19:25:02 +00:00
Jonas Maebe
8ac4a770a9 * check whether file/text is assigned in erase/rename (mantis #25932)
git-svn-id: trunk@27694 -
2014-04-30 18:31:22 +00:00
nickysn
de1b8cf5d6 * use def_cgsize(parentfpvoidpointertype) instead of OS_ADDR in
tcgloadparentfpnode.pass_generate_code (should've been part of r27690)

git-svn-id: trunk@27693 -
2014-04-30 17:37:47 +00:00
nickysn
4ab9c6f206 + fixed tcgtypeconvnode.second_class_to_intf for i8086 far data memory models
git-svn-id: trunk@27692 -
2014-04-30 14:05:35 +00:00
lacak
3df0c06293 fcl-db: base: use type casting of StrPLCopy parameter to call right ansi version instead of unicode version.
Affect all TStringFields with DataSize>8192 !

git-svn-id: trunk@27691 -
2014-04-30 08:47:59 +00:00
nickysn
cb33e51425 * tcgloadparentfpnode.pass_generate_code converted to the high level code
generator. This fixes nested access to parentfp in i8086 memory models where
  DS<>SS.

git-svn-id: trunk@27690 -
2014-04-29 23:32:22 +00:00
nickysn
a7e5896504 + parentfpvoidpointertype changed to a near 'ss' pointer on i8086
git-svn-id: trunk@27689 -
2014-04-29 23:17:22 +00:00
nickysn
7da8719036 + support near pointers, bound to a segment register in hlcg.reference_reset_base
on i8086

git-svn-id: trunk@27688 -
2014-04-29 23:15:20 +00:00
nickysn
1eb24f9d98 + remove the segment prefix in make_simple_ref on i8086, in case it is the same
as the default segment for the reference (SS for BP-relative, DS for all
  others)

git-svn-id: trunk@27687 -
2014-04-29 23:11:10 +00:00
reiniero
17899e92b4 * Some cosmetic mistakes in previous commit fixed. Thanks Laco!
git-svn-id: trunk@27686 -
2014-04-28 15:51:45 +00:00
nickysn
48c5d9d213 * tobjectvmt.size and .msize in the rtl changed to sizeuint, because ptruint is
not the correct size type in the VMT in i8086 far data memory models

git-svn-id: trunk@27685 -
2014-04-28 15:19:11 +00:00
yury
f1727c58c3 * pas2jni: Type cast support. nil objects support.
git-svn-id: trunk@27684 -
2014-04-28 14:59:21 +00:00
nickysn
a17c04c3e0 * fixed array to pointer conversion in i8086 far data memory models
git-svn-id: trunk@27683 -
2014-04-28 12:36:38 +00:00
reiniero
a12e5406c7 * fcl-db: limit allowed blob types to real blob types only. Provide ftBlobTypes to third party code useful for determining blob types instead of TBlobType.
git-svn-id: trunk@27682 -
2014-04-28 12:01:18 +00:00
yury
8f96b9985f * pas2jni: Revert "Suppress unused import warnings" since it produce other warnings.
git-svn-id: trunk@27681 -
2014-04-28 10:58:24 +00:00
yury
30919d0fb1 * pas2jni: Suppress unused import warnings. Fix system unit parsing.
git-svn-id: trunk@27680 -
2014-04-28 10:08:36 +00:00
sergei
7e4b98e735 * i386-*bsd: cleaned out handwritten assembler threadvar access from syscall code.
git-svn-id: trunk@27679 -
2014-04-28 06:21:54 +00:00
nickysn
e8b9d9bf41 * converted tcgtypeconvnode.second_nil_to_methodprocvar to the high level code
generator, so it handles i8086 near and far pointers generically
- removed t8086typeconvnode.second_nil_to_methodprocvar, since it's no longer
  necessary

git-svn-id: trunk@27678 -
2014-04-28 01:05:14 +00:00
nickysn
187c2af20e * tcgtypeconvnode.second_proc_to_procvar converted to the high level code
generator, so it can now handle i8086 near and far pointers generically
- removed almost all of t8086typeconvnode.second_proc_procvar, since it's no
  longer needed. Only a few assertions are left there to ensure that we don't
  accidentally attempt to take the address of a near procedure in a far code
  memory model, because the calling conventions are incompatible.

git-svn-id: trunk@27677 -
2014-04-27 23:18:05 +00:00
florian
24a9dd43b9 * do not crash with an ie on illegal boolean expressions in conditional compilation directives, resolves #25951
git-svn-id: trunk@27676 -
2014-04-27 15:50:37 +00:00
florian
99e1bb32a2 + apply cse to more inline nodes
git-svn-id: trunk@27675 -
2014-04-27 14:28:17 +00:00
florian
6dd2edb10d * better complexity estimation for some inline nodes
git-svn-id: trunk@27674 -
2014-04-27 14:28:01 +00:00
nickysn
214eaebf99 * fixed length(ansistring/widestring/dynarray) in i8086 far data memory models
git-svn-id: trunk@27673 -
2014-04-27 02:26:35 +00:00
nickysn
63f0731913 * 16/8-bit alu fix in tcgunaryminusnode.emit_float_sign_change
git-svn-id: trunk@27672 -
2014-04-26 18:58:22 +00:00
florian
33602db802 * try to registers more cleverly during fma code generation
git-svn-id: trunk@27671 -
2014-04-26 18:11:13 +00:00
lacak
704f018183 fcl-db: tests: cosmetic
git-svn-id: trunk@27670 -
2014-04-26 17:06:13 +00:00
lacak
6e18414cb3 fcl-db: tests: reduce decimal digits of just added new testCurrency value to 2 because PostgreSQL uses for money data type only 2 decimal places.
git-svn-id: trunk@27669 -
2014-04-26 16:59:34 +00:00
lacak
2d785d1035 fcl-db: tests: add comment for SQLite why some test for exact numeric (currency) values, which can not be expressed lossless as double, fail.
Add to testCurrencyValues, also value with decimal point which can be expressed lossless as double.

git-svn-id: trunk@27668 -
2014-04-26 16:55:39 +00:00