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
Tomas Hajny
3ded26a774
* correction of tests for Amiga (volumes, exclusion of some '.'/'..' related tests)
...
git-svn-id: trunk@30654 -
2015-04-18 18:48:42 +00:00
Tomas Hajny
23300b8a41
* fix by Charlie correcting treatment of a trailing directory separator on Amiga(-likes)
...
git-svn-id: trunk@30653 -
2015-04-18 18:29:19 +00:00
michael
81950878b9
* Some explanatory comments from Andrew Haines (bug ID 27898)
...
git-svn-id: trunk@30652 -
2015-04-18 16:34:01 +00:00
michael
e8b8cf348d
* Add dependency on rtl-extra
...
git-svn-id: trunk@30651 -
2015-04-18 15:57:59 +00:00
michael
1691ec4481
* Fix bug ID #26462 , additionally rework variables to match new interface
...
git-svn-id: trunk@30650 -
2015-04-18 14:59:56 +00:00
florian
987b66636d
+ optimize LDS/STS into IN/OUT, resolves issue #27884
...
git-svn-id: trunk@30649 -
2015-04-18 14:43:54 +00:00
florian
9e51283ae0
+ initial a_op_const_reg_reg and a_op_reg_reg_reg implementations to generate optimized 16 Bit multiplications on avr
...
git-svn-id: trunk@30648 -
2015-04-18 13:53:20 +00:00
florian
3e8766290d
* implements RegInInstruction and fixes RegModifiedByInstruction for avr
...
git-svn-id: trunk@30647 -
2015-04-18 13:51:28 +00:00
nickysn
24d9c06489
+ added class for encoding/decoding an omf library header record
...
git-svn-id: trunk@30646 -
2015-04-18 12:57:04 +00:00
michael
a8b8f4463c
* Added enet library headers (+ sample programs), bug ID #27891
...
git-svn-id: trunk@30645 -
2015-04-18 11:10:38 +00:00
nickysn
3ce29dcfb2
+ added function for computing the hash for the omf libraries' dictionary
...
git-svn-id: trunk@30644 -
2015-04-18 10:48:49 +00:00
nickysn
cebd3de630
+ added unit owomflib (empty for now), which is going to contain the internal
...
.lib writer for i8086-msdos
git-svn-id: trunk@30643 -
2015-04-18 09:49:38 +00:00
michael
27b1fb0439
* Fix bug #27831
...
git-svn-id: trunk@30642 -
2015-04-18 07:16:27 +00:00
michael
46a0eced9e
* Adapted test to test for 27831
...
git-svn-id: trunk@30641 -
2015-04-18 07:16:02 +00:00
michael
1211149a29
* Call Translate for blobfields as well (bug ID 25083)
...
git-svn-id: trunk@30640 -
2015-04-18 06:36:00 +00:00
michael
62e50ca506
* Patch from Luca Olivetti to allow to specify an address to which server must bind (bug ID 27892)
...
git-svn-id: trunk@30639 -
2015-04-18 06:12:07 +00:00
nickysn
75ec4adcf9
* fixed compilation of lnfodwrf in the i8086 medium and compact memory models
...
git-svn-id: trunk@30638 -
2015-04-18 01:56:29 +00:00
nickysn
a69b98484e
+ enabled compilation of unit lnfodwrf on i8086-msdos
...
git-svn-id: trunk@30637 -
2015-04-18 01:56:04 +00:00
nickysn
7fca6dd6c1
* set the properties of the dwarf debug info sections in the omf obj writer
...
as required by wlink in order to be recognized and handled as debug info
(i.e. class=DWARF, use32)
git-svn-id: trunk@30636 -
2015-04-18 00:42:17 +00:00
nickysn
fb31be4e4a
* changed the default debug format for i8086-msdos from stabs to dwarf2
...
git-svn-id: trunk@30635 -
2015-04-17 23:47:31 +00:00
nickysn
a6e39edb8f
* moved the insertion of fwaits for 8087 from the nasm asm writer to ti8086procinfo.postprocess_code
...
git-svn-id: trunk@30634 -
2015-04-17 23:27:03 +00:00
florian
58c66b4759
* the mul instructions do not modify the operands
...
git-svn-id: trunk@30633 -
2015-04-17 20:15:10 +00:00
florian
66e97549b9
* replace jmp by rjmp if possible, resolves issue #27885
...
git-svn-id: trunk@30632 -
2015-04-17 20:14:18 +00:00
florian
07cba31a0a
* cosmetics
...
git-svn-id: trunk@30631 -
2015-04-17 20:12:57 +00:00
florian
10dc944d35
* disable some function using ansistrings if the ansistring feature is turned off
...
git-svn-id: trunk@30630 -
2015-04-17 20:12:36 +00:00
nickysn
5c8965fea5
* in the inline asm reader, treat [var] reference as "word" instead of "dword"
...
when "var" is of dword size. This fixes spurious generation of a $66 prefix
and makes the code consistent with what Tx86Operand.SetSize does (and what is
then used for checking the operand sizes of all operands of the instruction in
Tx86Instruction.CheckOperandSizes).
git-svn-id: trunk@30629 -
2015-04-17 19:58:06 +00:00
michael
f9f602dca6
* Fix bug ID #24752
...
git-svn-id: trunk@30628 -
2015-04-17 19:57:48 +00:00
michael
3e100245e0
* Globally take into account forcedclose when committing/rollbacking, so all operations succeed
...
git-svn-id: trunk@30627 -
2015-04-17 19:26:36 +00:00
nickysn
3b5395e0e3
* set 16-bit opsize for OPR_SYMBOL operands on i8086
...
git-svn-id: trunk@30626 -
2015-04-17 19:10:13 +00:00