From 1e28bdaabba3cdc26df028d70f9e15e055e75587 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 7 Dec 2015 07:42:25 +0100 Subject: 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. --- libc/sysdeps/linux/sh/clone.S | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'libc/sysdeps/linux/sh') diff --git a/libc/sysdeps/linux/sh/clone.S b/libc/sysdeps/linux/sh/clone.S index 4374a634e..3ed6b25de 100644 --- a/libc/sysdeps/linux/sh/clone.S +++ b/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 -- cgit v1.2.3