Chromium Code Reviews| Index: src/IceTargetLoweringX86Base.h |
| diff --git a/src/IceTargetLoweringX86Base.h b/src/IceTargetLoweringX86Base.h |
| index 58de7217571b44e0d0898e176380e9962326a54b..9b8be4aaf1dda1da21b74b2c0b7c9e227b19a098 100644 |
| --- a/src/IceTargetLoweringX86Base.h |
| +++ b/src/IceTargetLoweringX86Base.h |
| @@ -160,6 +160,8 @@ protected: |
| Operand *Val); |
| void lowerCountZeros(bool Cttz, Type Ty, Variable *Dest, Operand *FirstVal, |
| Operand *SecondVal); |
| + /// Lower and indirect jump adding sandboxing when needed. |
|
jvoung (off chromium)
2015/07/29 21:31:17
"Lower an indirect" ?
ascull
2015/07/29 22:43:04
Done.
|
| + void lowerIndirectJump(Variable *Target); |
| /// Check the comparison is in [Min,Max]. The flags register will be modified |
| /// with: |
| @@ -268,18 +270,21 @@ protected: |
| } |
| void _br(typename Traits::Cond::BrCond Condition, CfgNode *TargetTrue, |
| CfgNode *TargetFalse) { |
| - Context.insert( |
| - Traits::Insts::Br::create(Func, TargetTrue, TargetFalse, Condition)); |
| + Context.insert(Traits::Insts::Br::create( |
| + Func, TargetTrue, TargetFalse, Condition, Traits::Insts::Br::Far)); |
| } |
| void _br(CfgNode *Target) { |
| - Context.insert(Traits::Insts::Br::create(Func, Target)); |
| + Context.insert( |
| + Traits::Insts::Br::create(Func, Target, Traits::Insts::Br::Far)); |
| } |
| void _br(typename Traits::Cond::BrCond Condition, CfgNode *Target) { |
| - Context.insert(Traits::Insts::Br::create(Func, Target, Condition)); |
| + Context.insert(Traits::Insts::Br::create(Func, Target, Condition, |
| + Traits::Insts::Br::Far)); |
| } |
| void _br(typename Traits::Cond::BrCond Condition, |
| - typename Traits::Insts::Label *Label) { |
| - Context.insert(Traits::Insts::Br::create(Func, Label, Condition)); |
| + typename Traits::Insts::Label *Label, |
| + typename Traits::Insts::Br::BrKind Kind = Traits::Insts::Br::Near) { |
| + Context.insert(Traits::Insts::Br::create(Func, Label, Condition, Kind)); |
| } |
| void _bsf(Variable *Dest, Operand *Src0) { |
| Context.insert(Traits::Insts::Bsf::create(Func, Dest, Src0)); |