Browse Source

* Xtensa: make use of extui for shifting with constant values >=16

git-svn-id: trunk@44856 -
florian 5 years ago
parent
commit
14d46bccba
1 changed files with 2 additions and 0 deletions
  1. 2 0
      compiler/xtensa/cgcpu.pas

+ 2 - 0
compiler/xtensa/cgcpu.pas

@@ -517,6 +517,8 @@ implementation
           list.concat(taicpu.op_reg_reg_const(A_SLLI,dst,src,a))
         else if (op=OP_SHR) and (a>=0) and (a<=15) then
           list.concat(taicpu.op_reg_reg_const(A_SRLI,dst,src,a))
+        else if (op=OP_SHR) and (a>15) and (a<=31) then
+          list.concat(taicpu.op_reg_reg_const_const(A_EXTUI,dst,src,a,32-a))
         else
           begin
             tmpreg:=getintregister(list,size);