florian
d6e4af8279
+ applied remaining patches of Torsten Grundke: adds gather instructions of avx2
...
git-svn-id: trunk@29745 -
2015-02-17 21:43:46 +00:00
sergei
475a9e1617
* Asm readers: allow using procedure symbols in references, resolves #22376 .
...
* rax86int.pas: reject RIP-relative references to locals/parameters.
git-svn-id: trunk@29087 -
2014-11-17 05:34:55 +00:00
sergei
42d251da1c
- x86 assembler readers: cleaned out operand swapping code. Operands of TInstruction are kept in AT&T order, Intel reader attaches operands right-to-left. It was effectively the same way before the change (except Intel reader attaching operands left-to-right, followed by a single swap), operand order checks all over the place were just reducing readability.
...
git-svn-id: trunk@29081 -
2014-11-16 16:37:26 +00:00
sergei
de42f2f2f7
* Fixed handling of sign in constant expressions in Intel x86 assembler reader. Mantis #26668 .
...
git-svn-id: trunk@28731 -
2014-10-03 15:51:38 +00:00
nickysn
9b560ffd64
* x86 intel syntax inline asm: allow a segment override (segcs,segds,seges,etc.)
...
to be followed by an instruction on the same line as the override
git-svn-id: trunk@28066 -
2014-06-25 21:06:19 +00:00
sergei
e7cd5319f0
* Put under {$ifndef x86_64} more cases of instructions that do not exist in 64-bit mode.
...
git-svn-id: trunk@27933 -
2014-06-11 12:51:38 +00:00
sergei
5c48804240
* Moved local label infrastructure into tasmreader, reduces number of global vars. Functionality is not changed.
...
git-svn-id: trunk@27477 -
2014-04-05 09:43:13 +00:00
sergei
9c54cdc85d
* x86: Cleaned out addr_far,addr_far_ref used to encode far calls/jumps. NASM (and FPC x86 assembler based on it) already have opsize=S_FAR for this purpose.
...
git-svn-id: trunk@27037 -
2014-03-08 22:54:43 +00:00
nickysn
4f96e8a20d
* convert i8086 inline asm instruction 'call symbol' to 'call far symbol' in memory models with far code
...
git-svn-id: trunk@25438 -
2013-09-08 16:34:12 +00:00
sergei
ea65e272dd
* Changed global variable into field.
...
git-svn-id: trunk@25217 -
2013-08-05 16:32:37 +00:00
svenbarth
b6bfa864d4
Disallow the usage of the inline assembler inside generics, because there are currently two problems:
...
1. At least on x86 the assembler reader initializes the parameter location informations which results in InternalError 200301231
2. Assembler tokens are not stored in the token stream and thus won't be reproduced during specialization
x86/rax86int.pas, tx86intreader.Assemble:
* check for "parse_generic" before calling generate_parameter_info
pstatmnt.pas, assembler_block & statement:
* generate an error message if an asm statement should be parsed inside a generic
+ added test
git-svn-id: trunk@24892 -
2013-06-13 19:42:49 +00:00
florian
283ff05127
* merged avx support in inline assembler developed by Torsten Grundke
...
git-svn-id: trunk@22568 -
2012-10-06 19:47:18 +00:00
Jonas Maebe
68d9e95120
* if the size of an operand is not explicitly forced in intel assembler
...
(e.g. via "dword ptr"), let the size of accessed fields in memory
expressions override the default size (mantis #18019 )
git-svn-id: trunk@22250 -
2012-08-26 17:05:31 +00:00
Jonas Maebe
4d0e4e1b56
* treat "[var + rip]" in intel assembler mode as addr_pic_no_got on x86-64
...
(mantis #22665 )
+ support "[var wrt ..gotpcrel]" nasm/yasm syntax in intel assembler mode
for GOT-relative accesses on x86-64, + give an error when trying to do
this on win64 (it doesn't have a GOT)
* moved code that give a warning when using GOT-relative accesses to
static data on x86-64 from the AT&T reader to rax86 so it's also
active for the Intel assembler reader
+ added warning when not using GOT-relative accesses (but plain
RIP-relative instead) to global data on non-Win64 x86-64
git-svn-id: trunk@22243 -
2012-08-25 15:12:49 +00:00
Jonas Maebe
2c43e084f0
* disabled "[reg].offset globalvar" pic syntax in intel assembler mode for
...
x86-64, because it does not specify whether the code should be got-based
or not
git-svn-id: trunk@22242 -
2012-08-25 15:12:44 +00:00
florian
860d753055
* treat registers (and identifiers of register parameter) as normal identifiers when parsing record fields in intel assembler, resolves #19555
...
git-svn-id: trunk@18268 -
2011-08-18 21:58:30 +00:00
sergei
08ff5ff051
* x86 Intel assembler reader: disallow more than one register name per register operand, resolves #15672 .
...
git-svn-id: trunk@17507 -
2011-05-19 20:00:15 +00:00
florian
e7fa076b70
* handle variables without explicit size prefix better in inline assembler, resolves #18009
...
git-svn-id: trunk@16859 -
2011-01-30 21:57:30 +00:00
pierre
ba6a4760e9
* fix regression 16700 introduced in rev 16104
...
git-svn-id: trunk@16133 -
2010-10-11 21:23:11 +00:00
pierre
586dd1ee49
* fix go32v2 assembler parsing failure introduced in rev 16104
...
git-svn-id: trunk@16132 -
2010-10-11 20:53:19 +00:00
pierre
207e0b58f5
* Support Intel [ebx].offset var PIC construct
...
git-svn-id: trunk@16109 -
2010-10-08 13:19:50 +00:00
pierre
7f200ab27e
* Use asmsearchsym in assembler readers
...
git-svn-id: trunk@16104 -
2010-10-08 07:58:18 +00:00
mazen
b127fc154a
* Fixed spell error revealed by lintian.
...
git-svn-id: trunk@16094 -
2010-10-06 20:33:57 +00:00
Jonas Maebe
9273856e84
* disallow pusha*/popa* for x86_64 (mantis #14862 )
...
* disallow pushfd/popfd for x86_64 (mantis #14862 )
* fixed assembling popfq with the internal assembler (it needs a rex.w
prefisx, while pushfq doesn't)
* changed the default opcode size of pushf/popf/pusha/popa in
{$asmmode intel} from "native size" to 16 bit (compatible with Intel
manuals and Kylix; in AT&T mode, the default size for those operations
remains the native one)
* changed pushf/popf in rtl/i386/* into pushfd/popfd because of the
previous change
git-svn-id: trunk@15546 -
2010-07-10 16:22:46 +00:00
Jonas Maebe
6d6892bec6
* fixed "byte/word/... ptr []" and "byte/word/..([])" typecasted expressions
...
in case the memory expression contains a record subscription (mantis
#16700 )
git-svn-id: trunk@15408 -
2010-06-11 14:51:58 +00:00
Jonas Maebe
8542632ebe
* fixed evaluating constant expressions consisting of more than one term and
...
that start with a minus in the intel assembler reader (mantis #15843 )
git-svn-id: trunk@15041 -
2010-03-24 20:52:31 +00:00
Jonas Maebe
f90768ed6a
* small optimisation for r14449: check whether the routine is a pure
...
assembler routine before checking whether an identifier may represent a
register parameter, instead of afterwards
git-svn-id: trunk@14843 -
2010-02-02 10:40:25 +00:00
Jonas Maebe
d3f9e6290b
* fixed error in r14402 for functions/procedures that are not declared as
...
"assembler" (mantis #15370 )
git-svn-id: trunk@14449 -
2009-12-17 16:04:09 +00:00
Jonas Maebe
f2c0190aa3
* treat parameters that are passed in registers as register operands in the
...
x86 intel assembler reader (patch by Sergei Gorelkin, mantis #6851 )
git-svn-id: trunk@14402 -
2009-12-11 13:33:05 +00:00
florian
b9fddff9c4
* avoid IE in case of unknown assembler reference syntax
...
git-svn-id: trunk@13364 -
2009-07-05 19:16:46 +00:00
Jonas Maebe
ca132e203f
* treat typecast(register) the same as typecast([register]) in assembler
...
expressions (for Delphi compatibility, mantis #9327 )
git-svn-id: trunk@13040 -
2009-04-25 15:37:38 +00:00
yury
cf7390ea81
* Fixed 'mixed signed/unsigned' and pointer conversion warnings.
...
git-svn-id: trunk@11439 -
2008-07-23 09:36:07 +00:00
florian
58757d0630
* support of dq in Intel assembler on 64 bit CPUs, resolves #11425
...
git-svn-id: trunk@11211 -
2008-06-07 15:08:48 +00:00
Jonas Maebe
f36e5411af
* split cpu64bit compiler define into
...
a) cpu64bitaddr, which means that we are generating a compiler which
will generate code for targets with a 64 bit address space/abi
b) cpu64bitalu, which means that we are generating a compiler which
will generate code for a cpu with support for 64 bit integer
operations (possibly running in a 32 bit address space, depending
on the cpu64bitaddr define)
All cpus which had cpu64bit set now have both the above defines set,
and none of the 32 bit cpus have cpu64bitalu set (and none will
compile with it currently)
+ pint and puint types, similar to aint/aword (not pword because that
that conflicts with pword=^word)
* several changes from aint/aword to pint/pword
* some changes of tcgsize2size[OS_INT] to sizeof(pint)
git-svn-id: trunk@10320 -
2008-02-13 20:44:00 +00:00
Jonas Maebe
527190a875
+ relsymbol support for intel asm reader
...
git-svn-id: trunk@9368 -
2007-12-01 14:26:24 +00:00
Jonas Maebe
1a32e4fdf5
* fixed pushing of words in intel assembler (indirectly related to
...
wrong bug report 7808)
git-svn-id: trunk@6274 -
2007-01-30 21:52:11 +00:00
Jonas Maebe
cc67ed17b5
* fixed uninitialised variable (mantis 8198, already tested by
...
webtbs/tw3931a.pp)
git-svn-id: trunk@6183 -
2007-01-25 11:43:15 +00:00
Jonas Maebe
c866400823
+ support for VMTOFFSET in assembler readers to get VMT offset of virtual
...
methods (mantis #8153 )
git-svn-id: trunk@6168 -
2007-01-24 18:26:23 +00:00
Jonas Maebe
11528c9da6
* better fix for tw8171 (now also works for with-statements)
...
git-svn-id: trunk@6158 -
2007-01-24 09:55:45 +00:00
Jonas Maebe
ed13c7f60e
+ support for [recordfield.field] in assembler blocks in methods in
...
intel assembler (mantis 8171)
git-svn-id: trunk@6150 -
2007-01-23 17:34:11 +00:00
Jonas Maebe
302a2a3ec2
* fixed calling qualified methods in assembler + tests for ppc/ppc64/
...
i386/x86_64
git-svn-id: trunk@6112 -
2007-01-21 22:16:42 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
e17b424e28
* refactor procsym procdef list
...
git-svn-id: trunk@5210 -
2006-11-03 18:44:46 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
peter
1684a6fc32
* replaced tdictionary with tfphashlist
...
git-svn-id: trunk@5148 -
2006-11-01 14:26:50 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
peter
076fb20774
* don't apply typesize of record if a field size is applied
...
git-svn-id: trunk@4971 -
2006-10-18 21:22:00 +00:00
peter
cc1f9f8a9b
* handle . in a reference like +
...
git-svn-id: trunk@4769 -
2006-10-02 17:39:22 +00:00
florian
23e67ee289
+ intel assembler reader for x86-64
...
git-svn-id: trunk@3411 -
2006-05-01 19:56:00 +00:00