[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] pnet ChangeLog engine/md_arm.h engine/unroll_ar...
From: |
Radek Polak |
Subject: |
[dotgnu-pnet-commits] pnet ChangeLog engine/md_arm.h engine/unroll_ar... |
Date: |
Sat, 29 Mar 2008 19:17:23 +0000 |
CVSROOT: /sources/dotgnu-pnet
Module name: pnet
Changes by: Radek Polak <radekp> 08/03/29 19:17:23
Modified files:
. : ChangeLog
engine : md_arm.h unroll_arith.c
Log message:
changes to make unroller work on ARM EABI
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3537&r2=1.3538
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/md_arm.h?cvsroot=dotgnu-pnet&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/unroll_arith.c?cvsroot=dotgnu-pnet&r1=1.8&r2=1.9
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3537
retrieving revision 1.3538
diff -u -b -r1.3537 -r1.3538
--- ChangeLog 24 Mar 2008 09:04:41 -0000 1.3537
+++ ChangeLog 29 Mar 2008 19:17:22 -0000 1.3538
@@ -1,3 +1,10 @@
+2008-03-29 Radek Polak <address@hidden>
+
+ * engine/md_arm.h: Fix array start on ARM EABI.
+
+ * engine/unroll_arith.c: Do not use unroller for working with long,
because
+ of 8 byte aligned CVM word on ARM EABI.
+
2008-03-24 Klaus Treichel <address@hidden>
* engine/jitc.c: Add creation of value types (structs/unions) including
Index: engine/md_arm.h
===================================================================
RCS file: /sources/dotgnu-pnet/pnet/engine/md_arm.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- engine/md_arm.h 10 Aug 2003 06:20:09 -0000 1.10
+++ engine/md_arm.h 29 Mar 2008 19:17:23 -0000 1.11
@@ -628,6 +628,19 @@
arm_patch((patch), (inst))
/*
+ * Advance reg1 to the first array element. This means adding 4 on EABI
+ * because sizeof(System_Array) is 8 here.
+ */
+#ifdef __ARM_EABI__
+ #define arm_bounds_check_advance(inst, reg1) \
+ do { \
+ md_add_reg_imm((inst), reg1, 4); \
+ } while (0)
+#else
+ #define arm_bounds_check_advance(inst, reg1)
+#endif
+
+/*
* Check an array bounds value. "reg1" points to the array,
* and "reg2" is the array index to check. This will advance
* the pointer in "reg1" past the array bounds value.
@@ -635,6 +648,7 @@
#define md_bounds_check(inst,reg1,reg2) \
do { \
arm_load_advance((inst), ARM_WORK, (reg1)); \
+ arm_bounds_check_advance((inst), (reg1)); \
arm_test_reg_reg((inst), ARM_CMP, (reg2),
ARM_WORK); \
} while (0)
Index: engine/unroll_arith.c
===================================================================
RCS file: /sources/dotgnu-pnet/pnet/engine/unroll_arith.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- engine/unroll_arith.c 21 Nov 2005 06:38:40 -0000 1.8
+++ engine/unroll_arith.c 29 Mar 2008 19:17:23 -0000 1.9
@@ -350,7 +350,7 @@
}
break;
-#ifndef CVM_PPC /* has 8 byte CVMWords */
+#if !defined(CVM_PPC) && !defined(__ARM_EABI__) /* has 8 byte CVMWords */
case COP_LADD:
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] pnet ChangeLog engine/md_arm.h engine/unroll_ar...,
Radek Polak <=