florian
|
657f3c52bf
|
* according to Jonas iOS doesn't zero extend results in the callee either, so check removed
|
2023-09-12 23:05:48 +02:00 |
|
florian
|
a517ada539
|
* on aarch64-darwin, the unused part of function results is not cleared
|
2023-09-10 19:27:21 +02:00 |
|
Pierre Muller
|
5a123d33ba
|
Add -Awin64-as option for aarch64 compiler for win64 target
|
2023-05-26 11:15:55 +00:00 |
|
Dmytro Bogatskyy
|
327aac7f24
|
Add aarch64-iphonesim target
|
2023-03-27 18:45:00 +00:00 |
|
florian
|
dfb8794d4d
|
* compilation after merge fixed
|
2023-01-25 20:44:34 +01:00 |
|
Pierre Muller
|
aaa6f0d9c5
|
Only signed extension is needed
|
2023-01-25 19:36:45 +00:00 |
|
Pierre Muller
|
4793447be1
|
Add sign extension to 32-bit for unaligned OS_8 and OS_16 types (to try to solve #40102)
|
2023-01-25 19:36:45 +00:00 |
|
Pierre Muller
|
cd8aa3f0e0
|
Avoid generation of invalid 'cb(n)z sp,label' instruction
|
2023-01-02 18:22:49 +00:00 |
|
florian
|
4430422489
|
* improve module local data accesses by avoiding a got read
|
2022-12-28 22:05:23 +01:00 |
|
Jonas Maebe
|
851af5033f
|
Darwin/AArch64: adjust alignment info of custom-aligned paralocs
Resolves #40019
|
2022-12-06 21:46:26 +01:00 |
|
Jonas Maebe
|
230142e183
|
AArch64 cgcpu: add missing brackets around and/or expression
|
2022-12-03 21:17:18 +01:00 |
|
Jonas Maebe
|
cd8ddffe42
|
AArch64: X18 is not a volatile register
It may be unused on some platforms, but in general it's reserved for OS library
usage (usually related to TLS)
|
2022-10-29 14:24:37 +02:00 |
|
florian
|
3a11ee9a14
|
* apply OptPass1Data to neg as well
|
2022-09-06 21:42:29 +02:00 |
|
florian
|
5cbb36f218
|
* factor out TARMAsmOptimizer.USxtOp2Op
|
2022-09-03 19:21:28 +02:00 |
|
florian
|
ed7b0c5e68
|
* AArch64: extended SxtwMov2Data to CMP and CMN
|
2022-09-03 19:03:48 +02:00 |
|
florian
|
ad1c19864d
|
* small refactoring
|
2022-09-01 21:44:18 +02:00 |
|
florian
|
9adcc891cf
|
+ Aarch64: SxtwOp2Op optimization
|
2022-09-01 21:44:18 +02:00 |
|
florian
|
29495c9ba5
|
* refactor TCpuAsmOptimizer.OptPass1SXTW
|
2022-09-01 21:44:18 +02:00 |
|
florian
|
fd94b6db91
|
* fix for TCpuAsmOptimizer.OptPass1SXTW
|
2022-08-31 20:43:49 +02:00 |
|
florian
|
8a0498622b
|
+ AArchz64: TCpuAsmOptimizer.OptPass1SXTW
|
2022-08-31 20:33:59 +02:00 |
|
florian
|
5a60eac0c8
|
+ MovzMovz2Movz optimization
|
2022-08-29 21:36:14 +02:00 |
|
florian
|
ceab50cafb
|
* use simpler FMOV instead of UMOV
|
2022-08-03 22:42:25 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
d6ff4ed967
|
* arm/a64: New sbfx/ubfx -> mov optimisation
|
2022-07-30 18:36:16 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
637645b6d6
|
* a64: New movz reg,#0 -> mov reg,xzr (or wzr) optimisation
|
2022-07-30 18:36:16 +00:00 |
|
Robert Roland
|
7cefe8a822
|
Adding AArch64 CurrentEL register
CurrentEL is used to determine the current "exception level" in the CPU.
It has four possible results:
0b00 - EL0 - Application
0b01 - EL1 - Rich OS
0b10 - EL2 - Hypervisor
0b11 - EL3 - Firmware
https://developer.arm.com/documentation/ddi0595/2020-12/AArch64-Registers/CurrentEL--Current-Exception-Level
https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels
|
2022-07-25 19:05:00 +00:00 |
|
Robert Roland
|
a19add9c88
|
Add cntfrq_el0 and cntpct_el0 AArch64 registers
|
2022-07-05 20:40:27 +00:00 |
|
florian
|
81fd3e2748
|
* more readable fix for the missing ait_instruction check
|
2022-05-15 19:32:27 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
27db63969a
|
* a64: Fix where hp1's was assumed to be an instruction and not actually checked
|
2022-05-15 16:47:55 +00:00 |
|
florian
|
e8da1d081a
|
+ Aarch64: MovOp2AddUtxw optimization
|
2022-05-14 22:30:56 +02:00 |
|
Jonas Maebe
|
9813eb9048
|
AArch64 asm reader: add support for fpcmp(e) conditions
Resolves #39643
|
2022-04-03 13:40:21 +02:00 |
|
florian
|
27fb9086aa
|
* cleanup: cs_opt_loopunroll is a generic optimization for a long time already
|
2022-03-08 23:03:18 +01:00 |
|
Robert Roland
|
fbc65314b9
|
Correct linker script for aarch64-embedded
Start address was wrong, should be 0x80000, not 0x8000
|
2022-01-22 22:28:38 +01:00 |
|
florian
|
a362c93f73
|
* Aarch64: operations affect always the full 64 bit register, so
TCpuAsmOptimizer.RegLoadedWithNewValue can use SuperRegistersEq
|
2022-01-20 22:15:14 +01:00 |
|
Robert Roland
|
86c097086a
|
Additional copyright header
|
2022-01-05 12:29:00 +00:00 |
|
Robert Roland
|
53e5a4a03a
|
Adding aaarch64-embedded target
This adds support for aarch64-embedded, specifically for the Raspberry Pi 3.
Uses UART0 at 115200 baud 8N1 for console IO.
|
2022-01-05 12:29:00 +00:00 |
|
florian
|
e443936e12
|
+ in_min/max_dword/longint support for aarch64
|
2021-12-19 16:16:44 +01:00 |
|
florian
|
77b9d62520
|
+ in_min/max_single/double support for aarch64
|
2021-12-18 21:23:21 +01:00 |
|
florian
|
b733e21fd1
|
+ more AArch64 extensions
|
2021-11-20 20:47:47 +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
|
6404478ea4
|
* cleanup of VER3_0 defines
|
2021-11-17 22:19:57 +01:00 |
|
florian
|
d708bef92f
|
+ Aarch64: read register sets with ranges properly
+ tests
|
2021-11-07 20:02:29 +01:00 |
|
florian
|
f570b6cb7b
|
+ more Aarch64 cpu capability flags added
|
2021-11-07 11:06:01 +01:00 |
|
florian
|
c1d43df4a1
|
+ be able to add single cpu capabilites by the command line
+ AArch64: SHA2 capability
|
2021-11-06 23:32:56 +01:00 |
|
florian
|
716e8c8e89
|
* tcgsizep2size now supports all tcgsize values
|
2021-11-06 21:16:07 +01:00 |
|
Florian Klämpfl
|
a47f153dae
|
* avoid to create a stack frame on aarch64 if possible
|
2021-11-02 22:23:24 +01:00 |
|
florian
|
e0a78c2485
|
* tcgaarch64.g_concatcopy calls tcgaarch64.g_concatcopy_move only if the current subroutine has pi_do_call set
* fixed copy loop in tcgaarch64.g_concatcopy if ldp/stp is used: fixed increment calculation and fixed tail length calculation
|
2021-11-02 22:01:52 +01:00 |
|
florian
|
fcdbb31ec4
|
* AArch64: TCpuAsmOptimizer.RegLoadedWithNewValue: check if p.ops=0
|
2021-11-01 11:46:19 +01:00 |
|
florian
|
ff3acfb8cd
|
* cleanup of 2.7.0 defines
|
2021-10-31 13:20:28 +01:00 |
|
florian
|
fb7cdbefb3
|
+ some opcodes added
|
2021-10-30 20:21:59 +02:00 |
|
Pierre Muller
|
7778d20003
|
Avoid range check error in TCpuAsmOptimizer.OptPostAnd method
|
2021-10-04 21:08:24 +00:00 |
|