Browse Source

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 8 years ago
parent
commit
1e28bdaabb
1 changed files with 16 additions and 0 deletions
  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
 	trapa	#0x15
 	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
 	shad	r2, r1
+#endif
 	not	r1, r1			// r1=0 means r0 = -1 to -4095
 	tst	r1, r1			// i.e. error in linux
 	bf	.Lclone_end