projects
/
cacao.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merged revisions 7797-7917 via svnmerge from
[cacao.git]
/
src
/
vm
/
jit
/
s390
/
patcher.c
diff --git
a/src/vm/jit/s390/patcher.c
b/src/vm/jit/s390/patcher.c
index 74a38211837300af907f4b979ab55ce1a45775c2..7b06b708e8a0cd3112b899402cf21adeed068fa6 100644
(file)
--- a/
src/vm/jit/s390/patcher.c
+++ b/
src/vm/jit/s390/patcher.c
@@
-28,7
+28,7
@@
Changes:
Changes:
- $Id: patcher.c 7
581 2007-03-26 07:23:1
6Z pm $
+ $Id: patcher.c 7
839 2007-04-29 22:46:5
6Z pm $
*/
*/
@@
-807,12
+807,20
@@
bool patcher_checkcast_instanceof_interface(u1 *sp)
case REG_ITMP1:
/* First M_ALD is into ITMP1 */
/* INSTANCEOF code */
case REG_ITMP1:
/* First M_ALD is into ITMP1 */
/* INSTANCEOF code */
+
+ *(u4 *)(ra + SZ_L + SZ_L) |= (u2)(s2)(- c->index);
+ *(u4 *)(ra + SZ_L + SZ_L + SZ_AHI + SZ_BRC) |=
+ (u2)(s2)(OFFSET(vftbl_t, interfacetable[0]) -
+ c->index * sizeof(methodptr*));
+
+ break;
+
case REG_ITMP2:
case REG_ITMP2:
- /* First M_ALD is into ITMP
1
*/
+ /* First M_ALD is into ITMP
2
*/
/* CHECKCAST code */
*(u4 *)(ra + SZ_L + SZ_L) |= (u2)(s2)(- c->index);
/* CHECKCAST code */
*(u4 *)(ra + SZ_L + SZ_L) |= (u2)(s2)(- c->index);
- *(u4 *)(ra + SZ_L + SZ_L + SZ_AHI + SZ_BRC) |=
+ *(u4 *)(ra + SZ_L + SZ_L + SZ_AHI + SZ_BRC
+ SZ_ILL
) |=
(u2)(s2)(OFFSET(vftbl_t, interfacetable[0]) -
c->index * sizeof(methodptr*));
(u2)(s2)(OFFSET(vftbl_t, interfacetable[0]) -
c->index * sizeof(methodptr*));