Commit Graph

47840 Commits

Author SHA1 Message Date
Jonas Maebe
bbe8e346e0 * handle tc_equal typeconversions from conststring to a stringdef in
simplify, so that shortstring -> shortstring constant string conversions
    are simplified for LLVM too (it leaves regular tc_equal type conversions
    because often the type is still somewhat different), which is required
    for the code in tasmlisttypedconstbuilder.tc_emit_stringdef() (it
    assumes the result of inserting a type conversion is again a
    stringconstant if it can be handled at compile time)

git-svn-id: trunk@32907 -
2016-01-10 14:01:58 +00:00
Jonas Maebe
0350369c6a * don't check for a simple result location when loading an uninitialised
function result: we always only use the first location's register

git-svn-id: trunk@32906 -
2016-01-10 14:01:54 +00:00
Jonas Maebe
ae7b17890a * support non-power-of-two records that have to be passed in MM registers
in a_load_ref_cgpara()

git-svn-id: trunk@32905 -
2016-01-10 14:01:50 +00:00
Jonas Maebe
49a83b2872 * allow targets to keep certain type conversions for equal types in
inserttypeconv()
   o keep typeconversions between structurally equivalent but semantically
     different procvardefs for LLVM and JVM, because they're different
     types there

git-svn-id: trunk@32904 -
2016-01-10 14:01:46 +00:00
Jonas Maebe
5aadb149ed * ensure the types of all elements emitted in all paths through
writeaccessproc() are the same, so the reuse of existing defs doesn't
    result in the generation of typecasts for llvm

git-svn-id: trunk@32903 -
2016-01-10 14:01:43 +00:00
Jonas Maebe
4ae8dcc91e * make the resultdef of left and right equal when comparing a dynarray
with nil (for llvm)

git-svn-id: trunk@32902 -
2016-01-10 14:01:39 +00:00
Jonas Maebe
f5a3bab7d4 * add llvminfo to override optimizer switches in case of {$ifdef llvm}
git-svn-id: trunk@32901 -
2016-01-10 14:01:35 +00:00
Jonas Maebe
cc197a5593 * extended test
git-svn-id: trunk@32900 -
2016-01-10 14:01:32 +00:00
Jonas Maebe
508038a691 + emit_pchar_const() helper for high level typed const builder
git-svn-id: trunk@32899 -
2016-01-10 14:01:24 +00:00
pierre
c863cd5bc8 Add u128bit and s128bit support in ppudump
git-svn-id: trunk@32898 -
2016-01-09 21:34:07 +00:00
michael
288aa63a67 * Help for latex backend
git-svn-id: trunk@32897 -
2016-01-09 17:55:44 +00:00
michael
65976e4db3 * Added option to split lines
git-svn-id: trunk@32896 -
2016-01-09 17:47:04 +00:00
michael
a87e83e9b7 * Fix selection of package
git-svn-id: trunk@32895 -
2016-01-09 17:46:24 +00:00
florian
4ccc75e2e8 + be able to specify endianess in the assembler command line
+ pass endianess to the powerpc assembler (GNU only), so an unified be/le GNU assembler can used to build powerpc64le

git-svn-id: trunk@32894 -
2016-01-09 14:28:25 +00:00
michael
33e1bc72b4 * Add options to RunCommand* call
git-svn-id: trunk@32893 -
2016-01-08 21:19:21 +00:00
michael
f1ef3f330a * Add demo for RunCommand
git-svn-id: trunk@32892 -
2016-01-08 21:18:43 +00:00
michael
622ffb9a65 * Added some example program for TProcess
git-svn-id: trunk@32891 -
2016-01-08 20:59:30 +00:00
nickysn
ef9504ffd7 * made the \325 x86 prefix to generate a 0x66 prefix on i8086, thus fixing many
32-bit instructions on i8086, when using the internal obj writer

git-svn-id: trunk@32890 -
2016-01-08 17:20:37 +00:00
nickysn
6037976202 * several imul variants, featuring 32-bit or 64-bit registers marked 386+, instead of 286+
git-svn-id: trunk@32889 -
2016-01-08 17:07:36 +00:00
nickysn
e6ac1a4af5 + added check for the compatibility of each instruction with the selected target
cpu in the i8086's internal obj writer

git-svn-id: trunk@32888 -
2016-01-08 16:44:28 +00:00
nickysn
e877bae4fc + add 'jmp rm16' and 'call rm16' before the rm32 versions on i8086, so the
16-bit version is picked up by default for opsize=S_NO. Previously the 386
  version was picked on i8086, but the generated code was correct, because we
  don't yet generate a 0x66 prefix for "\325", which leads to many 32-bit
  instructions not being assembled correctly with the internal asm obj writer on
  the i8086

git-svn-id: trunk@32887 -
2016-01-08 16:41:21 +00:00
Jonas Maebe
a228a3bf4c * fixed parallel building for i386 after r32857
git-svn-id: trunk@32886 -
2016-01-07 22:06:27 +00:00
Jonas Maebe
3aba28deb7 * factored out the generation of the Objective-C section names, so we can
reuse them for llvm too

git-svn-id: trunk@32885 -
2016-01-07 22:06:21 +00:00
Jonas Maebe
3f7169e250 * treat Objective-C metaclasses (classrefdefs) as voidpointertype at the
LLVM type level

git-svn-id: trunk@32884 -
2016-01-07 22:06:13 +00:00
Jonas Maebe
53bf43983a + support for emitting weak symbols with the high level typed constant builder
git-svn-id: trunk@32883 -
2016-01-07 22:06:06 +00:00
Jonas Maebe
58ae32e2d1 * factored out writing the LLVM linkage flags, take into account version
differences and also write them for procdefs

git-svn-id: trunk@32882 -
2016-01-07 22:06:00 +00:00
Jonas Maebe
d290ede5a6 + added (not yet configurable) target LLVM version
git-svn-id: trunk@32881 -
2016-01-07 22:05:54 +00:00
Jonas Maebe
3dbe97d9b6 + added some extra llvm versions and flags describing their features
git-svn-id: trunk@32880 -
2016-01-07 22:05:49 +00:00
Jonas Maebe
110a5642c0 - removed ait_weak/tai_weak, and replaced it with the previously existing
asd_weak_reference/asd_weak_definition directives

git-svn-id: trunk@32879 -
2016-01-07 22:05:38 +00:00
Jonas Maebe
1046c995a8 * ttai_typedconstbuilder.finalize_asmlist(): fixed handling of non-local
symbols that aren't AB_GLOBAL (e.g. AB_PRIVATE_EXTERN)

git-svn-id: trunk@32878 -
2016-01-07 22:05:28 +00:00
Jonas Maebe
bf735c7e58 * cleanup
git-svn-id: trunk@32877 -
2016-01-07 22:04:44 +00:00
michael
6ac5aa615a * Extended jsonrtti so it supports streaming of datetime and destreaming datetime (bug ID 28721)
git-svn-id: trunk@32876 -
2016-01-07 21:48:02 +00:00
michael
e69c96d496 * Add option to ignore trailing commas in objects and arrays
git-svn-id: trunk@32875 -
2016-01-07 20:44:24 +00:00
pierre
de7a79f497 Use SizeInt type for GlobalStartMem and StartMem variables to avoid compilation error for msdos compact memory model
git-svn-id: trunk@32874 -
2016-01-07 17:33:36 +00:00
pierre
80a7b909e4 Add $goto on for FPC compilation to avoid compile time error
git-svn-id: trunk@32873 -
2016-01-07 17:12:13 +00:00
nickysn
72dc92e8b8 * added 'word ptr' overrides, to avoid generating 32-bit instructions (due to a
bug in the i8086 internal assembler reader, which will be fixed later)

git-svn-id: trunk@32872 -
2016-01-07 15:40:47 +00:00
nickysn
a508f9e5d3 + added check if the selected cpu is 386+ when writing a 66h or 67h prefix in
the i8086 internal object writer. This allows weeding out spurious 386
  instructions, as is similarly done by NASM when using it as an external
  assembler.

git-svn-id: trunk@32871 -
2016-01-07 15:40:32 +00:00
nickysn
114c76bc4a + added i8086 to the list of supported cpus in the compiler usage help screen
git-svn-id: trunk@32870 -
2016-01-07 14:38:25 +00:00
nickysn
22b6e00147 * extracted the writing of 0x66 and 0x67 prefixes in the x86 internal assembler
to local procedures write0x66prefix and write0x67prefix

git-svn-id: trunk@32869 -
2016-01-07 14:18:14 +00:00
michael
b1c5077c96 * Small fix after recent changes to tests list in testsuite
git-svn-id: trunk@32868 -
2016-01-07 07:38:34 +00:00
Jeppe Johansen
0251263234 Move some of the local reloc calculation out of aasmcpu, and into COFF and ELF writers.
git-svn-id: trunk@32867 -
2016-01-06 23:15:08 +00:00
nickysn
21c9712ea2 * allow 32-bit operand sizes in the i8086 version of Tx86Operand.SetSize, so
32-bit operands can work properly in i8086's inline asm. Fixes mantis #29188.

git-svn-id: trunk@32866 -
2016-01-06 18:06:34 +00:00
pierre
e835f120e9 Fix fpc_frac_real, fpc_trunk_real and fpc_int_real by removing the assumption that SP=BP at entry
git-svn-id: trunk@32865 -
2016-01-06 15:20:57 +00:00
pierre
701a610f4d Use CodePointer for all CheckVariantEvent parameter typecast
git-svn-id: trunk@32864 -
2016-01-06 14:04:31 +00:00
michael
9d92953bd2 * Added overload directive, fixes regressions in testsuite
git-svn-id: trunk@32863 -
2016-01-06 08:02:04 +00:00
michael
4099abb0c1 * Sample programs for TZipper and TUnzipper
git-svn-id: trunk@32862 -
2016-01-05 21:29:51 +00:00
michael
df6efb6fc9 * Fix bug ID #28783, closer adherance to ZIP standard
git-svn-id: trunk@32861 -
2016-01-05 21:28:43 +00:00
michael
ef3050f061 * Ensure example compiles
git-svn-id: trunk@32860 -
2016-01-05 21:27:46 +00:00
michael
072b473f9f * Patch from Denis Kozlov: Patches here fix several issues with SimpleIPC on Windows. (Bug ID 29346)
Summary of changes:
1. Using SetTimer + GetMessage method for handling PeekMessage.
2. Store all received incoming messages in a message queue (per IPC server instance).
3. Implemented message queue (PeekMessage receives messages, ReadMessage picks from the queue)
4. Implemented optional message queue limit and overflow handling (more on that below).
5. Timeout<-1 is forced to -1; Documented meaning of various Timeout values in comments.
6. Minor refactoring and code formatting changes.

git-svn-id: trunk@32859 -
2016-01-05 20:41:08 +00:00
michael
b9da082e29 * Patch from Silvio Clecio to Extends SetPropValue/GetPropValue (bug ID 28278)
git-svn-id: trunk@32858 -
2016-01-05 20:00:41 +00:00