[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/engine cvm_var.c,1.13,1.14 mklabel.sh,1
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/engine cvm_var.c,1.13,1.14 mklabel.sh,1.7,1.8 |
Date: |
Fri, 20 Dec 2002 08:19:20 -0500 |
Update of /cvsroot/dotgnu-pnet/pnet/engine
In directory subversions:/tmp/cvs-serv11684/engine
Modified Files:
cvm_var.c mklabel.sh
Log Message:
Introduce a __asm__ hack to prevent "COP_LDC_I4_0" from being
tail-combined with "COP_MK_LOCAL_1". Such tail combination confuses
the x86 unroller on some platforms.
Index: cvm_var.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/cvm_var.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** cvm_var.c 18 Jun 2002 02:07:21 -0000 1.13
--- cvm_var.c 20 Dec 2002 13:18:57 -0000 1.14
***************
*** 716,719 ****
--- 716,720 ----
MODIFY_PC_AND_STACK(CVM_LEN_NONE, 1);
}
+ VMNULLASM(); /* Prevent tail-end combination with ldc_i4_0 */
VMBREAK(COP_MK_LOCAL_1);
Index: mklabel.sh
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/mklabel.sh,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** mklabel.sh 24 May 2002 01:23:15 -0000 1.7
--- mklabel.sh 20 Dec 2002 13:18:57 -0000 1.8
***************
*** 229,232 ****
--- 229,241 ----
echo ''
+ # Define a null assembly statement. This is a trick to stop gcc doing
+ # tail-end combination on the cases within the switch statements.
+ echo '#if defined(__GNUC__)'
+ echo '#define VMNULLASM() __asm__("")'
+ echo '#else'
+ echo '#define VMNULLASM()'
+ echo '#endif'
+ echo ''
+
# Output the helper macros (non-PIC).
echo '#ifdef IL_CVM_DIRECT'
***************
*** 259,265 ****
echo ''
! # Output the non-goto case of the helper macros. The __asm__("")
! # block is a trick to stop gcc doing tail-end combination on the
! # cases within the switch statements.
echo '#else /* IL_CVM_SWITCH */'
echo ''
--- 268,272 ----
echo ''
! # Output the non-goto case of the helper macros.
echo '#else /* IL_CVM_SWITCH */'
echo ''
***************
*** 269,279 ****
echo '#define VMDEFAULT default'
echo '#define VMPREFIXDEFAULT default'
! echo '#if defined(__GNUC__)'
! echo '#define VMBREAK(val) __asm__(""); break'
! echo '#define VMBREAKNOEND __asm__(""); break'
! echo '#else'
! echo '#define VMBREAK(val) break'
! echo '#define VMBREAKNOEND break'
! echo '#endif'
echo '#define VMOUTERBREAK break'
echo ''
--- 276,281 ----
echo '#define VMDEFAULT default'
echo '#define VMPREFIXDEFAULT default'
! echo '#define VMBREAK(val) VMNULLASM(); break'
! echo '#define VMBREAKNOEND VMNULLASM(); break'
echo '#define VMOUTERBREAK break'
echo ''
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/engine cvm_var.c,1.13,1.14 mklabel.sh,1.7,1.8,
Rhys Weatherley <address@hidden> <=