From 7fa5c2aa98a40475f7b092a6883433f10fa747d6 Mon Sep 17 00:00:00 2001 From: Drahflow Date: Wed, 27 May 2015 13:06:22 +0200 Subject: More instruction shuffling --- compiler/elymasAsmLib.ey | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'compiler') diff --git a/compiler/elymasAsmLib.ey b/compiler/elymasAsmLib.ey index e936f20..6a0ce06 100644 --- a/compiler/elymasAsmLib.ey +++ b/compiler/elymasAsmLib.ey @@ -781,16 +781,16 @@ # guaranteed not to clobber rcx, rsi (because it is used in many loops) @markObject # rdi == address of a reachable object or some other random bits - /rdi /r8 :cmpqRegReg - /markObjectDone :jaLbl32 # pointing below the heap 15 /dil :testbImmReg /markObjectDone :jnzLbl32 # pointing to unaligned address - /rdi /r11 :cmpqRegReg - /markObjectDone :jbeLbl32 # pointing above the heap - # rdi == address of a reachable object /rdi /rdx :movqRegReg /r8 /rdx :subqRegReg + /markObjectDone :jbLbl32 # pointing below the heap + /rdi /r11 :cmpqRegReg + /markObjectDone :jbeLbl32 # pointing above the heap + + # rdi == address of a reachable object # rdx == byte offset relative to heap begin 4 /rdx :shrqImm8Reg # rdx == cell index of first 16-byte cell of object -- cgit v1.2.3