diff --git a/include/interfaces/irdb/STARSOp.h b/include/interfaces/irdb/STARSOp.h index 573d8fab60a35d94350b09ed773c748f4237e55d..25a54c16e10aaf53a080055c9f0794ba5e99f957 100644 --- a/include/interfaces/irdb/STARSOp.h +++ b/include/interfaces/irdb/STARSOp.h @@ -150,6 +150,15 @@ class STARS_IRDB_op_t : public STARS_op_t } virtual void SetAddr(STARS_ea_t NewAddr) { assert(OpType==op_Mem); operand.mem.disp=NewAddr; } virtual void SetSIB(char value); + virtual void ClearSIB() + { + assert(OpType==op_Mem); + operand.mem.scale=0; + operand.mem.index=STARS_x86_R_none; + operand.mem.hasSIB=false; + + /* note: we leave the base register and displacement alone */ + } virtual void SetNotVisible(void) { assert(OpType!=op_Void); visible=0; } // Set operand to type that is implicit, not explicit in disasm