@@ -2367,11 +2367,13 @@ class X86MCPlusBuilder : public MCPlusBuilder {
2367
2367
2368
2368
bool createNoop (MCInst &Inst) const override {
2369
2369
Inst.setOpcode (X86::NOOP);
2370
+ Inst.clear ();
2370
2371
return true ;
2371
2372
}
2372
2373
2373
2374
bool createReturn (MCInst &Inst) const override {
2374
2375
Inst.setOpcode (X86::RET64);
2376
+ Inst.clear ();
2375
2377
return true ;
2376
2378
}
2377
2379
@@ -2732,6 +2734,7 @@ class X86MCPlusBuilder : public MCPlusBuilder {
2732
2734
bool createUncondBranch (MCInst &Inst, const MCSymbol *TBB,
2733
2735
MCContext *Ctx) const override {
2734
2736
Inst.setOpcode (X86::JMP_1);
2737
+ Inst.clear ();
2735
2738
Inst.addOperand (MCOperand::createExpr (
2736
2739
MCSymbolRefExpr::create (TBB, MCSymbolRefExpr::VK_None, *Ctx)));
2737
2740
return true ;
@@ -2740,6 +2743,7 @@ class X86MCPlusBuilder : public MCPlusBuilder {
2740
2743
bool createCall (MCInst &Inst, const MCSymbol *Target,
2741
2744
MCContext *Ctx) override {
2742
2745
Inst.setOpcode (X86::CALL64pcrel32);
2746
+ Inst.clear ();
2743
2747
Inst.addOperand (MCOperand::createExpr (
2744
2748
MCSymbolRefExpr::create (Target, MCSymbolRefExpr::VK_None, *Ctx)));
2745
2749
return true ;
@@ -3066,6 +3070,7 @@ class X86MCPlusBuilder : public MCPlusBuilder {
3066
3070
void createSwap (MCInst &Inst, MCPhysReg Source, MCPhysReg MemBaseReg,
3067
3071
int64_t Disp) const {
3068
3072
Inst.setOpcode (X86::XCHG64rm);
3073
+ Inst.clear ();
3069
3074
Inst.addOperand (MCOperand::createReg (Source));
3070
3075
Inst.addOperand (MCOperand::createReg (Source));
3071
3076
Inst.addOperand (MCOperand::createReg (MemBaseReg)); // BaseReg
@@ -3078,6 +3083,7 @@ class X86MCPlusBuilder : public MCPlusBuilder {
3078
3083
void createIndirectBranch (MCInst &Inst, MCPhysReg MemBaseReg,
3079
3084
int64_t Disp) const {
3080
3085
Inst.setOpcode (X86::JMP64m);
3086
+ Inst.clear ();
3081
3087
Inst.addOperand (MCOperand::createReg (MemBaseReg)); // BaseReg
3082
3088
Inst.addOperand (MCOperand::createImm (1 )); // ScaleAmt
3083
3089
Inst.addOperand (MCOperand::createReg (X86::NoRegister)); // IndexReg
@@ -3543,6 +3549,7 @@ class X86MCPlusBuilder : public MCPlusBuilder {
3543
3549
bool createMove (MCInst &Inst, const MCSymbol *Src, unsigned Reg,
3544
3550
MCContext *Ctx) const {
3545
3551
Inst.setOpcode (X86::MOV64rm);
3552
+ Inst.clear ();
3546
3553
Inst.addOperand (MCOperand::createReg (Reg));
3547
3554
Inst.addOperand (MCOperand::createReg (X86::RIP)); // BaseReg
3548
3555
Inst.addOperand (MCOperand::createImm (1 )); // ScaleAmt
@@ -3558,6 +3565,7 @@ class X86MCPlusBuilder : public MCPlusBuilder {
3558
3565
bool createLea (MCInst &Inst, const MCSymbol *Src, unsigned Reg,
3559
3566
MCContext *Ctx) const {
3560
3567
Inst.setOpcode (X86::LEA64r);
3568
+ Inst.clear ();
3561
3569
Inst.addOperand (MCOperand::createReg (Reg));
3562
3570
Inst.addOperand (MCOperand::createReg (X86::RIP)); // BaseReg
3563
3571
Inst.addOperand (MCOperand::createImm (1 )); // ScaleAmt
0 commit comments