-}
-
-/*
-** This method is called after delegate method is compiled.
-** We need to patch call site to call compiled method directly
-** (not via trampoline stub)
-** Determine address to patch using fp reg
-**
-*/
-
-void
-mono_arch_patch_delegate_trampoline (guint8 *code, guint8 *tramp,
- gssize *regs, guint8 *addr)
-{
- unsigned int *pcode = (unsigned int *)code;
- int reg;
- short fp_disp, obj_disp;
- unsigned long *pobj, obj;
-
- ALPHA_DEBUG("mono_arch_patch_delegate_trampoline");
-
- // The call signature for now is
- // -4 - ldq v0,24(fp)
- // -3 - ldq v0,40(v0)
- // -2 - mov v0,t12
- // -1 - jsr ra,(t12),0x200041476e4
- // 0 - ldah gp,0(ra)
- if (((pcode[-4] & 0xFF000000) == 0xA4000000) &&
- ((pcode[-3] & 0xFF000000) == 0xA4000000) &&
- ((pcode[-2] & 0xFF00FF00) == 0x47000400) &&
- ((pcode[-1] & 0xFFFF0000) == 0x6B5B0000))
- {
- fp_disp = (pcode[-4] & 0xFFFF);
- obj_disp = (pcode[-3] & 0xFFFF);
+ // pcode[-2] ldq t12,n(gp)
+ // pcode[-1] jsr ra,(t12),0x20003efcb40
+ if ((pcode[-2] & 0xFFFF0000) == 0xa77d0000 &&
+ pcode[-1] == 0x6b5b4000)
+ {
+ // Put "unop" into call inst
+ pcode--;
+ alpha_nop(pcode);
+ alpha_nop(pcode);
+ alpha_nop(pcode);