From 553c1e74e6ddb089584c546e2a7bfda718967d4d Mon Sep 17 00:00:00 2001
From: jdh8d <jdh8d@git.zephyr-software.com>
Date: Mon, 12 Feb 2018 16:13:49 +0000
Subject: [PATCH] extensions for xor globals, and moving xorg to
 libIRDB-decoded.

Former-commit-id: 803078e95f5a28ee831858404869326dcb89fd2e
---
 libIRDB/include/decode/operand.hpp |  2 ++
 libIRDB/src/decode/operand.cpp     | 14 ++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/libIRDB/include/decode/operand.hpp b/libIRDB/include/decode/operand.hpp
index 37d391879..8a725f10e 100644
--- a/libIRDB/include/decode/operand.hpp
+++ b/libIRDB/include/decode/operand.hpp
@@ -35,11 +35,13 @@ class DecodedOperand_t
 		bool hasIndexRegister() const;
 		uint32_t getBaseRegister() const;
 		uint32_t getIndexRegister() const;
+		bool hasMemoryDisplacement() const;
 		virtual_offset_t getMemoryDisplacement() const;
 		bool isPcrel() const;
 		uint32_t getScaleValue() const;
 		uint32_t getMemoryDisplacementEncodingSize() const;
 		uint32_t getArgumentSizeInBytes() const;
+		uint32_t getArgumentSizeInBits() const;
 		bool isRead() const; 
 		bool isWritten() const; 
 
diff --git a/libIRDB/src/decode/operand.cpp b/libIRDB/src/decode/operand.cpp
index 6b02b80d5..8e9fbce38 100644
--- a/libIRDB/src/decode/operand.cpp
+++ b/libIRDB/src/decode/operand.cpp
@@ -194,6 +194,14 @@ uint32_t DecodedOperand_t::getScaleValue() const
 	return t->Memory.Scale; 	/* 0 indicates no scale */
 }
 
+bool DecodedOperand_t::hasMemoryDisplacement() const
+{
+	if(!isMemory())
+		throw std::logic_error("GetBaseRegister called on not memory operand");
+	ARGTYPE *t=static_cast<ARGTYPE*>(arg_data);
+	return t->Memory.DisplacementAddr!=0;
+}
+
 virtual_offset_t DecodedOperand_t::getMemoryDisplacement() const
 {
 	if(!isMemory())
@@ -220,6 +228,12 @@ uint32_t DecodedOperand_t::getArgumentSizeInBytes() const
 	return t->ArgSize/8;
 }
 
+uint32_t DecodedOperand_t::getArgumentSizeInBits() const
+{
+	ARGTYPE *t=static_cast<ARGTYPE*>(arg_data);
+	return t->ArgSize;
+}
+
 bool DecodedOperand_t::hasSegmentRegister() const
 {
 	ARGTYPE *t=static_cast<ARGTYPE*>(arg_data);
-- 
GitLab