⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 71_all_sh-pr16665-fix.patch

📁 這是一個實時嵌入式作業系統 實作了MCS51 ARM等MCU
💻 PATCH
字号:
--- gcc/gcc/config/sh/sh.c+++ gcc/gcc/config/sh/sh.c@@ -9106,6 +9106,15 @@ sh_output_mi_thunk (FILE *file, tree thu     }   this = FUNCTION_ARG (cum, Pmode, ptr_type_node, 1); +  /* In PIC case, we set PIC register to compute the target address.  We+     can use a scratch register to save and restore the original value  +     except for SHcompact.  For SHcompact, use stack.  */+  if (flag_pic && TARGET_SHCOMPACT)+    {+      push (PIC_OFFSET_TABLE_REGNUM);+      emit_insn (gen_GOTaddr2picreg ());+    }+   /* For SHcompact, we only have r0 for a scratch register: r1 is the      static chain pointer (even if you can't have nested virtual functions      right now, someone might implement them sometime), and the rest of the@@ -9188,8 +9197,24 @@ sh_output_mi_thunk (FILE *file, tree thu       assemble_external (function);       TREE_USED (function) = 1;     }+  /* We can use scratch1 to save and restore the original value of+     PIC register except for SHcompact.  */+  if (flag_pic && ! TARGET_SHCOMPACT)+    {+      emit_move_insn (scratch1,+		      gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM));+      emit_insn (gen_GOTaddr2picreg ());+    }   funexp = XEXP (DECL_RTL (function), 0);   emit_move_insn (scratch2, funexp);+  if (flag_pic)+    {+      if (! TARGET_SHCOMPACT)+	emit_move_insn (gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM),+			scratch1);+      else+	pop (PIC_OFFSET_TABLE_REGNUM);+    }   funexp = gen_rtx_MEM (FUNCTION_MODE, scratch2);   sibcall = emit_call_insn (gen_sibcall (funexp, const0_rtx, NULL_RTX));   SIBLING_CALL_P (sibcall) = 1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -