| Newsgroups |
gmane.comp.gnome.mono.patches |
| Message-ID |
<000001425c1c4805-8de0e1e7-e9b7-488c-8e50-0ccddbd88d38-000000@email.amazonses.com> |
Branch: refs/heads/master
Home: https://github.com/mono/mono
Compare: https://github.com/mono/mono/compare/891d594b3f7a...a0cd023d06cb
Commit: a0cd023d06cb09c43d1cb93ee08bf917292e31ed
Author: Alex Rønne Petersen <[email protected]>
Date: 2013-11-15 14:08:06 GMT
URL: https://github.com/mono/mono/commit/a0cd023d06cb09c43d1cb93ee08bf917292e31ed
Fix the `nop` opcode on some MIPS-based Loongson CPUs.
After much trouble building Mono in Debian/MIPS, @directhex
narrowed it down to this issue:
https://sourceware.org/ml/binutils/2009-11/msg00387.html
So since some of the 2E and 2F versions of the Loongson CPUs
break with a regular `sll zero, zero, 0` we need to issue an
`or at, at, 0`. This makes sure we don't randomly deadlock or
blow up when the CPU is under heavy load.
Yes, really.
Changed paths:
M mono/arch/mips/mips-codegen.h
Modified: mono/arch/mips/mips-codegen.h
===================================================================
@@ -334,7 +334,7 @@ enum {
/* misc and coprocessor ops */
#define mips_move(c,dest,src) mips_addu(c,dest,src,mips_zero)
#define mips_dmove(c,dest,src) mips_daddu(c,dest,src,mips_zero)
-#define mips_nop(c) mips_sll(c,0,0,0)
+#define mips_nop(c) mips_or(c,mips_at,mips_at,0)
#define mips_break(c,code) mips_emit32(c, ((code)<<6)|13)
#define mips_mfhi(c,dest) mips_format_r(c,0,0,0,dest,0,16)
#define mips_mflo(c,dest) mips_format_r(c,0,0,0,dest,0,18)
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches