mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-17 20:44:37 +03:00
[Bug] Fixed push/pop RW instruction data (segment and GP interfering each other)
This commit is contained in:
@@ -2195,10 +2195,14 @@ class InstRWInfoTable extends core.Task {
|
||||
if (op.consecutiveLeadCount)
|
||||
d.clc = op.consecutiveLeadCount;
|
||||
|
||||
if (op.isReg())
|
||||
d.fixed = GenUtils.fixedRegOf(op.reg);
|
||||
else
|
||||
d.fixed = GenUtils.fixedRegOf(op.mem);
|
||||
// NOTE: Avoid push/pop here as PUSH/POP has many variations for segment registers,
|
||||
// which would set 'd.fixed' field even for GP variation of the instuction.
|
||||
if (dbInst.name !== "push" && dbInst.name !== "pop") {
|
||||
if (op.isReg())
|
||||
d.fixed = GenUtils.fixedRegOf(op.reg);
|
||||
else
|
||||
d.fixed = GenUtils.fixedRegOf(op.mem);
|
||||
}
|
||||
|
||||
if (op.zext)
|
||||
d.flags.ZExt = true;
|
||||
|
||||
Reference in New Issue
Block a user