guile: Add earlyclobber constraint to the SMULL outputs.

backport a patch to fix issue:
{standard input}: Assembler messages:
{standard input}:16966: rdhi, rdlo and rm must all be different

(From OE-Core rev: a8767bff39730e4905c55942109d69aae5867fe1)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jackie Huang
2015-07-29 16:09:10 +08:00
committed by Richard Purdie
parent 8f12739542
commit a1f78e411e
2 changed files with 44 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
From a85c78ea1393985fdb6e6678dea19135c553d341 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Fri, 19 Sep 2014 21:18:09 -0400
Subject: [PATCH] VM: ASM_MUL for ARM: Add earlyclobber constraint to the SMULL
outputs.
Reported by Rob Browning <rlb@defaultvalue.org>.
* libguile/vm-i-scheme.c (ASM_MUL)[ARM]: Add earlyclobber (&) constraint
to the SMULL output registers.
Author: Mark H Weaver <mhw@netris.org>
Upstream-Status: Backport
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
---
libguile/vm-i-scheme.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/libguile/vm-i-scheme.c b/libguile/vm-i-scheme.c
index 587aa95..162efab 100644
--- a/libguile/vm-i-scheme.c
+++ b/libguile/vm-i-scheme.c
@@ -1,5 +1,4 @@
-/* Copyright (C) 2001, 2009, 2010, 2011, 2012, 2013,
- * 2014 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2009-2014 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@@ -363,7 +362,7 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2)
{ \
scm_t_signed_bits rlo, rhi; \
asm ("smull %0, %1, %2, %3\n" \
- : "=r" (rlo), "=r" (rhi) \
+ : "=&r" (rlo), "=&r" (rhi) \
: "r" (SCM_UNPACK (x) - scm_tc2_int), \
"r" (SCM_I_INUM (y))); \
if (SCM_LIKELY (SCM_SRS (rlo, 31) == rhi)) \
--
2.3.5

View File

@@ -22,6 +22,7 @@ SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.xz \
file://arm_aarch64.patch \
file://workaround-ice-ssa-corruption.patch \
file://libguile-Makefile.am-hook.patch \
file://libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch \
"
# file://debian/0001-Change-guile-to-guile-X.Y-for-info-pages.patch