From 372f721e60691cbc22f0ca98edb4c7510ff35110 Mon Sep 17 00:00:00 2001 From: ketank-new Date: Thu, 24 Nov 2016 11:25:07 +0530 Subject: [PATCH] Update vm_s390x.dasc used MOVE LONG EXTENDED in place of mov and MOVE LONG instead of movzx --- src/vm_s390x.dasc | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/vm_s390x.dasc b/src/vm_s390x.dasc index f6f1adb1..3758ee31 100644 --- a/src/vm_s390x.dasc +++ b/src/vm_s390x.dasc @@ -180,21 +180,16 @@ |// Call decode and dispatch. |.macro ins_callt | // BASE = new base, RB = LFUNC, RD = nargs+1, [BASE-4] = PC -| mov PC, LFUNC:RB->pc -| mov RA, [PC] -| movzx OP, RAL -| movzx RA, RAH +| mvcle PC, LFUNC:RB->pc +| mvcle RA, [PC] +| movcl OP, RAL +| movcl RA, RAH | add PC, 4 -|.if X64 -| jmp aword [DISPATCH+OP*8] -|.else -| jmp aword [DISPATCH+OP*4] -|.endif |.endmacro | |.macro ins_call | // BASE = new base, RB = LFUNC, RD = nargs+1 -| mov [BASE-4], PC +| mvcle [BASE-4], PC | ins_callt |.endmacro |