diff options
| author | Drahflow <drahflow@gmx.de> | 2015-05-27 16:38:46 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2015-05-27 16:38:46 +0200 |
| commit | 9f66d9d17beea65c9728ad58d5622f1273f9a789 (patch) | |
| tree | e433ec85b39c5e8fdbb92fb62ef3e51d60d056f4 /compiler | |
| parent | b8e4ab88e773ca79bd0468461f0a0bae581496be (diff) | |
More instruction shuffling
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/elymasAsmLib.ey | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/elymasAsmLib.ey b/compiler/elymasAsmLib.ey index fb6bd76..2d3fe88 100644 --- a/compiler/elymasAsmLib.ey +++ b/compiler/elymasAsmLib.ey @@ -803,12 +803,10 @@ # 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 - 15 /dil :testbImmReg - /markObjectDone :jnzLbl32 # pointing to unaligned address - /rdi /rdx :movqRegReg /r8 /rdx :subqRegReg /markObjectDone :jbLbl32 # pointing below the heap + /rdi /r11 :cmpqRegReg /markObjectDone :jbeLbl32 # pointing above the heap @@ -821,6 +819,8 @@ /markObjectDone :jcLbl8 # was already marked (or not an object at all) /rdx /r9 :btqRegMem # test block bit /markObjectDoneFixMarkBit :jncLbl8 # not pointing to an object (... and mark bit should not have been set) + 15 /dil :testbImmReg + /markObjectDoneFixMarkBit :jnzLbl32 # pointing to unaligned address (... and mark bit should not have been set) /rbp /rbp :xorqRegReg # rbp == 0: not from stack exploration, function code references ignored if trivial forward |
