mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-17 12:34:35 +03:00
Added support for BND/REPNE call/jmp/jcc/ret
This commit is contained in:
@@ -377,22 +377,40 @@ public:
|
|||||||
//! Use XRELEASE prefix.
|
//! Use XRELEASE prefix.
|
||||||
inline This& xrelease() noexcept { return _addInstOptions(Inst::kOptionXRelease); }
|
inline This& xrelease() noexcept { return _addInstOptions(Inst::kOptionXRelease); }
|
||||||
|
|
||||||
|
//! Use BND/REPNE prefix.
|
||||||
|
//!
|
||||||
|
//! \note This is the same as using `repne()` or `repnz()` prefix.
|
||||||
|
inline This& bnd() noexcept { return _addInstOptions(Inst::kOptionRepne); }
|
||||||
|
|
||||||
//! Use REP/REPZ prefix.
|
//! Use REP/REPZ prefix.
|
||||||
|
//!
|
||||||
|
//! \note This is the same as using `repe()` or `repz()` prefix.
|
||||||
inline This& rep(const Gp& zcx) noexcept {
|
inline This& rep(const Gp& zcx) noexcept {
|
||||||
static_cast<This*>(this)->_extraReg.init(zcx);
|
static_cast<This*>(this)->_extraReg.init(zcx);
|
||||||
return _addInstOptions(Inst::kOptionRep);
|
return _addInstOptions(Inst::kOptionRep);
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Use REP/REPE prefix.
|
//! Use REP/REPE prefix.
|
||||||
|
//!
|
||||||
|
//! \note This is the same as using `rep()` or `repz()` prefix.
|
||||||
inline This& repe(const Gp& zcx) noexcept { return rep(zcx); }
|
inline This& repe(const Gp& zcx) noexcept { return rep(zcx); }
|
||||||
|
|
||||||
//! Use REP/REPE prefix.
|
//! Use REP/REPE prefix.
|
||||||
|
//!
|
||||||
|
//! \note This is the same as using `rep()` or `repe()` prefix.
|
||||||
inline This& repz(const Gp& zcx) noexcept { return rep(zcx); }
|
inline This& repz(const Gp& zcx) noexcept { return rep(zcx); }
|
||||||
|
|
||||||
//! Use REPNE prefix.
|
//! Use REPNE prefix.
|
||||||
|
//!
|
||||||
|
//! \note This is the same as using `bnd()` or `repnz()` prefix.
|
||||||
inline This& repne(const Gp& zcx) noexcept {
|
inline This& repne(const Gp& zcx) noexcept {
|
||||||
static_cast<This*>(this)->_extraReg.init(zcx);
|
static_cast<This*>(this)->_extraReg.init(zcx);
|
||||||
return _addInstOptions(Inst::kOptionRepne);
|
return _addInstOptions(Inst::kOptionRepne);
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Use REPNE prefix.
|
//! Use REPNE prefix.
|
||||||
|
//!
|
||||||
|
//! \note This is the same as using `bnd()` or `repne()` prefix.
|
||||||
inline This& repnz(const Gp& zcx) noexcept { return repne(zcx); }
|
inline This& repnz(const Gp& zcx) noexcept { return repne(zcx); }
|
||||||
|
|
||||||
//! \}
|
//! \}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -189,6 +189,7 @@ class GenUtils {
|
|||||||
if (dbInst.attributes.Lock ) f.Lock = true;
|
if (dbInst.attributes.Lock ) f.Lock = true;
|
||||||
if (dbInst.attributes.XAcquire ) f.XAcquire = true;
|
if (dbInst.attributes.XAcquire ) f.XAcquire = true;
|
||||||
if (dbInst.attributes.XRelease ) f.XRelease = true;
|
if (dbInst.attributes.XRelease ) f.XRelease = true;
|
||||||
|
if (dbInst.attributes.BND ) f.Rep = true;
|
||||||
if (dbInst.attributes.REP ) f.Rep = true;
|
if (dbInst.attributes.REP ) f.Rep = true;
|
||||||
if (dbInst.attributes.REPNE ) f.Rep = true;
|
if (dbInst.attributes.REPNE ) f.Rep = true;
|
||||||
if (dbInst.attributes.RepIgnored) f.RepIgnored = true;
|
if (dbInst.attributes.RepIgnored) f.RepIgnored = true;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ const fs = require("fs");
|
|||||||
const hasOwn = Object.prototype.hasOwnProperty;
|
const hasOwn = Object.prototype.hasOwnProperty;
|
||||||
|
|
||||||
const asmdb = (function() {
|
const asmdb = (function() {
|
||||||
// Try to import local 'asmdb' package, if available.
|
// Try to import a local 'asmdb' package, if available.
|
||||||
try {
|
try {
|
||||||
return require("./asmdb");
|
return require("./asmdb");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user