Commit Graph

52054 Commits

Author SHA1 Message Date
nickysn
8a0d8f025b * fixed another i8086 inline asm 32-bit constant bug (e.g. in 'or eax, 80000001h')
git-svn-id: trunk@37521 -
2017-10-25 19:38:37 +00:00
nickysn
07eab50afe + added a test for 32-bit inline asm const operand on i8086, using at&t syntax as well
git-svn-id: trunk@37520 -
2017-10-25 18:09:11 +00:00
nickysn
325e66287c * fix for inline asm of instructions with 32-bit constant operands on i8086
git-svn-id: trunk@37519 -
2017-10-25 18:03:22 +00:00
nickysn
2af5c9d508 * changed type used for section alignment from byte/shortint to longint, so the
internal object writer and the internal linker support object files with
  sections with alignment >=256

git-svn-id: trunk@37518 -
2017-10-25 15:47:29 +00:00
nickysn
8cc230ef1a - don't switch index into base in the gas assembly writer. This optimization
(and others) are performed in optimize_ref().

git-svn-id: trunk@37517 -
2017-10-25 13:42:18 +00:00
nickysn
d7e4b50068 + also optimize x86_64 references by switching [rbp+reg64] to [reg64+rbp],
[r13+reg64] to [reg64+r13] and [r13d+reg32] to [reg32+r13d]

git-svn-id: trunk@37516 -
2017-10-24 16:18:43 +00:00
nickysn
5ae32a0ec5 + always do the x86_64 reference optimizations as if SS=DS, because the CPU
basically ignores these segments in long mode

git-svn-id: trunk@37515 -
2017-10-24 15:38:59 +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
marco
fb57fd7324 * patch from Mattias fixing save/restore ancestorpos in twriter. Mantis #32607
git-svn-id: trunk@37513 -
2017-10-24 13:23:26 +00:00
nickysn
0d1f7910d7 + also apply optimize_ref() on references of inline asm instructions
git-svn-id: trunk@37512 -
2017-10-23 22:28:08 +00:00
nickysn
875339993f * strip segment overrides, for segments, which should be equal in the current
model to the default segment of the reference in optimize_ref, when
  inlineasm=false

git-svn-id: trunk@37511 -
2017-10-23 15:51:33 +00:00
nickysn
d220d6f2c6 * use get_default_segment_of_ref() in the seg() handling on i8086
git-svn-id: trunk@37510 -
2017-10-23 14:55:52 +00:00
michael
ad1ebe0667 * Fix compilation
git-svn-id: trunk@37509 -
2017-10-23 12:36:46 +00:00
michael
7b12811f52 * Some more fixes from Pascal Riekenberg to simplify AfterPrintBand
git-svn-id: trunk@37508 -
2017-10-23 12:17:51 +00:00
michael
2547643cbb * HandleOverflowedBands can use a single enumerated, does not need a set
git-svn-id: trunk@37507 -
2017-10-23 10:40:33 +00:00
michael
46da90ce8e * Patch from Pascal Riekenberg with some fixes
* fixed: group footer with position fpStackAtBottom 
  * refactored: footer handling
  * fixed: if StartOnNewSection is set to rsColumn in more than one group in multi column mode

git-svn-id: trunk@37506 -
2017-10-23 10:30:25 +00:00
michael
e4976dd314 ShowBandWithChildren: further simplification, single loop
git-svn-id: trunk@37505 -
2017-10-22 10:18:35 +00:00
michael
89db233a0e * Remove use of continue
git-svn-id: trunk@37504 -
2017-10-22 10:02:25 +00:00
michael
a171ad319e * Patch from Pascal Riekenberg to avoid try/finally in block
git-svn-id: trunk@37503 -
2017-10-22 09:54:58 +00:00
michael
fc638ed7ba * Patch from Pascal Riekenberg: better naming for TOverFLowAction
git-svn-id: trunk@37502 -
2017-10-21 22:09:05 +00:00
michael
9e08dd108b * Fix data fetching optimization
git-svn-id: trunk@37501 -
2017-10-21 19:11:50 +00:00
michael
42ac9457a2 * Original patch of Pascal Riekenberg to replace previous one
git-svn-id: trunk@37500 -
2017-10-21 19:10:07 +00:00
michael
0796eefe50 * Refactoring
git-svn-id: trunk@37499 -
2017-10-21 18:50:31 +00:00
michael
427792aa29 * Some refactoring of ShowBandWithChildren
git-svn-id: trunk@37498 -
2017-10-21 15:22:27 +00:00
michael
3f09294aab * Functions to see whether a published property is readable or writeable
git-svn-id: trunk@37497 -
2017-10-20 19:41:56 +00:00
michael
a3bcefd78c * Use pointer get/set methods
git-svn-id: trunk@37496 -
2017-10-20 19:17:11 +00:00
michael
3d3bbcfa9c * Raise error if property cannot be written (Enhanced patch from Ondrej Pokorny, bug ID #32586)
git-svn-id: trunk@37495 -
2017-10-20 18:44:35 +00:00
nickysn
80226e3af4 + added an optimization pass, that optimizes x86 references
git-svn-id: trunk@37494 -
2017-10-20 15:55:55 +00:00
michael
d28a790a43 * Patch from Pascal Riekenberg:
* fixed and extended nested grouping in column mode
  * updated nestedgroups demo

git-svn-id: trunk@37493 -
2017-10-20 14:22:02 +00:00
michael
b5f9cce9e4 * Patch from Ondrej Pokorny to improve QR drawing code interface (bug ID 32580)
git-svn-id: trunk@37492 -
2017-10-20 07:17:56 +00:00
Mattias Gaertner
aa83ab3c7d pastojs: fixed insert(item,arr,pos)
git-svn-id: trunk@37491 -
2017-10-19 14:52:35 +00:00
maciej-izak
c2f870b60d fcl-res: read version resource in more proper way. The length of value may be 0 (without any content).
git-svn-id: trunk@37490 -
2017-10-19 11:46:15 +00:00
svenbarth
7e3ad42f33 + add types for the VMT's message table (the names are Delphi compatible, even if TVmtMethodEntry has no Len field)
git-svn-id: trunk@37489 -
2017-10-18 19:38:03 +00:00
marco
5e1652de3b * some more fixes.
git-svn-id: trunk@37488 -
2017-10-18 15:08:39 +00:00
marco
bf2459b99b * some initial makefile syncing
git-svn-id: trunk@37487 -
2017-10-18 15:04:48 +00:00
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