瀏覽代碼

sh: add back sh2 specific assembly for clone()

In gcc 5.x there is a compile failure, for sh2 builds
as shad no longer is accepted. Strange that it is working for
4.9.x. Add back old assembly code.
Waldemar Brodkorb 10 年之前
父節點
當前提交
1e28bdaabb
共有 1 個文件被更改,包括 16 次插入0 次删除
  1. 16 0
      libc/sysdeps/linux/sh/clone.S

+ 16 - 0
libc/sysdeps/linux/sh/clone.S

@@ -53,8 +53,24 @@ ENTRY(__clone)
 	mov	#+SYS_ify(clone), r3
 	mov	#+SYS_ify(clone), r3
 	trapa	#0x15
 	trapa	#0x15
 	mov     r0, r1
 	mov     r0, r1
+#ifdef __sh2__
+/* 12 arithmetic shifts for the sh2, because shad doesn't exist! */
+        shar    r1
+        shar    r1
+        shar    r1
+        shar    r1
+        shar    r1
+        shar    r1
+        shar    r1
+        shar    r1
+        shar    r1
+        shar    r1
+        shar    r1
+        shar    r1
+#else
 	mov	#-12, r2
 	mov	#-12, r2
 	shad	r2, r1
 	shad	r2, r1
+#endif
 	not	r1, r1			// r1=0 means r0 = -1 to -4095
 	not	r1, r1			// r1=0 means r0 = -1 to -4095
 	tst	r1, r1			// i.e. error in linux
 	tst	r1, r1			// i.e. error in linux
 	bf	.Lclone_end
 	bf	.Lclone_end