Sfoglia il codice sorgente

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 anni fa
parent
commit
1e28bdaabb
1 ha cambiato i file con 16 aggiunte e 0 eliminazioni
  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