florian
46507f9565
* Xtensa: optimize constant multiplications
...
git-svn-id: trunk@49618 -
2021-07-18 21:40:43 +00:00
pierre
da3eb5c178
Try to fix handle of large stack size in xtensa gen_proc_entry/gen_proc_exit
...
git-svn-id: trunk@49352 -
2021-05-12 22:54:59 +00:00
florian
053c42da33
+ Xtensa: support large stack frames for the call0 abi
...
git-svn-id: trunk@47848 -
2020-12-25 18:18:09 +00:00
florian
4a05053650
+ Xtensa: make use of the LSX/SSX instructions
...
git-svn-id: trunk@47564 -
2020-11-24 21:22:20 +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
florian
7f53d04ffd
+ xtensa: make use of nsau to implement Bsr*
...
git-svn-id: trunk@46963 -
2020-09-26 22:03:13 +00:00
florian
112f8a41ad
* Xtensa: set is_jmp flag so branch optimization works
...
git-svn-id: trunk@46960 -
2020-09-26 20:12:27 +00:00
pierre
a4e520180f
Avoid range check error in a_op_const_reg_reg method when compiled with -CriotR
...
git-svn-id: trunk@46945 -
2020-09-24 16:06:49 +00:00
florian
d7fe9914a7
+ introduce tcgobj.a_loadfpu_reg_intreg
...
+ make use of it in tcgtypeconvnode.second_nothing
+ Xtensa: implementation of a_tcgcpu.a_loadfpu_intreg_reg and tcgcpu.a_loadfpu_reg_intreg
git-svn-id: trunk@46858 -
2020-09-12 21:23:57 +00:00
florian
8e74a04dc5
* Xtensa: stack size calculation for the call0 abi fixed
...
git-svn-id: trunk@46833 -
2020-09-10 20:53:11 +00:00
florian
9337b2a3ac
* Xtensa: handle references with offset only properly
...
git-svn-id: trunk@46784 -
2020-09-05 20:25:32 +00:00
florian
8ef6372340
* Xtensa: tcgcpu.g_concatcopy makes use of loop extensions if available
...
git-svn-id: trunk@46781 -
2020-09-05 20:25:29 +00:00
florian
451bb09e8f
* Xtensa: tcgcpu.g_concatcopy uses OC_NE so the branch requires one instruction less
...
git-svn-id: trunk@46780 -
2020-09-05 20:25:28 +00:00
florian
b36597c76a
* better calculation of estimated stack frame size
...
git-svn-id: trunk@46733 -
2020-08-30 20:53:59 +00:00
florian
867ed59459
* Xtensa: various stack handling fixes
...
git-svn-id: trunk@46732 -
2020-08-29 20:24:32 +00:00
florian
2c00016fdd
+ Xtensa: reused constant pool entries if possible
...
git-svn-id: trunk@46731 -
2020-08-29 20:24:31 +00:00
florian
f4ded560cc
* Xtensa: OP_NOT fixed
...
git-svn-id: trunk@46706 -
2020-08-26 21:01:00 +00:00
florian
f30f62231f
* reverted 46417: if a assembler subroutine needs an entry instruction, it should be added explicitly
...
git-svn-id: trunk@46696 -
2020-08-25 21:39:40 +00:00
florian
ea2ae3b8f0
+ Xtensa: use extui for and with constants
...
git-svn-id: trunk@46664 -
2020-08-23 14:17:01 +00:00
florian
a45f71d0dc
* Xtensa: optimize some shifts by constants
...
git-svn-id: trunk@46556 -
2020-08-22 21:28:08 +00:00
florian
04846345b2
* Xtensa: more fixes to tcg64fxtensa.a_op64_const_reg_reg and tcg64fxtensa.a_op64_reg_reg_reg
...
git-svn-id: trunk@46551 -
2020-08-22 20:33:30 +00:00
florian
26e2759c27
* Xtensa: fixed tcg64fxtensa.a_op64_reg_reg_reg for unsigned operations
...
git-svn-id: trunk@46549 -
2020-08-22 19:38:10 +00:00
florian
b267f6fcb3
* internal error unified
...
git-svn-id: trunk@46486 -
2020-08-18 21:10:25 +00:00
florian
ac6f74a6a2
* patch by Christo Crause to make nostackframe with the windowed xtensa abi working, resolves #37550
...
git-svn-id: trunk@46417 -
2020-08-13 20:35:11 +00:00
florian
5ad02a3799
+ Xtensa: more cpu capabilites
...
+ Xtensa: set cpu for xtensa-linux as call window support is required
git-svn-id: trunk@45731 -
2020-07-04 21:18:13 +00:00
florian
caee96399e
* patch by Christo Crause: support call0 abi in entry/exit code, part of #37242
...
git-svn-id: trunk@45685 -
2020-06-23 20:46:40 +00:00
florian
a7c0fa0def
o patch for Xtensa by Christo Crause, resolves #37099
...
+ Added postfix parsing in tattreader.GetToken
- Removed all postfixed versions of OpCodes from the instruction list
+ Added all missing OpCodes from Xtensa ISA
* Changed branch OpCode to A_B, similar to ARM
+ Added missing branch condition flags BCI and BSI
* Updated existing compiler code that referred to the old postfixed instructions
+ Added prefix and postfix handling in TxtensaInstrWriter.WriteInstruction
* Updated TCPUAddNode.second_addfloat to specify .S postfix
* Updated tcpuunaryminusnode.second_float to specify .S postfix
+ Implemented prefix and postfix identification in txtensaattreader.is_asmopcode
* Adapted branch condition extraction to respect postfixes
* Changed itcpugas to call findreg_by_name_table from raatt.pas (same as issue #0037121 , difficult to test these changes without including a fix for the register name search problem)
git-svn-id: trunk@45672 -
2020-06-21 14:51:40 +00:00
florian
724676db43
* Xtensa: patch by Christo Crause: fix addmi/addi handling, resolves #37015
...
git-svn-id: trunk@45258 -
2020-05-04 19:58:45 +00:00
florian
74abe87315
* Xtensa: do SAR by a constant using SRAI
...
git-svn-id: trunk@45000 -
2020-04-22 21:03:06 +00:00
florian
14d46bccba
* Xtensa: make use of extui for shifting with constant values >=16
...
git-svn-id: trunk@44856 -
2020-04-19 15:52:41 +00:00
florian
c2df0f2300
* Xtensa: handle localsize > 32760
...
git-svn-id: trunk@44840 -
2020-04-19 08:41:32 +00:00
florian
7b2bd0b917
* Xtensa: generate better code for adding/subtracting 16 bit constants
...
git-svn-id: trunk@44839 -
2020-04-19 08:41:31 +00:00
florian
2edec13a0f
* use j.l in external wrappers, this is not save yet as A15 might contain
...
an argument: externals need to be called with call4 if they use all
parameter registers, this needs to be implemented
git-svn-id: trunk@44837 -
2020-04-19 07:37:45 +00:00
florian
3ec0437d5f
* Xtensa: dummy overflow checking
...
git-svn-id: trunk@44796 -
2020-04-18 20:39:37 +00:00
florian
4141df7fe6
* Xtensa: patch by Christo Crause to handle the sign extension architecture option, resolves #36885
...
git-svn-id: trunk@44689 -
2020-04-11 14:58:58 +00:00
florian
b352449eac
* Xtensa: fix flag handling: B0 is considered as default flags
...
git-svn-id: trunk@44687 -
2020-04-11 13:18:47 +00:00
florian
2e23e2b0fd
+ optimize SUB for small constants using ADDI
...
git-svn-id: trunk@44620 -
2020-04-06 20:44:32 +00:00
florian
fa4cbc89a5
+ Xtensa: hard float support, i.e. make use of floating point extension if available
...
git-svn-id: trunk@44539 -
2020-04-03 20:15:23 +00:00
florian
ba3de67f3b
+ Xtensa: the boolean extension is used as flags
...
git-svn-id: trunk@44538 -
2020-04-03 20:15:22 +00:00
florian
b41c8342c8
* Xtensa: reduce stack usage
...
git-svn-id: trunk@44492 -
2020-04-01 20:08:20 +00:00
florian
26db93d78c
* Xtensa: shift operations fixed
...
git-svn-id: trunk@44438 -
2020-03-30 20:42:55 +00:00
florian
0a40d927cb
* Xtensa: fix tcgcpu.a_cmp_reg_reg_label
...
git-svn-id: trunk@44402 -
2020-03-29 17:13:46 +00:00
florian
b787efb7fd
* Xtensa: tcgcpu.g_concatcopy fixed: keep registers alive
...
git-svn-id: trunk@44401 -
2020-03-29 17:13:46 +00:00
florian
d7126bd42c
+ Xtensa: initial support of the windowed abi
...
git-svn-id: trunk@44370 -
2020-03-26 21:54:41 +00:00
florian
7e4ee79e65
* Xtensa: more fixes for load_reg/ref_reg/ref
...
git-svn-id: trunk@44369 -
2020-03-26 21:54:40 +00:00
florian
47f6af4416
* Xtensa: improve tcgcpu.fixref
...
git-svn-id: trunk@44368 -
2020-03-26 21:54:40 +00:00
florian
5631acc401
* Xtensa: fix load_reg/ref_reg/ref
...
git-svn-id: trunk@44367 -
2020-03-26 21:54:39 +00:00
florian
2a957e77bf
+ Xtensa: initial implementation of tcgcpu.g_proc_entry
...
git-svn-id: trunk@44363 -
2020-03-25 21:17:04 +00:00
florian
705218fef1
+ Xtensa: tcg64fxtensa.a_op64_const_reg
...
git-svn-id: trunk@44362 -
2020-03-25 21:17:04 +00:00
florian
65be647bbd
+ Xtensa: initial tcg64fxtensa.a_op64_const_reg_reg, still room for improvements
...
git-svn-id: trunk@44361 -
2020-03-25 21:17:03 +00:00