florian
8cafafc3e6
+ add missing instructions
2024-07-05 21:06:21 +02:00
J. Gareth "Curious Kit" Moreton
23e514621d
* a64: Corrected supported shifter/extender mnemonics for arithmetic/logical instructions
2023-10-22 13:13:58 +00:00
J. Gareth "Curious Kit" Moreton
bb2e626fc3
* a64: Fixed bug where BIC instructions were treated as having 2 operands rather than 3
2023-10-22 13:13:58 +00:00
Jonas Maebe
230142e183
AArch64 cgcpu: add missing brackets around and/or expression
2022-12-03 21:17:18 +01:00
florian
67f3a7502d
+ Aaarch64: support adr instructions with local labels in the assembler reader
...
+ throw an error if an illegal instruction extension is passed as command line option
2021-11-19 22:37:47 +01:00
florian
b5c7997c88
+ Aarch64: AndCmpB.E/NE2Tbnz/Tbz optimization
2021-10-02 15:46:37 +02:00
florian
2d1ebe4cb3
+ re-added accidently removed internal error
2021-09-26 09:50:30 +02:00
florian
2805e44ccb
* Aarch64: taicpu.spilling_get_operation_type with new instructions extended
2021-09-25 22:00:36 +02:00
Jonas Maebe
5ca1e37fb6
* AArch64: fix spilling information for BFI
...
git-svn-id: trunk@49312 -
2021-05-01 13:58:07 +00:00
florian
d53b17cadc
+ Aarch64: completed LSE support for all interlocked operations
...
git-svn-id: trunk@49212 -
2021-04-16 19:33:31 +00:00
Jonas Maebe
4b4ae79609
* AArch64: fixed spilling info for MOVK (part of mantis #38053 )
...
git-svn-id: trunk@49206 -
2021-04-14 20:56:29 +00:00
florian
f3d8efc8ec
* Aarch64: support LSE instructions
...
git-svn-id: trunk@49112 -
2021-04-03 11:30:23 +00:00
florian
2519fb1266
* patch by J. Gareth Moreton: aarch64 EXTDEBUG fixes and extensions, resolves #38383
...
git-svn-id: trunk@48337 -
2021-01-22 22:02:44 +00:00
florian
76406dbc36
+ implement prefetch intrinsic for aarch64
...
git-svn-id: trunk@47526 -
2020-11-22 10:27:06 +00:00
Jonas Maebe
9376f5a43a
* AArch64: added SIMD instructions (only plain ARMv8-A for now)
...
o added AArch64 regset parsing support in assembler reader, means that "{"
no longer starts comments there (like in the ARM assembler reader)
o added AArch64 indexed SIMD register support and removed old cg hacks
that worked around its absence
git-svn-id: trunk@47116 -
2020-10-15 20:29:36 +00:00
florian
637976e83f
* patch by Marģers to unify internal error numbers, resolves #37888
...
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +00:00
pierre
8aa844e2fe
Fix compilation with -dEXTDEBUG for aarch64
...
git-svn-id: trunk@46690 -
2020-08-25 14:33:22 +00:00
svenbarth
5ef9a78f5f
* fix for Mantis #36951 : B and BL can take immediate literals as well
...
+ added test
git-svn-id: trunk@44999 -
2020-04-22 20:19:14 +00:00
svenbarth
1fb2d9540c
* allow ADD instructions with a page offset load with either a symbol or a base register
...
git-svn-id: trunk@44932 -
2020-04-21 06:05:28 +00:00
Jonas Maebe
9bd33f7a45
+ support for LLVM metadata constant string parameters
...
o they are implemented as a new metadata register class, whereby the
subregister indicates the metadata type (currently always a string)
and the superregister is an index in the metadata array (which
contains the strings). LLVM metadata can only be passed as parameters
to intrinsics in bitcode, so moves of metadata into other registers
triggers internal errors and when moving them into parameters, we
replace the parameter's register with the metadata register (and look
up the corresponding string when writing out the bitcode)
git-svn-id: trunk@43816 -
2019-12-30 15:04:57 +00:00
Jonas Maebe
4deb62ad87
* fix for "ldr label" support in AArch64 assembler reader (r42988)
...
git-svn-id: trunk@43016 -
2019-09-15 17:26:25 +00:00
florian
bc473508ff
* AArch64: several issues with taicpu.spilling_get_operation_type fixed
...
git-svn-id: trunk@42961 -
2019-09-08 20:53:42 +00:00
florian
69786ffe73
somehow committing went wrong, second part of last commit:
...
+ AArch64: support for vX.8b/vX.16b register names
+ support for more than 256 registers in the register dat files
- removed totherregisterset
+ AArch64: use vmov to load immediates if possible
+ AArch64: use eor to clear mm registers
git-svn-id: trunk@42917 -
2019-09-03 21:07:33 +00:00
yury
4357caaad8
* Removed unused local vars.
...
git-svn-id: trunk@40183 -
2018-11-02 18:44:29 +00:00
florian
efef9125b5
* another compilation fix
...
git-svn-id: trunk@38211 -
2018-02-11 18:39:49 +00:00
nickysn
c8487c4150
+ added individual bits of the x86 flags register as subregisters
...
git-svn-id: trunk@35955 -
2017-04-26 13:52:52 +00:00
Jonas Maebe
8d77de6b22
- removed InsertPData leftover from ARM copy of this file
...
git-svn-id: trunk@34162 -
2016-07-20 20:52:53 +00:00
Jonas Maebe
67b8aceaee
* synchronized with privatetrunk till r30095
...
git-svn-id: branches/hlcgllvm@30101 -
2015-03-05 20:32:15 +00:00
Jonas Maebe
c41759a026
- removed a lot of unused copied internal assembler code
...
git-svn-id: trunk@29985 -
2015-02-23 22:57:21 +00:00
Jonas Maebe
7fc9d775df
+ support for @page and @pageoffs addressing on AArch64: these are PIC
...
references that directly take the address of a symbol, rather than
of its GOT entry
o use these addressing modes to access local symbols
git-svn-id: trunk@29932 -
2015-02-23 22:53:43 +00:00
Jonas Maebe
28a713494c
* fixed/completed spilling_get_operation_type
...
+ implemented spilling_get_operation_type_ref
git-svn-id: trunk@29926 -
2015-02-23 22:53:17 +00:00
Jonas Maebe
5fff543c73
- removed unused taicpu.insoffset field
...
git-svn-id: trunk@29916 -
2015-02-23 22:52:45 +00:00
Jonas Maebe
71bd4e23d9
+ taicpu.op_reg_reg_const_const() and taicpu.op_reg_reg_reg_cond() methods
...
git-svn-id: trunk@29915 -
2015-02-23 22:52:42 +00:00
Jonas Maebe
d246ababff
+ condition code operand for aarch64
...
+ taicpu.op_reg_cond() constructor
* use this operand for cset
git-svn-id: trunk@29889 -
2015-02-23 22:51:19 +00:00
Jonas Maebe
0ce5a1de7f
+ IsSimpleRef() function that can be used to determine whether a reference
...
is a valid AArch64 memory reference or not. It returns an enum that says
it's either valid, invalid, or invalid in a way that should trigger an
internal error in case we created the reference ourselves (as opposed to
it coming in via the assembler reader)
git-svn-id: trunk@29846 -
2015-02-23 22:49:07 +00:00
Jonas Maebe
84cea76f7a
* ARM64 -> AArch64
...
git-svn-id: trunk@29845 -
2015-02-23 22:49:04 +00:00
Jonas Maebe
19d47610ad
* added error checking to spilling_create_load/store
...
git-svn-id: trunk@29844 -
2015-02-23 22:49:01 +00:00
Jonas Maebe
92b644a19f
+ taicpu.op_reg_reg_const_shifterop()
...
* made shifterop parameter of taicpu.op_reg_reg_reg_shifterop() const
git-svn-id: trunk@29843 -
2015-02-23 22:48:58 +00:00
Jonas Maebe
544c8d34ec
+ taicpu.op_reg_const_shifterop() constructor
...
git-svn-id: trunk@29837 -
2015-02-23 22:48:40 +00:00
Jonas Maebe
fc235c9400
* fixed warnings
...
git-svn-id: trunk@29834 -
2015-02-23 22:48:30 +00:00
Jonas Maebe
b0ff41406a
* grouped all tai_real* types into a single tai_realconst type,
...
to free up space for more ait_* types in taitype (can't have
more than 32 because they have to fit in a small set)
o factored out writing of floating point numbers as an array of
byte in the external assemblers
git-svn-id: branches/hlcgllvm@28105 -
2014-07-01 16:29:58 +00:00
florian
5e738710d4
+ initial implementation of aasmcpu unit for ARM64
...
git-svn-id: trunk@22910 -
2012-11-01 20:10:31 +00:00