Commit Graph

72 Commits

Author SHA1 Message Date
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