Commit Graph

52219 Commits

Author SHA1 Message Date
nickysn
67a0e9bdae + added x86 helper function get_default_segment_of_ref, which returns the
default segment base for the ref, in case there's no segment override
* in the internal assembler, use get_default_segment_of_ref to strip redundant
  prefixes, instead of always assuming all refs are DS-based

git-svn-id: trunk@37486 -
2017-10-18 14:24:58 +00:00
Mattias Gaertner
feb210cbc3 fcl-passrc: nicer error position on cant find unit
git-svn-id: trunk@37485 -
2017-10-18 10:33:36 +00:00
svenbarth
e6b39ebf15 + add methods for easier enumeration of the fields in a class' field table
git-svn-id: trunk@37484 -
2017-10-17 21:07:32 +00:00
svenbarth
0ba1073615 + add new type TVmtFieldClassTab for the class table of the field table (Delphi compatible)
git-svn-id: trunk@37483 -
2017-10-17 20:54:38 +00:00
svenbarth
530213711f * change the class references in a class' field table to indirect references
git-svn-id: trunk@37482 -
2017-10-17 20:34:21 +00:00
michael
2af27756da * Patch from Pascal Riekenberg: ApplyBandWidth: handle child bands like main parent band
git-svn-id: trunk@37481 -
2017-10-17 20:02:47 +00:00
yury
af0fdea815 * Android: Include list of supported syscalls for each CPU.
Adjust Linux RTL to work with supported Android syscalls. 
  It should fix issues with Android 8.

git-svn-id: trunk@37480 -
2017-10-17 18:15:02 +00:00
yury
dbf482d62b * Fixed version of FpSysCall() with 6 params for Linux with PIC.
git-svn-id: trunk@37479 -
2017-10-17 18:03:29 +00:00
nickysn
e8bbc4eef9 + support the xlat x86 instruction syntax with a memory operand. This allows
specifying the address size (e.g. xlat byte ptr [bx] or xlat byte ptr [ebx])

git-svn-id: trunk@37478 -
2017-10-17 16:40:06 +00:00
michael
2ffad85470 * Patch from Pascal Riekenberg:
* corrected setting of state variable IsGroupDetailPrinted
  * when printing group footer do not consider height of repeated group footer in footer space calculation
  * removed some unused local variables

git-svn-id: trunk@37477 -
2017-10-16 19:00:04 +00:00
nickysn
9cebeeffa9 + check for address size mismatch in intel syntax assembler as well
git-svn-id: trunk@37475 -
2017-10-16 16:19:15 +00:00
nickysn
353efcb163 * fixed rdi register name in error message
git-svn-id: trunk@37474 -
2017-10-16 16:14:18 +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
michael
aacd13d347 * Patch from Pascal Riekenberg: intermediate group footer should use previous field values if group footer overflows
git-svn-id: trunk@37472 -
2017-10-16 15:04:02 +00:00
nickysn
4cb1a96ec1 * use get_ref_address_size in the nasm writer, when handling the parameterized
string instructions

git-svn-id: trunk@37471 -
2017-10-16 14:21:03 +00:00
nickysn
6f2e64ff90 + added function get_ref_address_size
git-svn-id: trunk@37470 -
2017-10-16 14:13:03 +00:00
nickysn
b0653a6313 + added functions is_32_bit_ref and is_64_bit_ref, similar to is_16_bit_ref
* taicpu.needaddrprefix now uses is_32_bit_ref on x86_64
* is_16/32/64_bit_ref made part of the aasmcpu unit interface, so they can be
  used elsewhere (e.g. in the inline assembler readers)

git-svn-id: trunk@37469 -
2017-10-16 14:05:06 +00:00
Mattias Gaertner
2ac2e7bd7d fcl-passrc: resolver: implemented $M $TypeInfo
git-svn-id: trunk@37468 -
2017-10-16 10:16:13 +00:00
Mattias Gaertner
34c88e6dbc fcl-passrc: resolver: pass static array to open array
git-svn-id: trunk@37467 -
2017-10-16 09:25:00 +00:00
Mattias Gaertner
69f2055ff3 fcl-passrc: resolver: error on setlength(openarray)
git-svn-id: trunk@37466 -
2017-10-16 08:48:14 +00:00
Mattias Gaertner
3a0e540dde fcl-passrc: parser: fixed default class visibility to visPublic
git-svn-id: trunk@37465 -
2017-10-16 08:35:52 +00:00
michael
c19c39a956 * Patch from Pascal Riekenberg to fix some issues with columns
git-svn-id: trunk@37464 -
2017-10-16 07:37:09 +00:00
nickysn
2b6e5d817e * changed the parameter of is_16_bit_ref to be a treference, instead of toper
git-svn-id: trunk@37463 -
2017-10-16 00:30:26 +00:00
pierre
d18627f0af * Update all fpcsrc Makefile's using latest fpcmake version 2017-09-21 rev 37286
git-svn-id: trunk@37462 -
2017-10-16 00:27:27 +00:00
pierre
ca79cbef1f Fix compilation of classes unit for watcom target
git-svn-id: trunk@37461 -
2017-10-16 00:24:14 +00:00
pierre
e3a35d99ba Add watcom OS to ObjectOSes and symbian to UComplexOSes and MatrixOSes
git-svn-id: trunk@37460 -
2017-10-16 00:15:40 +00:00
nickysn
acfa199b09 * in the nasm writer, only output a segment prefix for the [si] operand, in
case there's a segment operand, different that DS (the default source
  segment) for parameterized x86 string instructions

git-svn-id: trunk@37459 -
2017-10-14 16:58:15 +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
4a8aec26bf * fixed test tasm12c.pp (uses asmmode intel, not att)
git-svn-id: trunk@37457 -
2017-10-14 11:32:54 +00:00
nickysn
dd9b5eb2aa + added the 'Cannot override ES' message in the at&t assembler reader as well
git-svn-id: trunk@37456 -
2017-10-14 00:48:46 +00:00
nickysn
27978de111 + extended tests with segment overrides in at&t asm mode
git-svn-id: trunk@37455 -
2017-10-13 15:43:47 +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
marco
24e0fc5aad * updated links mantis 32504
git-svn-id: trunk@37453 -
2017-10-13 10:56:06 +00:00
nickysn
baf492c7a5 + another helper function: x86_parameterized_string_op_param_count
* when generating x86 code for parameterized string instructions with the
  internal object writer, don't rely on the destination operand being [(r/e)di]
  when determining the segment prefix, because when using intel syntax, source
  and destination can be anything (only the operand size, the address size and
  the source segment is taken into account)

git-svn-id: trunk@37452 -
2017-10-12 16:07:15 +00:00
nickysn
4c75b15afe * shortened the names of the is_x86_string_instruction_op,
is_x86_parameterless_string_instruction_op and
  is_x86_parameterized_string_instruction_op by removing 'instruction' from
  their names

git-svn-id: trunk@37451 -
2017-10-12 15:20:22 +00:00
nickysn
e3ca2a3043 + added helper functions get_x86_string_op_si_param and get_x86_string_op_di_param
* use get_x86_string_op_si_param in the nasm writer

git-svn-id: trunk@37450 -
2017-10-12 15:12:40 +00:00
nickysn
5a5cd65559 + added helper functions x86_param2paramless_string_op and
get_x86_string_op_size
* refactored the AT&T inline asm handling of x86 parameterized string ops, so it
  uses the new helper functions

git-svn-id: trunk@37449 -
2017-10-12 14:25:32 +00:00
nickysn
2f28768d2d * simplify some code, by using is_x86_parameterized_string_instruction_op
git-svn-id: trunk@37448 -
2017-10-12 13:26:07 +00:00
nickysn
98c4986b6d + added x86 helper functions is_x86_string_instruction_op,
is_x86_parameterless_string_instruction_op and
  is_x86_parameterized_string_instruction_op

git-svn-id: trunk@37447 -
2017-10-12 13:18:38 +00:00
nickysn
0fb79946a5 + added support for the parameterized versions of the x86 string instructions
(movs, cmps, scas, lods, stos, ins, outs) in the inline asm of the i8086, i386
  and x86_64 targets. Both intel and at&t syntax is supported.
* NEC V20/V30 instruction 'ins' (available only on the i8086 target, because it
  is incompatible with 386+ instructions) renamed 'nec_ins', to avoid conflict
  with the 186+ 'ins' instruction.

git-svn-id: trunk@37446 -
2017-10-12 00:07:02 +00:00
pierre
c8722d4237 Fix tw32115 test for msdos target by using longint type explicitly for CalcSmth function parameter
git-svn-id: trunk@37445 -
2017-10-11 06:25:31 +00:00
florian
4109738582 + build exeinfo by buildrtl unit
git-svn-id: trunk@37444 -
2017-10-10 20:36:26 +00:00
michael
352f99c15f * Write more types
git-svn-id: trunk@37443 -
2017-10-10 18:07:50 +00:00
marco
b1e4515896 * switch to 3.0.2 as prefered version
git-svn-id: trunk@37442 -
2017-10-10 12:57:24 +00:00
Mattias Gaertner
bb15bbec52 fcl-passrc: resolver: enum range: assign enum:=enumrange
git-svn-id: trunk@37441 -
2017-10-10 08:28:12 +00:00
michael
7abc3af339 * Some cosmetic, license text and other changes based on code review by Nayuki
git-svn-id: trunk@37440 -
2017-10-10 06:51:44 +00:00
Mattias Gaertner
1b2511c0a0 fcl-passrc: resolver: enum range: pred(), succ(), low(), high(), typecast integer to enum range
git-svn-id: trunk@37439 -
2017-10-09 20:38:03 +00:00
michael
c2c561a827 * QR Code printable element, plus demo report, using newly added QR Code generator unit
git-svn-id: trunk@37438 -
2017-10-09 19:21:28 +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
michael
656405d7dc + Added QR code generator, image drawer
* QR Code generator code translated from C code from Project Nayuki (http://nayuki.io)
    (reused with permission)
  * Translated demo app from project Nayuki
  * Added sample QR code generator demo app 

git-svn-id: trunk@37436 -
2017-10-09 19:17:26 +00:00