nickysn
45fdd7655d
+ support concatenation of references in x86 intel syntax inline asm:
...
[expr1][expr2] = [expr1+expr2]
[expr1[expr2]] = [expr1+expr2]
This is compatible with TP7's inline asm, and perhaps also with tasm/masm/delphi.
git-svn-id: trunk@38352 -
2018-02-26 17:17:47 +00:00
florian
62df4a4083
* patch by Christo Crause: more descriptive error message when BRxx destination out of reach
...
git-svn-id: trunk@38340 -
2018-02-25 15:31:17 +00:00
florian
73aef1402b
+ compiler writes a hint if a subroutine marked as inline cannot be/is not inlined, resolves #31717
...
+ test
git-svn-id: trunk@38330 -
2018-02-24 14:35:12 +00:00
florian
d031545f88
* warn if the first constant element of a range set expression is greater than the second one, resolves #31936
...
git-svn-id: trunk@38321 -
2018-02-23 22:30:35 +00:00
florian
5d17b335a6
* based on patch by Christo Crause: when setting the controller type, set also the sub architecture, resolves #33189
...
git-svn-id: trunk@38285 -
2018-02-18 21:19:35 +00:00
pierre
019a8b66dc
Transform internal error into error message for seg(procvar) with is not usable for some i8086 memory models
...
git-svn-id: trunk@38219 -
2018-02-12 10:07:35 +00:00
Jonas Maebe
1b66995754
* factored out check to determine whether a variable can be subscripted in
...
inline assembly, and fixed check after r35959 (mantis #32318 )
o can also subscript parameters passed by value on the stack
o can also subscript local variables, the parameters passed by reference
that are subsequently copied into a local
git-svn-id: trunk@37886 -
2018-01-01 14:29:21 +00:00
florian
8eb885de91
* better error message if a unit is not found
...
git-svn-id: trunk@37868 -
2017-12-29 17:27:44 +00:00
nickysn
ed4a5acb31
+ added -Twin16 (the 16-bit windows target) to the i8086 crosscompiler help screen
...
git-svn-id: trunk@37710 -
2017-12-11 14:11:25 +00:00
florian
b41cb26727
+ write selected features in ppu of the system unit and load them further on
...
* ppu version update
* -Sf might be used only during system unit compilation
* loadsystemunit factored out so the system unit can be loaded earlier than other units to get features set
git-svn-id: trunk@37708 -
2017-12-10 16:32:56 +00:00
nickysn
29558a74cd
+ support exporting labels from asm blocks in intel syntax asm blocks via the
...
'public' directive
git-svn-id: trunk@37530 -
2017-10-30 16:44:13 +00:00
nickysn
e58bad8eef
+ check for the 'pop cs' instruction in the x86 inline assembler and print a
...
warning (on the i8086 target) or an error (on i386 and x86_64) when this
instruction is used (because it only works on 8086 and 8088 CPUs)
git-svn-id: trunk@37514 -
2017-10-24 15:07:20 +00:00
nickysn
cece021bd1
+ check whether the address sizes match for x86 string instructions with two
...
memory operands, when using the at&t syntax inline assembler
git-svn-id: trunk@37473 -
2017-10-16 16:01:38 +00:00
nickysn
a8232ac477
+ added warning if source or destination for x86 string instructions isn't
...
specified to be (%esi) or (%edi), when using at&t syntax assembler (this is
not considered an error by intel syntax assemblers, so we're not adding a
warning there, for now)
git-svn-id: trunk@37458 -
2017-10-14 15:27:00 +00:00
nickysn
1ee36b5b9b
+ added error message in the intel assembler reader, when an attempt is made to
...
override the ES segment in an x86 string instruction (because it cannot be
overriden)
git-svn-id: trunk@37454 -
2017-10-13 14:56:38 +00:00
svenbarth
fcc1ce7a08
* fix for Mantis #30344 : applied patch by Mario Ray Mahardhika to add new command line option -Sj[-|+] to control writeable typed constants (with a small adjustment to the help text)
...
+ added test
git-svn-id: trunk@37437 -
2017-10-09 19:19:23 +00:00
svenbarth
9619576515
+ add support for $SetPE{OS,SubSys,User}Version directives; Delphi compatible; Note: $SetPEUserVersion takes precedence to $Version
...
+ added test
git-svn-id: trunk@37364 -
2017-09-30 13:55:29 +00:00
pierre
91fa2999ee
Add aarch64 and sparc64 linux targets to help output
...
git-svn-id: trunk@37249 -
2017-09-18 11:58:45 +00:00
Károly Balogh
925ffcc744
regenerated compiler messages after r37029
...
git-svn-id: trunk@37030 -
2017-08-22 10:45:52 +00:00
pierre
4d29122097
msgtxt.inc and msgidx.inc regenerated after: Remove obsolete -Tsunos help line, it is not accpeted by the compiler anymore
...
git-svn-id: trunk@36828 -
2017-08-04 09:38:59 +00:00
pierre
5c18830aab
Regenerated files after: Add help for second argument to -Ch option, -Chx,y y is max heap size
...
git-svn-id: trunk@36259 -
2017-05-19 21:27:43 +00:00
pierre
b7fab7d39c
Add -Wh command line option to enable HugeCode (equivalent of $F+)
...
for msdos memory models that support this.
Add message to document this new command line option.
git-svn-id: trunk@36199 -
2017-05-12 22:49:50 +00:00
svenbarth
e9c40f5b24
+ correctly handle COMDAT sections in COFF files (at least as long as the COMDAT selection isn't IMAGE_COMDAT_SELECT_ASSOCIATIVE or IMAGE_COMDAT_SELECT_EXACT_MATCH), fixes the .refptr problems mentioned in Mantis #30614
...
git-svn-id: trunk@36197 -
2017-05-12 15:57:31 +00:00
florian
e7fd71db36
+ write name of segment/group which is too large
...
git-svn-id: trunk@35456 -
2017-02-19 19:15:18 +00:00
florian
c4fe4ab1f5
* correctly handle push <imm> on 80186+
...
git-svn-id: trunk@35455 -
2017-02-19 19:15:16 +00:00
svenbarth
a9888eba70
* also generate Big Obj COFF files with the GNU utilities (needs 2.25 or newer), at least as long as the new option -a5 isn't given, which disables this
...
Note 1: using an older AS might fail anyway if the amount of sections is too high (like in packages\odata\src\sharepoint.pp)
Note 2: it might be an idea to keep track of the created sections in the asmlists and only enable the option if *really* necessary (like with the internal COFF output generator), though this might lead to false positives due to multiple sections with the same name (since I'd prefer to use the KISS principle only a counter would be used)
git-svn-id: trunk@35381 -
2017-02-03 22:45:32 +00:00
florian
668b198d7c
* fix for issue #29936 : check if the internal needed types are available
...
git-svn-id: trunk@35310 -
2017-01-15 20:54:07 +00:00
Jonas Maebe
9cd707a27a
* give an error if -Pxxx is specified to the compiler binary and xxx is not
...
the target architecture this compiler binary supports (mantis #30098 )
git-svn-id: trunk@35299 -
2017-01-14 13:50:41 +00:00
florian
29a2c433f7
* -Sr option for iso mode: in case no command line parameter is passed, the file name for program parameters is derived from their variable name
...
git-svn-id: trunk@35257 -
2017-01-07 14:50:58 +00:00
svenbarth
8c253703f0
* regenerate after r35181
...
git-svn-id: trunk@35182 -
2016-12-23 15:55:24 +00:00
svenbarth
a23cfd9a85
* regenerate msgidx.inc and msgtxt.inc after r35079; thankfully that didn't break the build this time since it was merely a text change ^.^'
...
git-svn-id: trunk@35080 -
2016-12-07 07:38:01 +00:00
Károly Balogh
64650261d1
m68k: refactor of the reglist and the regpair support in the assembler reader. also added support for float register lists for FMOVEM
...
git-svn-id: trunk@34783 -
2016-11-05 18:53:20 +00:00
pierre
e6ee3f445e
msg files regenerated after:
...
* msg/errore.msg: Add new message saying that -gc and -Ur options are incompatible
Add description to -gc option, saying it is experimental.
Add warning at link time for program/library if checkpointer is used in any unit or main code.
git-svn-id: trunk@34566 -
2016-09-27 14:45:44 +00:00
yury
db590da1e6
* Added a new debug option switch -godwarfcpp - Simulate C++ debug information in DWARF. It is more correct way to workaround LLDB issues than in r34558. This option can be used for debuggers, which does not support Pascal correctly.
...
git-svn-id: trunk@34562 -
2016-09-26 13:05:17 +00:00
pierre
17ba06f7c8
Regenerated after: Add missing -Tlinux help line for mipsel compiler
...
git-svn-id: trunk@34448 -
2016-09-08 05:53:19 +00:00
Károly Balogh
464ecab542
huge syscall support refactor for Amiga-likes. removed large chunks of ancient duplicated code, and in general tried to make the entire thing more maintainable and cleaner. also added support for AROS EAXBase syscall convention
...
git-svn-id: trunk@34416 -
2016-09-03 07:57:23 +00:00
pierre
10454d4fec
Regenerated msg files after: Add aarch64 to -P<x> CPU list
...
git-svn-id: trunk@34271 -
2016-08-11 09:07:01 +00:00
svenbarth
68f014a7c5
* regenerate after r34232
...
git-svn-id: trunk@34233 -
2016-07-29 18:44:24 +00:00
Károly Balogh
b0ca7e9594
show AT&T and Intel style assembler switches in i8086 and x86_64 help text. also fix Motorola name initials at several places for 68k
...
git-svn-id: trunk@34081 -
2016-07-06 13:34:38 +00:00
svenbarth
8ec2d5478c
Regenerated after r33890
...
git-svn-id: trunk@33891 -
2016-06-03 20:53:58 +00:00
svenbarth
0f9e556c80
* regenerate message files after r33450
...
git-svn-id: trunk@33451 -
2016-04-08 14:57:08 +00:00
florian
cb4773432b
+ hardfloat directive (arm only): use hard float calling conventions regardless of the abi, resolves #29715
...
git-svn-id: trunk@33196 -
2016-03-06 15:47:31 +00:00
nickysn
06b9789928
+ implemented a new {$ASMCPU XXX} directive, allowing to specify a different
...
CPU target for inline assembler blocks. In addition to the different CPUs
(as listed under 'Supported CPU instruction sets:' in the output of 'fpc -i'),
it also supports the special values 'ANY' and 'CURRENT'. 'ANY' means no
restrictions (i.e. all instructions are available). 'CURRENT' means the
current CPU target (as specified with the '-Cp' command line option). For
backward compatibility, the default value is 'ANY' for all CPU targets, except
i8086, where it defaults to 'CURRENT'.
This directive requires support for the new asd_cpu directive in the assembler
writer. This is currently implemented only for NASM, but will be supported in
some of the other assembler writers as well (incl. the x86 internal assembler
writer).
git-svn-id: trunk@33138 -
2016-02-29 22:25:25 +00:00
florian
aa0ec8c0e5
+ show -Mextendedpascal in the help page
...
git-svn-id: trunk@33051 -
2016-02-04 20:32:09 +00:00
florian
368d77dfae
+ show -Miso in the help page
...
git-svn-id: trunk@33050 -
2016-02-04 20:22:36 +00:00
svenbarth
678716be22
msgidx.inc & msgtixt.inc: regenerate after r32978
...
git-svn-id: trunk@32979 -
2016-01-22 15:36:13 +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
florian
37cb35d780
+ support for the .code directive in arm inline assembler
...
git-svn-id: trunk@32840 -
2016-01-03 22:08:25 +00:00
Károly Balogh
bc51cc1151
regenerated msgidx.inc and msgtxt.inc afer r32324
...
git-svn-id: trunk@32325 -
2015-11-15 01:25:17 +00:00