Commit Graph

45957 Commits

Author SHA1 Message Date
michael
a11fa384b8 * Fix bug #27006
git-svn-id: trunk@30704 -
2015-04-22 17:01:14 +00:00
lacak
c3e542c7ef fcl-db: base: allow TField.Clear also for calculated (and lookup) fields. Bug #25174
git-svn-id: trunk@30703 -
2015-04-22 12:40:10 +00:00
lacak
1b9e1eb1d8 fcl-db: base: increase default Precision for TBCDField and TFmtBCDField from 15 to 18. 15 was probably copy-paste from TFloatField. TBCDField uses currency data type as native storage type, so use MaxBCDPrecision = 18 is appropriate.
(Note: Delphi sets default Precision,Size for TBCDField:0,4 and for TFMTBCDField:0,8)

git-svn-id: trunk@30702 -
2015-04-22 11:41:52 +00:00
nickysn
7923b6142e + finished the internal omf library writer (implementing writing of the library
dictionary at the and of the file) and enabled it for the i8086 internal asm

git-svn-id: trunk@30701 -
2015-04-21 23:31:02 +00:00
nickysn
dbe1081389 + partially implemented the internal omf library writer; everything is written
to the file, except the dictionary

git-svn-id: trunk@30700 -
2015-04-21 20:59:36 +00:00
nickysn
3fa81fa7cd + added overloaded methods TOmfRawRecords.ReadFrom and .WriteTo for reading from
and writing to TDynamicArray

git-svn-id: trunk@30699 -
2015-04-21 20:22:30 +00:00
nickysn
a365da0b44 + added class (empty for now) TOmfLibObjectWriter and hook it as an internal ar
in the omf internal assembler constructor. Note it is not used yet, because of
  the af_needar assembler flag.

git-svn-id: trunk@30698 -
2015-04-21 19:28:51 +00:00
michael
85fc1c349f * Fix from Johann to fix transparancy (Bug ID 27926)
git-svn-id: trunk@30697 -
2015-04-21 18:05:37 +00:00
michael
e86aa04433 * Fix to correctly write gray values from Johann (Bug ID 27924)
git-svn-id: trunk@30696 -
2015-04-21 17:55:52 +00:00
Károly Balogh
49f3473735 fixed the define around the FPU code
git-svn-id: trunk@30695 -
2015-04-21 17:05:43 +00:00
michael
70f4b81323 * Remove touch debug command
git-svn-id: trunk@30694 -
2015-04-21 16:53:24 +00:00
michael
4eff8c4f20 * Fix bug ID #27923
git-svn-id: trunk@30693 -
2015-04-21 16:53:06 +00:00
michael
28e31fdf66 * Patch from Zilvinas Ledas to set default RowsPerStrip (-1), Bug ID #27922
git-svn-id: trunk@30692 -
2015-04-21 15:57:56 +00:00
michael
78dda3e217 * Renamed sqoPreferRefresh to sqoRefreshUsingSelect
git-svn-id: trunk@30691 -
2015-04-21 11:11:55 +00:00
michael
2fd57665cf * Patch from Zilvinas Ledas to implement reading of 12-bit TIFFs
git-svn-id: trunk@30690 -
2015-04-21 11:08:19 +00:00
michael
ea9fc6581a * Fix query var setting (bug ID 27915)
git-svn-id: trunk@30689 -
2015-04-21 11:06:01 +00:00
michael
4ea2ed36db * Fix setting pathinfo (bug ID 27915)
git-svn-id: trunk@30688 -
2015-04-21 06:51:34 +00:00
nickysn
bde7d0aacb + added "code segment too large" and "data segment too large" error messages
git-svn-id: trunk@30687 -
2015-04-20 23:47:22 +00:00
nickysn
211dbb9752 * set procalign and loopalign to 1 for the i8086-msdos target
git-svn-id: trunk@30686 -
2015-04-20 15:12:48 +00:00
nickysn
778a678956 * use a 4 byte alignment for the dwarf debug sections on i8086 (not sure if
that's correct for 16-bit dwarf, but currently the compiler emits 4-byte
  tai_aligns, so setting the section alignment to 4 avoids problems in the
  internal object writer)

git-svn-id: trunk@30685 -
2015-04-20 13:15:26 +00:00
lacak
2eb2791ce9 fcl-db: base: TBCDField.GetDefaultWidth should return Precision+1 (Delphi compatible) insted of only Precision (+1 is for sign and/or decimal separator).
Note: TBCDField in constructor sets FPrecision=15, which is IMHO copied from TFloatField. In case of TBCDField it should be probably 18 - MaxBCDPrecision

git-svn-id: trunk@30684 -
2015-04-20 12:52:07 +00:00
nickysn
8cf469e9ef * base the default alignment on voidpointertype.alignment instead of
voidpointertype.size for all types, that are internally represented as a
  pointer (ansi/widestrings,dynarrays,classes)

git-svn-id: trunk@30683 -
2015-04-20 12:44:11 +00:00
nickysn
0675a9209d * use 16-bit alignment for class references and all pointer types on i8086
git-svn-id: trunk@30682 -
2015-04-20 12:41:55 +00:00
nickysn
030801a18b * switch the msdos target to the internal assembler/omf object writer
git-svn-id: trunk@30681 -
2015-04-20 01:53:01 +00:00
nickysn
5a1ce6162b * set the bss, rodata and rodata_norel section alignment to 2 bytes for the i8086-msdos target
git-svn-id: trunk@30680 -
2015-04-20 01:27:26 +00:00
nickysn
ae04eb258b * when splitting the section data in chunks, make sure fixups never cross chunk boundaries
git-svn-id: trunk@30679 -
2015-04-20 00:02:40 +00:00
nickysn
32e0eca0dc + added read only property TOmfSubRecord_FIXUP.LocationSize, which returns the
size in bytes of the fixup

git-svn-id: trunk@30678 -
2015-04-19 22:57:33 +00:00
Jonas Maebe
62239ba890 * handle named registers correctly for fpu and mm loads
git-svn-id: trunk@30677 -
2015-04-19 21:37:52 +00:00
Jonas Maebe
3496129f79 * only handle a_load_const_ref() directly when storing ordinals, as in case
of pointers llvm only supports 0 (as null, which we don't generate either)

git-svn-id: trunk@30676 -
2015-04-19 21:37:49 +00:00
Jonas Maebe
e2cf90ad8a * add type declarations for structure types in the llvm code so that we can
handle recursive record references (rec= record prec: ^rec)
   o llvm unfortunately does not support recursive references to array types
     or function pointers, so those will currently still result in endless
     recursion when the compiler tries to write them out. Solving those
     will require a lot of typecasting in the generated code

git-svn-id: trunk@30675 -
2015-04-19 21:37:46 +00:00
Jonas Maebe
1941e64488 + added a hook to insert object-global information into the asmlists (will
be used to insert type definitions for llvm)

git-svn-id: trunk@30674 -
2015-04-19 21:37:43 +00:00
Jonas Maebe
2bb4a729c0 * procvardefs must be encoded without any parameter attributes
git-svn-id: trunk@30673 -
2015-04-19 21:37:40 +00:00
Jonas Maebe
c8e44e4a7c * keep track of whether we're in an inline assembly block in the llvm
assembler writer, and for now skip writing labels if we are (they
    will have to emitted as part of an actual inline assembly block,
    not as llvm-style labels)

git-svn-id: trunk@30672 -
2015-04-19 21:37:37 +00:00
Jonas Maebe
4a25afb839 * load an undef value in the function result in the exit code of a pure
assembler function, as the inline assembly code itself will be
    responsible for returning the function result (we will have to add
    the "return" instruction to it) while llvm requires a terminator
    at the end of the function and it must return something

git-svn-id: trunk@30671 -
2015-04-19 21:37:34 +00:00
Jonas Maebe
ff3061a7cf + thlcgllvm.gen_load_uninitialized_function_result
git-svn-id: trunk@30670 -
2015-04-19 21:37:31 +00:00
Jonas Maebe
07141e92d3 + support for llvm "undef" operand
git-svn-id: trunk@30669 -
2015-04-19 21:37:27 +00:00
nickysn
7ff6c2a675 - rm tf_smartlink_library from targets that define tf_smartlink_sections, since
in certain places, the code in the compiler assumes that only one of the two
  is defined, resulting in libraries with missing externals when both are
  defined and there's no much point in supporting both anyway, since section
  based smartlinking achieves the same thing (in a better way) on these
  platforms.

git-svn-id: trunk@30668 -
2015-04-19 18:47:44 +00:00
nickysn
d204aaab72 * refactored "ar" object writer creation in the internal assembler to allow
having different implementations of an internal "ar" writer

git-svn-id: trunk@30667 -
2015-04-19 16:35:16 +00:00
Jonas Maebe
3684e7665d * changed temporary type_e_anonymous_function_unsupported message into an
inline comment, because using a high message number wastes space in
    the messages array

git-svn-id: trunk@30666 -
2015-04-19 14:31:35 +00:00
Jonas Maebe
299374b345 * disabled for Darwin because untested
git-svn-id: trunk@30665 -
2015-04-19 14:31:30 +00:00
florian
7b48232d71 * moved common code to a separate include file
git-svn-id: trunk@30664 -
2015-04-19 12:53:06 +00:00
florian
2ecadc065e * noreturn directive
git-svn-id: trunk@30663 -
2015-04-19 12:52:21 +00:00
florian
1969abec77 * improved code generation in a_op_const_reg_internal and a_op_const_reg_reg
git-svn-id: trunk@30662 -
2015-04-19 12:51:53 +00:00
michael
75f4971084 * Patch from Stephano to fix wince compilation
git-svn-id: trunk@30661 -
2015-04-19 12:09:51 +00:00
nickysn
623ea066c7 + added class for encoding/decoding an omf library end record
git-svn-id: trunk@30660 -
2015-04-19 11:25:25 +00:00
florian
e791f534d2 * fix tcgvecnode.update_reference_reg_packed if OS_INT<>OS_ADDR
git-svn-id: trunk@30659 -
2015-04-19 10:34:14 +00:00
florian
d598351664 * call also optimize_op_const in the generic a_op_const_reg_reg
git-svn-id: trunk@30658 -
2015-04-19 10:04:57 +00:00
florian
7f1585b99a * do not save registers for subroutines which never return
* do not generate any exit code for subroutines which never return

git-svn-id: trunk@30657 -
2015-04-19 08:11:28 +00:00
florian
f972398a8c + main program never returns
git-svn-id: trunk@30656 -
2015-04-19 08:10:06 +00:00
florian
6797685c86 * write set constants only as large as needed by taking care of resultdef.size, resolves issue #27886
git-svn-id: trunk@30655 -
2015-04-18 19:32:49 +00:00