Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2808)

Unified Diff: src/trusted/validator_ragel/proof_tools_templates.py

Issue 697143002: enable packed double precision 3 operand mem/simd register avx1 instructions. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/trusted/validator_ragel/instruction_definitions/xmm_instructions.def ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/trusted/validator_ragel/proof_tools_templates.py
diff --git a/src/trusted/validator_ragel/proof_tools_templates.py b/src/trusted/validator_ragel/proof_tools_templates.py
index 939a78a14d0b54f00489079c52078546fd5a61f9..b43c2d8a18489e48dfe680a8f7d94ad922b5efd0 100644
--- a/src/trusted/validator_ragel/proof_tools_templates.py
+++ b/src/trusted/validator_ragel/proof_tools_templates.py
@@ -31,3 +31,27 @@ def LockedRegWithRegOrMem16bit(mnemonic_name, bitness):
lock = proof_tools.LockPrefix()
return (proof_tools.OpsProd(lock, instr, reg16, mem) |
proof_tools.OpsProd(instr, reg16, reg16 | mem))
+
+
+def XmmYmmOrMemory3operand(mnemonic_name, bitness):
+ """Set of 3 operand xmm/ymm/memory ops (memory is a possible source operand).
+
+ e.g.
+
+ instr xmm1/mem, xmm2, xmm3
+ or
+ instr ymm1/mem, ymm2, ymm3
+
+ Args:
+ mnemonic_name: the mnemonic we are producing the pattern for.
+ bitness: the bitness of the architecture (32 or 64)
+ Returns:
+ All possible disassembly sequences that follow the pattern.
+ """
+ xmm = proof_tools.AllXMMOperands(bitness)
+ ymm = proof_tools.AllYMMOperands(bitness)
+ mem = proof_tools.AllMemoryOperands(bitness)
+ mnemonic = proof_tools.MnemonicOp(mnemonic_name)
+
+ return (proof_tools.OpsProd(mnemonic, (xmm | mem), xmm, xmm) |
+ proof_tools.OpsProd(mnemonic, (ymm | mem), ymm, ymm))
« no previous file with comments | « src/trusted/validator_ragel/instruction_definitions/xmm_instructions.def ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698