From e7a57a28b61fe4d4bc1cea55e9bfb40c45ebe4cd Mon Sep 17 00:00:00 2001 From: Drahflow Date: Mon, 8 Jun 2015 14:41:43 +0200 Subject: Some code cleanup and instruction shuffling --- compiler/elymasAsmLib.ey | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/compiler/elymasAsmLib.ey b/compiler/elymasAsmLib.ey index d571a4e..33c58de 100644 --- a/compiler/elymasAsmLib.ey +++ b/compiler/elymasAsmLib.ey @@ -412,14 +412,14 @@ freeLists /rsi :movqImmReg 8 /rax /rsi /rcx :leaqMemIndexScaleReg # load correct freelist start - /rcx /rax :movqMemReg # load entry - /rax /rax :testqRegReg + /rax /rax :xorqRegReg + /rcx /rax :orqMemReg # load entry /freeListUseful :jnzLbl8 3 { 8 /rcx :addqImm8Reg - /rcx /rax :movqMemReg # load entry - /rax /rax :testqRegReg + /rax /rax :xorqRegReg + /rcx /rax :orqMemReg # load entry /freeListUseful :jnzLbl8 } rep # try some larger freelists @@ -534,11 +534,11 @@ /rdx :notqReg /rdx /rax :andqRegReg /rbx /rcx :movqRegReg - # 63 /rcx :andqImm8Reg + # 63 /rcx :andqImm8Reg # no need for this, the shrq/shlq bitmask with 63 anyway /rax :shrqClReg /rax :shlqClReg /rax /rax :bsfqRegReg # rax == lowest bit which denotes free block start - /immediateHit :jnzLbl8 + /freeBlockStartFound :jnzLbl8 %C0 /rbx :andqImm8Reg 64 /rbx :addqImm8Reg @@ -546,22 +546,9 @@ /searchFreeBlockStart :jaLbl8 /noFreeBlockAvailable :jmpLbl32 - # /rbx /r8 :btqRegMem # test block bitmap - # /nonFreeBlockStartFound :jcLbl8 # block not free - # /rbx /r9 :btqRegMem # test mark bitmap - # /freeBlockStartFound :jcLbl8 # block marked, i.e. truly free block start - - # @nonFreeBlockStartFound - # /rbx :incqReg - # /rbx /rbp :cmpqRegReg - # /searchFreeBlockStart :jaLbl8 - # /noFreeBlockAvailable :jmpLbl32 - - @immediateHit + @freeBlockStartFound %C0 /rbx :andqImm8Reg /rax /rbx :addqRegReg - - @freeBlockStartFound /rbx /rdx :movqRegReg @freeBlockContinues 16 /rsi :addqImm8Reg -- cgit v1.2.3