mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.boringcrypto] all: merge master into dev.boringcrypto
Conflicts due to crypto/internal/cipherhw removal: src/crypto/aes/cipher_amd64.go src/crypto/internal/cipherhw/cipherhw_amd64.go src/go/build/deps_test.go This removes the AESGCMSupport patch, as there is no equivalent place for it. The logic will be added back in the next change. Change-Id: I8169069ff732b6cd0b56279c073cf5e0dd36959d
This commit is contained in:
commit
3d9a6ac709
562 changed files with 200351 additions and 20776 deletions
234
doc/conduct.html
234
doc/conduct.html
|
|
@ -13,15 +13,14 @@ ul ul {
|
|||
}
|
||||
</style>
|
||||
|
||||
<h2 id="about">About the Code of Conduct</h2>
|
||||
|
||||
<h3 id="why">Why have a Code of Conduct?</h3>
|
||||
<h2 id="about">About</h2>
|
||||
|
||||
<p>
|
||||
Online communities include people from many different backgrounds.
|
||||
The Go contributors are committed to providing a friendly, safe and welcoming
|
||||
environment for all, regardless of age, disability, gender, nationality,
|
||||
ethnicity, religion, sexuality, or similar personal characteristic.
|
||||
environment for all, regardless of gender identity and expression, sexual orientation,
|
||||
disabilities, neurodiversity, physical appearance, body size, ethnicity, nationality,
|
||||
race, age, religion, or similar personal characteristics.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
|
@ -44,35 +43,9 @@ contributors and users from all backgrounds.
|
|||
</p>
|
||||
|
||||
<p>
|
||||
With that said, a healthy community must allow for disagreement and debate.
|
||||
The Code of Conduct is not a mechanism for people to silence others with whom
|
||||
they disagree.
|
||||
</p>
|
||||
|
||||
<h3 id="spaces">Where does the Code of Conduct apply?</h3>
|
||||
|
||||
<p>
|
||||
If you participate in or contribute to the Go ecosystem in any way,
|
||||
you are encouraged to follow the Code of Conduct while doing so.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Explicit enforcement of the Code of Conduct applies to the
|
||||
official forums operated by the Go project (“Go spaces”):
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>The official <a href="https://github.com/golang/">GitHub projects</a>
|
||||
and <a href="https://go-review.googlesource.com/">code reviews</a>.
|
||||
<li>The <a href="https://groups.google.com/group/golang-nuts">golang-nuts</a> and
|
||||
<a href="https://groups.google.com/group/golang-dev">golang-dev</a> mailing lists.
|
||||
<li>The #go-nuts IRC channel on Freenode.
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Other Go groups (such as conferences, meetups, and other unofficial forums) are
|
||||
encouraged to adopt this Code of Conduct. Those groups must provide their own
|
||||
moderators and/or working group (see below).
|
||||
We believe that healthy debate and disagreement are essential to a healthy project and community.
|
||||
However, it is never ok to be disrespectful.
|
||||
We value diverse opinions, but we value respectful behavior more.
|
||||
</p>
|
||||
|
||||
<h2 id="values">Gopher values</h2>
|
||||
|
|
@ -129,118 +102,104 @@ Even if the intent was to provoke, do not rise to it.
|
|||
It is the responsibility of <i>all parties</i> to de-escalate conflict when it arises.
|
||||
</p>
|
||||
|
||||
<h2 id="unwelcome_behavior">Unwelcome behavior</h2>
|
||||
<h2 id="code">Code of Conduct</h2>
|
||||
|
||||
<p>
|
||||
These actions are explicitly forbidden in Go spaces:
|
||||
</p>
|
||||
<h3 id="our-pledge">Our Pledge</h3>
|
||||
|
||||
<p>In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, gender identity and expression, level of
|
||||
experience, education, socio-economic status, nationality, personal appearance,
|
||||
race, religion, or sexual identity and orientation.</p>
|
||||
|
||||
<h3 id="our-standards">Our Standards</h3>
|
||||
|
||||
<p>Examples of behavior that contributes to creating a positive environment
|
||||
include:</p>
|
||||
|
||||
<ul>
|
||||
<li>Insulting, demeaning, hateful, or threatening remarks.
|
||||
<li>Discrimination based on age, disability, gender, nationality, race,
|
||||
religion, sexuality, or similar personal characteristic.
|
||||
<li>Bullying or systematic harassment.
|
||||
<li>Unwelcome sexual advances.
|
||||
<li>Incitement to any of these.
|
||||
<li>Using welcoming and inclusive language</li>
|
||||
<li>Being respectful of differing viewpoints and experiences</li>
|
||||
<li>Gracefully accepting constructive criticism</li>
|
||||
<li>Focusing on what is best for the community</li>
|
||||
<li>Showing empathy towards other community members</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="moderation">Moderation</h2>
|
||||
|
||||
<p>
|
||||
The Go spaces are not free speech venues; they are for discussion about Go.
|
||||
Each of these spaces have their own moderators.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When using the official Go spaces you should act in the spirit of the “Gopher
|
||||
values”.
|
||||
If a reported conflict cannot be resolved amicably, the CoC Working Group
|
||||
may make a recommendation to the relevant forum moderators.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
CoC Working Group members and forum moderators are held to a higher standard than other community members.
|
||||
If a working group member or moderator creates an inappropriate situation, they
|
||||
should expect less leeway than others, and should expect to be removed from
|
||||
their position if they cannot adhere to the CoC.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Complaints about working group member or moderator actions must be handled
|
||||
using the reporting process below.
|
||||
</p>
|
||||
|
||||
<h2 id="reporting">Reporting issues</h2>
|
||||
|
||||
<p>
|
||||
The Code of Conduct Working Group is a group of people that represent the Go
|
||||
community. They are responsible for handling conduct-related issues.
|
||||
Their purpose is to de-escalate conflicts and try to resolve issues to the
|
||||
satisfaction of all parties. They are:
|
||||
</p>
|
||||
<p>Examples of unacceptable behavior by participants include:</p>
|
||||
|
||||
<ul>
|
||||
<li>Aditya Mukerjee <dev@chimeracoder.net>
|
||||
<li>Andrew Gerrand <adg@golang.org>
|
||||
<li>Peggy Li <peggyli.224@gmail.com>
|
||||
<li>Steve Francia <steve.francia@gmail.com>
|
||||
<li>Verónica López <gveronicalg@gmail.com>
|
||||
<li>The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances</li>
|
||||
<li>Trolling, insulting/derogatory comments, and personal or political attacks</li>
|
||||
<li>Public or private harassment</li>
|
||||
<li>Publishing others’ private information, such as a physical or electronic
|
||||
address, without explicit permission</li>
|
||||
<li>Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
If you encounter a conduct-related issue, you should report it to the
|
||||
Working Group using the process described below.
|
||||
<b>Do not</b> post about the issue publicly or try to rally sentiment against a
|
||||
particular individual or group.
|
||||
</p>
|
||||
<h3 id="our-responsibilities">Our Responsibilities</h3>
|
||||
|
||||
<ul>
|
||||
<li>Mail <a href="mailto:conduct@golang.org">conduct@golang.org</a>.
|
||||
<ul>
|
||||
<li>Your message will reach the Working Group.
|
||||
<li>Reports are confidential within the Working Group.
|
||||
<li>You may contact a member of the group directly if you do not feel
|
||||
comfortable contacting the group as a whole. That member will then raise
|
||||
the issue with the Working Group as a whole, preserving the privacy of the
|
||||
reporter (if desired).
|
||||
<li>If your report concerns a member of the Working Group they will be recused
|
||||
from Working Group discussions of the report.
|
||||
<li>The Working Group will strive to handle reports with discretion and
|
||||
sensitivity, to protect the privacy of the involved parties,
|
||||
and to avoid conflicts of interest.
|
||||
</ul>
|
||||
<li>You should receive a response within 48 hours (likely sooner).
|
||||
(Should you choose to contact a single Working Group member,
|
||||
it may take longer to receive a response.)
|
||||
<li>The Working Group will meet to review the incident and determine what happened.
|
||||
<ul>
|
||||
<li>With the permission of person reporting the incident, the Working Group
|
||||
may reach out to other community members for more context.
|
||||
</ul>
|
||||
<li>The Working Group will reach a decision as to how to act. These may include:
|
||||
<ul>
|
||||
<li>Nothing.
|
||||
<li>Passing the report along to the offender.
|
||||
<li>A recommendation of action to the relevant forum moderators.
|
||||
</ul>
|
||||
<li>The Working Group will reach out to the original reporter to let them know
|
||||
the decision.
|
||||
<li>Appeals to the decision may be made to the Working Group,
|
||||
or to any of its members directly.
|
||||
</ul>
|
||||
<p>Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.</p>
|
||||
|
||||
<p>
|
||||
<b>Note that the goal of the Code of Conduct and the Working Group is to resolve
|
||||
conflicts in the most harmonious way possible.</b>
|
||||
We hope that in most cases issues may be resolved through polite discussion and
|
||||
mutual agreement.
|
||||
</p>
|
||||
<p>Project maintainers have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, or to ban temporarily or permanently any
|
||||
contributor for other behaviors that they deem inappropriate, threatening,
|
||||
offensive, or harmful.</p>
|
||||
|
||||
<p>
|
||||
Changes to the Code of Conduct (including to the members of the Working Group)
|
||||
should be proposed using the
|
||||
<a href="https://golang.org/s/proposal-process">change proposal process</a>.
|
||||
</p>
|
||||
<h3 id="scope">Scope</h3>
|
||||
|
||||
<p>This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.</p>
|
||||
|
||||
<p>This Code of Conduct also applies outside the project spaces when the Project
|
||||
Steward has a reasonable belief that an individual’s behavior may have a
|
||||
negative impact on the project or its community.</p>
|
||||
|
||||
<h3 id="conflict-resolution"></a>Conflict Resolution</h3>
|
||||
|
||||
<p>We do not believe that all conflict is bad; healthy debate and disagreement
|
||||
often yield positive results. However, it is never okay to be disrespectful or
|
||||
to engage in behavior that violates the project’s code of conduct.</p>
|
||||
|
||||
<p>If you see someone violating the code of conduct, you are encouraged to address
|
||||
the behavior directly with those involved. Many issues can be resolved quickly
|
||||
and easily, and this gives people more control over the outcome of their
|
||||
dispute. If you are unable to resolve the matter for any reason, or if the
|
||||
behavior is threatening or harassing, report it. We are dedicated to providing
|
||||
an environment where participants feel welcome and safe.</p>
|
||||
|
||||
<p id="reporting">Reports should be directed to Cassandra Salisbury, the
|
||||
Go Project Steward, at <i>conduct@golang.org</i>.
|
||||
It is the Project Steward’s duty to
|
||||
receive and address reported violations of the code of conduct. They will then
|
||||
work with a committee consisting of representatives from the Open Source
|
||||
Programs Office and the Google Open Source Strategy team. If for any reason you
|
||||
are uncomfortable reaching out the Project Steward, please email
|
||||
the Google Open Source Programs Office at <i>opensource@google.com</i>.</p>
|
||||
|
||||
<p>We will investigate every complaint, but you may not receive a direct response.
|
||||
We will use our discretion in determining when and how to follow up on reported
|
||||
incidents, which may range from not taking action to permanent expulsion from
|
||||
the project and project-sponsored spaces. We will notify the accused of the
|
||||
report and provide them an opportunity to discuss it before any action is taken.
|
||||
The identity of the reporter will be omitted from the details of the report
|
||||
supplied to the accused. In potentially harmful situations, such as ongoing
|
||||
harassment or threats to anyone’s safety, we may take action without notice.</p>
|
||||
|
||||
<h3 id="attribution">Attribution</h3>
|
||||
|
||||
<p>This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
|
||||
available at
|
||||
<a href="https://www.contributor-covenant.org/version/1/4/code-of-conduct.html">https://www.contributor-covenant.org/version/1/4/code-of-conduct.html</a></p>
|
||||
|
||||
<h2 id="summary">Summary</h2>
|
||||
|
||||
|
|
@ -250,10 +209,3 @@ should be proposed using the
|
|||
<li>Don’t be destructive or inflammatory.
|
||||
<li>If you encounter an issue, please mail <a href="mailto:conduct@golang.org">conduct@golang.org</a>.
|
||||
</ul>
|
||||
|
||||
<h3 id="acknowledgements">Acknowledgements</h3>
|
||||
|
||||
<p>
|
||||
Parts of this document were derived from the Code of Conduct documents of the
|
||||
Django, FreeBSD, and Rust projects.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ analysis easy and avoids much of the overhead of C-style include files and
|
|||
libraries.
|
||||
<li>
|
||||
Go's type system has no hierarchy, so no time is spent defining the
|
||||
relationships between types. Also, although Go has static types the language
|
||||
relationships between types. Also, although Go has static types, the language
|
||||
attempts to make types feel lighter weight than in typical OO languages.
|
||||
<li>
|
||||
Go is fully garbage-collected and provides fundamental support for
|
||||
|
|
|
|||
|
|
@ -21,4 +21,5 @@ and set GOOS to android. For example, to run the go1 benchmarks
|
|||
|
||||
export PATH=$GOROOT/bin:$PATH
|
||||
cd $GOROOT/test/bench/go1/
|
||||
GOOS=android GOARCH=arm64 go test -bench=. -count=N -timeout=T
|
||||
GOOS=android GOARCH=arm64 go test -bench=. -count=N -timeout=T
|
||||
|
||||
|
|
|
|||
|
|
@ -14,10 +14,12 @@ import (
|
|||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func run(args ...string) string {
|
||||
|
|
@ -73,8 +75,8 @@ func main() {
|
|||
|
||||
// Binary names can conflict.
|
||||
// E.g. template.test from the {html,text}/template packages.
|
||||
binName := filepath.Base(os.Args[1])
|
||||
deviceBin := fmt.Sprintf("%s/%s-%d", deviceGotmp, binName, os.Getpid())
|
||||
binName := fmt.Sprintf("%s-%d", filepath.Base(os.Args[1]), os.Getpid())
|
||||
deviceBin := fmt.Sprintf("%s/%s", deviceGotmp, binName)
|
||||
|
||||
// The push of the binary happens in parallel with other tests.
|
||||
// Unfortunately, a simultaneous call to adb shell hold open
|
||||
|
|
@ -85,6 +87,17 @@ func main() {
|
|||
run("shell", "cp '"+deviceBin+"-tmp' '"+deviceBin+"'")
|
||||
run("shell", "rm '"+deviceBin+"-tmp'")
|
||||
|
||||
// Forward SIGQUIT from the go command to show backtraces from
|
||||
// the binary instead of from this wrapper.
|
||||
quit := make(chan os.Signal, 1)
|
||||
signal.Notify(quit, syscall.SIGQUIT)
|
||||
go func() {
|
||||
for range quit {
|
||||
// We don't have the PID of the running process; use the
|
||||
// binary name instead.
|
||||
run("shell", "killall -QUIT "+binName)
|
||||
}
|
||||
}()
|
||||
// The adb shell command will return an exit code of 0 regardless
|
||||
// of the command run. E.g.
|
||||
// $ adb shell false
|
||||
|
|
@ -100,6 +113,8 @@ func main() {
|
|||
"; '" + deviceBin + "' " + strings.Join(os.Args[2:], " ") +
|
||||
"; echo -n " + exitstr + "$?"
|
||||
output := run("shell", cmd)
|
||||
signal.Reset(syscall.SIGQUIT)
|
||||
close(quit)
|
||||
|
||||
run("shell", "rm", "-rf", deviceGotmp) // Clean up.
|
||||
|
||||
|
|
|
|||
|
|
@ -14,17 +14,29 @@ license that can be found in the LICENSE file.
|
|||
<body>
|
||||
<script src="wasm_exec.js"></script>
|
||||
<script>
|
||||
async function loadAndCompile() {
|
||||
let resp = await fetch("test.wasm");
|
||||
let bytes = await resp.arrayBuffer();
|
||||
await go.compile(bytes);
|
||||
document.getElementById("runButton").disabled = false;
|
||||
if (!WebAssembly.instantiateStreaming) { // polyfill
|
||||
WebAssembly.instantiateStreaming = async (resp, importObject) => {
|
||||
const source = await (await resp).arrayBuffer();
|
||||
return await WebAssembly.instantiate(source, importObject);
|
||||
};
|
||||
}
|
||||
|
||||
loadAndCompile();
|
||||
const go = new Go();
|
||||
let mod, inst;
|
||||
WebAssembly.instantiateStreaming(fetch("test.wasm"), go.importObject).then((result) => {
|
||||
mod = result.module;
|
||||
inst = result.instance;
|
||||
document.getElementById("runButton").disabled = false;
|
||||
});
|
||||
|
||||
async function run() {
|
||||
console.clear();
|
||||
await go.run(inst);
|
||||
inst = await WebAssembly.instantiate(mod, go.importObject); // reset instance
|
||||
}
|
||||
</script>
|
||||
|
||||
<button onClick="console.clear(); go.run();" id="runButton" disabled>Run</button>
|
||||
<button onClick="run();" id="runButton" disabled>Run</button>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
|
@ -3,19 +3,10 @@
|
|||
// license that can be found in the LICENSE file.
|
||||
|
||||
(() => {
|
||||
let args = ["js"];
|
||||
|
||||
// Map web browser API and Node.js API to a single common API (preferring web standards over Node.js API).
|
||||
const isNodeJS = typeof process !== "undefined";
|
||||
if (isNodeJS) {
|
||||
if (process.argv.length < 3) {
|
||||
process.stderr.write("usage: go_js_wasm_exec [wasm binary]\n");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
args = args.concat(process.argv.slice(3));
|
||||
global.require = require;
|
||||
|
||||
global.fs = require("fs");
|
||||
|
||||
const nodeCrypto = require("crypto");
|
||||
|
|
@ -40,15 +31,6 @@
|
|||
} else {
|
||||
window.global = window;
|
||||
|
||||
global.process = {
|
||||
env: {},
|
||||
exit(code) {
|
||||
if (code !== 0) {
|
||||
console.warn("exit code:", code);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
let outputBuf = "";
|
||||
global.fs = {
|
||||
constants: {},
|
||||
|
|
@ -67,82 +49,78 @@
|
|||
const encoder = new TextEncoder("utf-8");
|
||||
const decoder = new TextDecoder("utf-8");
|
||||
|
||||
let mod, inst;
|
||||
let values = []; // TODO: garbage collection
|
||||
global.Go = class {
|
||||
constructor() {
|
||||
this.argv = [];
|
||||
this.env = {};
|
||||
this.exit = (code) => {
|
||||
if (code !== 0) {
|
||||
console.warn("exit code:", code);
|
||||
}
|
||||
};
|
||||
|
||||
const mem = () => {
|
||||
// The buffer may change when requesting more memory.
|
||||
return new DataView(inst.exports.mem.buffer);
|
||||
}
|
||||
const mem = () => {
|
||||
// The buffer may change when requesting more memory.
|
||||
return new DataView(this._inst.exports.mem.buffer);
|
||||
}
|
||||
|
||||
const setInt64 = (addr, v) => {
|
||||
mem().setUint32(addr + 0, v, true);
|
||||
mem().setUint32(addr + 4, Math.floor(v / 4294967296), true);
|
||||
}
|
||||
const setInt64 = (addr, v) => {
|
||||
mem().setUint32(addr + 0, v, true);
|
||||
mem().setUint32(addr + 4, Math.floor(v / 4294967296), true);
|
||||
}
|
||||
|
||||
const getInt64 = (addr) => {
|
||||
const low = mem().getUint32(addr + 0, true);
|
||||
const high = mem().getInt32(addr + 4, true);
|
||||
return low + high * 4294967296;
|
||||
}
|
||||
const getInt64 = (addr) => {
|
||||
const low = mem().getUint32(addr + 0, true);
|
||||
const high = mem().getInt32(addr + 4, true);
|
||||
return low + high * 4294967296;
|
||||
}
|
||||
|
||||
const loadValue = (addr) => {
|
||||
const id = mem().getUint32(addr, true);
|
||||
return values[id];
|
||||
}
|
||||
const loadValue = (addr) => {
|
||||
const id = mem().getUint32(addr, true);
|
||||
return this._values[id];
|
||||
}
|
||||
|
||||
const storeValue = (addr, v) => {
|
||||
if (v === undefined) {
|
||||
mem().setUint32(addr, 0, true);
|
||||
return;
|
||||
}
|
||||
if (v === null) {
|
||||
mem().setUint32(addr, 1, true);
|
||||
return;
|
||||
}
|
||||
values.push(v);
|
||||
mem().setUint32(addr, values.length - 1, true);
|
||||
}
|
||||
const storeValue = (addr, v) => {
|
||||
if (v === undefined) {
|
||||
mem().setUint32(addr, 0, true);
|
||||
return;
|
||||
}
|
||||
if (v === null) {
|
||||
mem().setUint32(addr, 1, true);
|
||||
return;
|
||||
}
|
||||
this._values.push(v);
|
||||
mem().setUint32(addr, this._values.length - 1, true);
|
||||
}
|
||||
|
||||
const loadSlice = (addr) => {
|
||||
const array = getInt64(addr + 0);
|
||||
const len = getInt64(addr + 8);
|
||||
return new Uint8Array(inst.exports.mem.buffer, array, len);
|
||||
}
|
||||
const loadSlice = (addr) => {
|
||||
const array = getInt64(addr + 0);
|
||||
const len = getInt64(addr + 8);
|
||||
return new Uint8Array(this._inst.exports.mem.buffer, array, len);
|
||||
}
|
||||
|
||||
const loadSliceOfValues = (addr) => {
|
||||
const array = getInt64(addr + 0);
|
||||
const len = getInt64(addr + 8);
|
||||
const a = new Array(len);
|
||||
for (let i = 0; i < len; i++) {
|
||||
const id = mem().getUint32(array + i * 4, true);
|
||||
a[i] = values[id];
|
||||
}
|
||||
return a;
|
||||
}
|
||||
const loadSliceOfValues = (addr) => {
|
||||
const array = getInt64(addr + 0);
|
||||
const len = getInt64(addr + 8);
|
||||
const a = new Array(len);
|
||||
for (let i = 0; i < len; i++) {
|
||||
const id = mem().getUint32(array + i * 4, true);
|
||||
a[i] = this._values[id];
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
const loadString = (addr) => {
|
||||
const saddr = getInt64(addr + 0);
|
||||
const len = getInt64(addr + 8);
|
||||
return decoder.decode(new DataView(inst.exports.mem.buffer, saddr, len));
|
||||
}
|
||||
const loadString = (addr) => {
|
||||
const saddr = getInt64(addr + 0);
|
||||
const len = getInt64(addr + 8);
|
||||
return decoder.decode(new DataView(this._inst.exports.mem.buffer, saddr, len));
|
||||
}
|
||||
|
||||
global.go = {
|
||||
async compileAndRun(source) {
|
||||
await go.compile(source);
|
||||
await go.run();
|
||||
},
|
||||
|
||||
async compile(source) {
|
||||
mod = await WebAssembly.compile(source);
|
||||
},
|
||||
|
||||
async run() {
|
||||
let importObject = {
|
||||
this.importObject = {
|
||||
go: {
|
||||
// func wasmExit(code int32)
|
||||
"runtime.wasmExit": (sp) => {
|
||||
process.exit(mem().getInt32(sp + 8, true));
|
||||
this.exit(mem().getInt32(sp + 8, true));
|
||||
},
|
||||
|
||||
// func wasmWrite(fd uintptr, p unsafe.Pointer, n int32)
|
||||
|
|
@ -150,7 +128,7 @@
|
|||
const fd = getInt64(sp + 8);
|
||||
const p = getInt64(sp + 16);
|
||||
const n = mem().getInt32(sp + 24, true);
|
||||
fs.writeSync(fd, new Uint8Array(inst.exports.mem.buffer, p, n));
|
||||
fs.writeSync(fd, new Uint8Array(this._inst.exports.mem.buffer, p, n));
|
||||
},
|
||||
|
||||
// func nanotime() int64
|
||||
|
|
@ -283,51 +261,61 @@
|
|||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
inst = await WebAssembly.instantiate(mod, importObject);
|
||||
values = [undefined, null, global, inst.exports.mem];
|
||||
async run(instance) {
|
||||
this._inst = instance;
|
||||
this._values = [undefined, null, global, this._inst.exports.mem]; // TODO: garbage collection
|
||||
|
||||
const mem = new DataView(this._inst.exports.mem.buffer)
|
||||
|
||||
// Pass command line arguments and environment variables to WebAssembly by writing them to the linear memory.
|
||||
let offset = 4096;
|
||||
|
||||
const strPtr = (str) => {
|
||||
let ptr = offset;
|
||||
new Uint8Array(inst.exports.mem.buffer, offset, str.length + 1).set(encoder.encode(str + "\0"));
|
||||
new Uint8Array(mem.buffer, offset, str.length + 1).set(encoder.encode(str + "\0"));
|
||||
offset += str.length + (8 - (str.length % 8));
|
||||
return ptr;
|
||||
};
|
||||
|
||||
const argc = args.length;
|
||||
const argc = this.argv.length;
|
||||
|
||||
const argvPtrs = [];
|
||||
args.forEach((arg) => {
|
||||
this.argv.forEach((arg) => {
|
||||
argvPtrs.push(strPtr(arg));
|
||||
});
|
||||
|
||||
const keys = Object.keys(process.env).sort();
|
||||
const keys = Object.keys(this.env).sort();
|
||||
argvPtrs.push(keys.length);
|
||||
keys.forEach((key) => {
|
||||
argvPtrs.push(strPtr(`${key}=${process.env[key]}`));
|
||||
argvPtrs.push(strPtr(`${key}=${this.env[key]}`));
|
||||
});
|
||||
|
||||
const argv = offset;
|
||||
argvPtrs.forEach((ptr) => {
|
||||
mem().setUint32(offset, ptr, true);
|
||||
mem().setUint32(offset + 4, 0, true);
|
||||
mem.setUint32(offset, ptr, true);
|
||||
mem.setUint32(offset + 4, 0, true);
|
||||
offset += 8;
|
||||
});
|
||||
|
||||
try {
|
||||
inst.exports.run(argc, argv);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
this._inst.exports.run(argc, argv);
|
||||
}
|
||||
}
|
||||
|
||||
if (isNodeJS) {
|
||||
go.compileAndRun(fs.readFileSync(process.argv[2])).catch((err) => {
|
||||
if (process.argv.length < 3) {
|
||||
process.stderr.write("usage: go_js_wasm_exec [wasm binary] [arguments]\n");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const go = new Go();
|
||||
go.argv = process.argv.slice(2);
|
||||
go.env = process.env;
|
||||
go.exit = process.exit;
|
||||
WebAssembly.instantiate(fs.readFileSync(process.argv[2]), go.importObject).then((result) => {
|
||||
return go.run(result.instance);
|
||||
}).catch((err) => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import (
|
|||
"cmd/asm/internal/flags"
|
||||
"cmd/asm/internal/lex"
|
||||
"cmd/internal/obj"
|
||||
"cmd/internal/obj/x86"
|
||||
"cmd/internal/objabi"
|
||||
"cmd/internal/sys"
|
||||
)
|
||||
|
|
@ -38,6 +39,12 @@ func (p *Parser) append(prog *obj.Prog, cond string, doLabel bool) {
|
|||
return
|
||||
}
|
||||
|
||||
case sys.AMD64, sys.I386:
|
||||
if err := x86.ParseSuffix(prog, cond); err != nil {
|
||||
p.errorf("%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
default:
|
||||
p.errorf("unrecognized suffix .%q", cond)
|
||||
return
|
||||
|
|
@ -740,6 +747,12 @@ func (p *Parser) asmInstruction(op obj.As, cond string, a []obj.Addr) {
|
|||
prog.To = a[4]
|
||||
break
|
||||
}
|
||||
if p.arch.Family == sys.AMD64 {
|
||||
prog.From = a[0]
|
||||
prog.RestArgs = []obj.Addr{a[1], a[2], a[3]}
|
||||
prog.To = a[4]
|
||||
break
|
||||
}
|
||||
p.errorf("can't handle %s instruction with 5 operands", op)
|
||||
return
|
||||
case 6:
|
||||
|
|
|
|||
|
|
@ -97,10 +97,6 @@ var badExprTests = []badExprTest{
|
|||
}
|
||||
|
||||
func TestBadExpr(t *testing.T) {
|
||||
panicOnError = true
|
||||
defer func() {
|
||||
panicOnError = false
|
||||
}()
|
||||
for i, test := range badExprTests {
|
||||
err := runBadTest(i, test, t)
|
||||
if err == nil {
|
||||
|
|
@ -119,13 +115,7 @@ func TestBadExpr(t *testing.T) {
|
|||
func runBadTest(i int, test badExprTest, t *testing.T) (err error) {
|
||||
p := NewParser(nil, nil, nil) // Expression evaluation uses none of these fields of the parser.
|
||||
p.start(lex.Tokenize(test.input))
|
||||
defer func() {
|
||||
e := recover()
|
||||
var ok bool
|
||||
if err, ok = e.(error); e != nil && !ok {
|
||||
t.Fatal(e)
|
||||
}
|
||||
}()
|
||||
p.expr()
|
||||
return nil
|
||||
return tryParse(t, func() {
|
||||
p.expr()
|
||||
})
|
||||
}
|
||||
|
|
|
|||
52
src/cmd/asm/internal/asm/line_test.go
Normal file
52
src/cmd/asm/internal/asm/line_test.go
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package asm
|
||||
|
||||
import (
|
||||
"cmd/asm/internal/lex"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type badInstTest struct {
|
||||
input, error string
|
||||
}
|
||||
|
||||
func TestAMD64BadInstParser(t *testing.T) {
|
||||
testBadInstParser(t, "amd64", []badInstTest{
|
||||
// Test AVX512 suffixes.
|
||||
{"VADDPD.A X0, X1, X2", `unknown suffix "A"`},
|
||||
{"VADDPD.A.A X0, X1, X2", `unknown suffix "A"; duplicate suffix "A"`},
|
||||
{"VADDPD.A.A.A X0, X1, X2", `unknown suffix "A"; duplicate suffix "A"`},
|
||||
{"VADDPD.A.B X0, X1, X2", `unknown suffix "A"; unknown suffix "B"`},
|
||||
{"VADDPD.Z.A X0, X1, X2", `Z suffix should be the last; unknown suffix "A"`},
|
||||
{"VADDPD.Z.Z X0, X1, X2", `Z suffix should be the last; duplicate suffix "Z"`},
|
||||
{"VADDPD.SAE.BCST X0, X1, X2", `can't combine rounding/SAE and broadcast`},
|
||||
{"VADDPD.BCST.SAE X0, X1, X2", `can't combine rounding/SAE and broadcast`},
|
||||
{"VADDPD.BCST.Z.SAE X0, X1, X2", `Z suffix should be the last; can't combine rounding/SAE and broadcast`},
|
||||
{"VADDPD.SAE.SAE X0, X1, X2", `duplicate suffix "SAE"`},
|
||||
{"VADDPD.RZ_SAE.SAE X0, X1, X2", `bad suffix combination`},
|
||||
})
|
||||
}
|
||||
|
||||
func testBadInstParser(t *testing.T, goarch string, tests []badInstTest) {
|
||||
for i, test := range tests {
|
||||
arch, ctxt := setArch(goarch)
|
||||
tokenizer := lex.NewTokenizer("", strings.NewReader(test.input+"\n"), nil)
|
||||
parser := NewParser(ctxt, arch, tokenizer)
|
||||
|
||||
err := tryParse(t, func() {
|
||||
parser.start(lex.Tokenize(test.input))
|
||||
parser.line()
|
||||
})
|
||||
|
||||
switch {
|
||||
case err == nil:
|
||||
t.Errorf("#%d: %q: want error %q; have none", i, test.input, test.error)
|
||||
case !strings.Contains(err.Error(), test.error):
|
||||
t.Errorf("#%d: %q: want error %q; have %q", i, test.input, test.error, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@
|
|||
package asm
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"cmd/asm/internal/arch"
|
||||
|
|
@ -30,6 +31,45 @@ func newParser(goarch string) *Parser {
|
|||
return NewParser(ctxt, architecture, nil)
|
||||
}
|
||||
|
||||
// tryParse executes parse func in panicOnError=true context.
|
||||
// parse is expected to call any parsing methods that may panic.
|
||||
// Returns error gathered from recover; nil if no parse errors occured.
|
||||
//
|
||||
// For unexpected panics, calls t.Fatal.
|
||||
func tryParse(t *testing.T, parse func()) (err error) {
|
||||
panicOnError = true
|
||||
defer func() {
|
||||
panicOnError = false
|
||||
|
||||
e := recover()
|
||||
var ok bool
|
||||
if err, ok = e.(error); e != nil && !ok {
|
||||
t.Fatal(e)
|
||||
}
|
||||
}()
|
||||
|
||||
parse()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func testBadOperandParser(t *testing.T, parser *Parser, tests []badOperandTest) {
|
||||
for _, test := range tests {
|
||||
err := tryParse(t, func() {
|
||||
parser.start(lex.Tokenize(test.input))
|
||||
addr := obj.Addr{}
|
||||
parser.operand(&addr)
|
||||
})
|
||||
|
||||
switch {
|
||||
case err == nil:
|
||||
t.Errorf("fail at %s: got no errors; expected %s\n", test.input, test.error)
|
||||
case !strings.Contains(err.Error(), test.error):
|
||||
t.Errorf("fail at %s: got %s; expected %s", test.input, err, test.error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func testOperandParser(t *testing.T, parser *Parser, tests []operandTest) {
|
||||
for _, test := range tests {
|
||||
parser.start(lex.Tokenize(test.input))
|
||||
|
|
@ -45,6 +85,7 @@ func testOperandParser(t *testing.T, parser *Parser, tests []operandTest) {
|
|||
func TestAMD64OperandParser(t *testing.T) {
|
||||
parser := newParser("amd64")
|
||||
testOperandParser(t, parser, amd64OperandTests)
|
||||
testBadOperandParser(t, parser, amd64BadOperandTests)
|
||||
}
|
||||
|
||||
func Test386OperandParser(t *testing.T) {
|
||||
|
|
@ -85,6 +126,10 @@ type operandTest struct {
|
|||
input, output string
|
||||
}
|
||||
|
||||
type badOperandTest struct {
|
||||
input, error string
|
||||
}
|
||||
|
||||
// Examples collected by scanning all the assembly in the standard repo.
|
||||
|
||||
var amd64OperandTests = []operandTest{
|
||||
|
|
@ -202,9 +247,28 @@ var amd64OperandTests = []operandTest{
|
|||
{"y+56(FP)", "y+56(FP)"},
|
||||
{"·AddUint32(SB)", "\"\".AddUint32(SB)"},
|
||||
{"·callReflect(SB)", "\"\".callReflect(SB)"},
|
||||
{"[X0-X0]", "[X0-X0]"},
|
||||
{"[ Z9 - Z12 ]", "[Z9-Z12]"},
|
||||
{"[X0-AX]", "[X0-AX]"},
|
||||
{"[AX-X0]", "[AX-X0]"},
|
||||
{"[):[o-FP", ""}, // Issue 12469 - asm hung parsing the o-FP range on non ARM platforms.
|
||||
}
|
||||
|
||||
var amd64BadOperandTests = []badOperandTest{
|
||||
{"[", "register list: expected ']', found EOF"},
|
||||
{"[4", "register list: bad low register in `[4`"},
|
||||
{"[]", "register list: bad low register in `[]`"},
|
||||
{"[f-x]", "register list: bad low register in `[f`"},
|
||||
{"[r10-r13]", "register list: bad low register in `[r10`"},
|
||||
{"[k3-k6]", "register list: bad low register in `[k3`"},
|
||||
{"[X0]", "register list: expected '-' after `[X0`, found ']'"},
|
||||
{"[X0-]", "register list: bad high register in `[X0-]`"},
|
||||
{"[X0-x]", "register list: bad high register in `[X0-x`"},
|
||||
{"[X0-X1-X2]", "register list: expected ']' after `[X0-X1`, found '-'"},
|
||||
{"[X0,X3]", "register list: expected '-' after `[X0`, found ','"},
|
||||
{"[X0,X1,X2,X3]", "register list: expected '-' after `[X0`, found ','"},
|
||||
}
|
||||
|
||||
var x86OperandTests = []operandTest{
|
||||
{"$(2.928932188134524e-01)", "$(0.29289321881345243)"},
|
||||
{"$-1", "$-1"},
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import (
|
|||
"cmd/asm/internal/flags"
|
||||
"cmd/asm/internal/lex"
|
||||
"cmd/internal/obj"
|
||||
"cmd/internal/obj/x86"
|
||||
"cmd/internal/src"
|
||||
"cmd/internal/sys"
|
||||
)
|
||||
|
|
@ -134,12 +135,12 @@ func (p *Parser) line() bool {
|
|||
for {
|
||||
tok = p.lex.Next()
|
||||
if len(operands) == 0 && len(items) == 0 {
|
||||
if p.arch.InFamily(sys.ARM, sys.ARM64) && tok == '.' {
|
||||
// ARM conditionals.
|
||||
if p.arch.InFamily(sys.ARM, sys.ARM64, sys.AMD64, sys.I386) && tok == '.' {
|
||||
// Suffixes: ARM conditionals or x86 modifiers.
|
||||
tok = p.lex.Next()
|
||||
str := p.lex.Text()
|
||||
if tok != scanner.Ident {
|
||||
p.errorf("ARM condition expected identifier, found %s", str)
|
||||
p.errorf("instruction suffix expected identifier, found %s", str)
|
||||
}
|
||||
cond = cond + "." + str
|
||||
continue
|
||||
|
|
@ -827,8 +828,25 @@ func (p *Parser) registerIndirect(a *obj.Addr, prefix rune) {
|
|||
// registers, as in [R1,R3-R5] or [V1.S4, V2.S4, V3.S4, V4.S4].
|
||||
// For ARM, only R0 through R15 may appear.
|
||||
// For ARM64, V0 through V31 with arrangement may appear.
|
||||
//
|
||||
// For 386/AMD64 register list specifies 4VNNIW-style multi-source operand.
|
||||
// For range of 4 elements, Intel manual uses "+3" notation, for example:
|
||||
// VP4DPWSSDS zmm1{k1}{z}, zmm2+3, m128
|
||||
// Given asm line:
|
||||
// VP4DPWSSDS Z5, [Z10-Z13], (AX)
|
||||
// zmm2 is Z10, and Z13 is the only valid value for it (Z10+3).
|
||||
// Only simple ranges are accepted, like [Z0-Z3].
|
||||
//
|
||||
// The opening bracket has been consumed.
|
||||
func (p *Parser) registerList(a *obj.Addr) {
|
||||
if p.arch.InFamily(sys.I386, sys.AMD64) {
|
||||
p.registerListX86(a)
|
||||
} else {
|
||||
p.registerListARM(a)
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Parser) registerListARM(a *obj.Addr) {
|
||||
// One range per loop.
|
||||
var maxReg int
|
||||
var bits uint16
|
||||
|
|
@ -923,6 +941,39 @@ ListLoop:
|
|||
}
|
||||
}
|
||||
|
||||
func (p *Parser) registerListX86(a *obj.Addr) {
|
||||
// Accept only [RegA-RegB] syntax.
|
||||
// Don't use p.get() to provide better error messages.
|
||||
|
||||
loName := p.next().String()
|
||||
lo, ok := p.arch.Register[loName]
|
||||
if !ok {
|
||||
if loName == "EOF" {
|
||||
p.errorf("register list: expected ']', found EOF")
|
||||
} else {
|
||||
p.errorf("register list: bad low register in `[%s`", loName)
|
||||
}
|
||||
return
|
||||
}
|
||||
if tok := p.next().ScanToken; tok != '-' {
|
||||
p.errorf("register list: expected '-' after `[%s`, found %s", loName, tok)
|
||||
return
|
||||
}
|
||||
hiName := p.next().String()
|
||||
hi, ok := p.arch.Register[hiName]
|
||||
if !ok {
|
||||
p.errorf("register list: bad high register in `[%s-%s`", loName, hiName)
|
||||
return
|
||||
}
|
||||
if tok := p.next().ScanToken; tok != ']' {
|
||||
p.errorf("register list: expected ']' after `[%s-%s`, found %s", loName, hiName, tok)
|
||||
}
|
||||
|
||||
a.Type = obj.TYPE_REGLIST
|
||||
a.Reg = lo
|
||||
a.Offset = x86.EncodeRegisterRange(lo, hi)
|
||||
}
|
||||
|
||||
// register number is ARM-specific. It returns the number of the specified register.
|
||||
func (p *Parser) registerNumber(name string) uint16 {
|
||||
if p.arch.Family == sys.ARM && name == "g" {
|
||||
|
|
|
|||
|
|
@ -317,5 +317,59 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0
|
|||
PUSHQ FS // 0fa0
|
||||
POPQ FS // 0fa1
|
||||
POPQ GS // 0fa9
|
||||
// All instructions below semantically have unsigned operands,
|
||||
// but previous assembler permitted negative arguments.
|
||||
// This behavior is preserved for compatibility reasons.
|
||||
VPSHUFD $-79, X7, X7 // c5f970ffb1
|
||||
RORXL $-1, (AX), DX // c4e37bf010ff
|
||||
RORXQ $-1, (AX), DX // c4e3fbf010ff
|
||||
VPSHUFD $-1, X1, X2 // c5f970d1ff
|
||||
VPSHUFD $-1, Y1, Y2 // c5fd70d1ff
|
||||
VPSHUFHW $-1, X1, X2 // c5fa70d1ff
|
||||
VPSHUFHW $-1, Y1, Y2 // c5fe70d1ff
|
||||
VPSHUFLW $-1, X1, X2 // c5fb70d1ff
|
||||
VPSHUFLW $-1, Y1, Y2 // c5ff70d1ff
|
||||
VROUNDPD $-1, X1, X2 // c4e37909d1ff
|
||||
VROUNDPS $-1, Y1, Y2 // c4e37d08d1ff
|
||||
VPSLLD $-1, X1, X2 // c5e972f1ff
|
||||
VPSLLD $-1, Y1, Y2 // c5ed72f1ff
|
||||
VPSLLDQ $-1, X1, X2 // c5e973f9ff
|
||||
VPSLLDQ $-1, Y1, Y2 // c5ed73f9ff
|
||||
VPSLLQ $-1, X1, X2 // c5e973f1ff
|
||||
VPSLLQ $-1, Y1, Y2 // c5ed73f1ff
|
||||
VPSRLD $-1, X1, X2 // c5e972d1ff
|
||||
VPSRLD $-1, Y1, Y2 // c5ed72d1ff
|
||||
VPSRLDQ $-1, X1, X2 // c5e973d9ff
|
||||
VPSRLDQ $-1, Y1, Y2 // c5ed73d9ff
|
||||
VPSRLQ $-1, X1, X2 // c5e973d1ff
|
||||
VPSRLQ $-1, Y1, Y2 // c5ed73d1ff
|
||||
VPEXTRW $-1, X1, (AX) // c4e3791508ff
|
||||
VPEXTRW $-1, X1, AX // c4e37915c8ff
|
||||
VEXTRACTF128 $-1, Y1, X2 // c4e37d19caff
|
||||
VEXTRACTI128 $-1, Y1, X2 // c4e37d39caff
|
||||
VAESKEYGENASSIST $-1, X1, X2 // c4e379dfd1ff
|
||||
VPCMPESTRI $-1, X1, X2 // c4e37961d1ff
|
||||
VPCMPESTRM $-1, X1, X2 // c4e37960d1ff
|
||||
VPCMPISTRI $-1, X1, X2 // c4e37963d1ff
|
||||
VPCMPISTRM $-1, X1, X2 // c4e37962d1ff
|
||||
VPERMPD $-1, Y1, Y2 // c4e3fd01d1ff
|
||||
VPERMILPD $-1, X1, X2 // c4e37905d1ff
|
||||
VPERMILPD $-1, Y1, Y2 // c4e37d05d1ff
|
||||
VPERMILPS $-1, X1, X2 // c4e37904d1ff
|
||||
VPERMILPS $-1, Y1, Y2 // c4e37d04d1ff
|
||||
VCVTPS2PH $-1, X1, X2 // c4e3791dcaff
|
||||
VCVTPS2PH $-1, Y1, X2 // c4e37d1dcaff
|
||||
VPSLLW $-1, X1, X2 // c5e971f1ff
|
||||
VPSLLW $-1, Y1, Y2 // c5ed71f1ff
|
||||
VPSRAD $-1, X1, X2 // c5e972e1ff
|
||||
VPSRAD $-1, Y1, Y2 // c5ed72e1ff
|
||||
VPSRAW $-1, X1, X2 // c5e971e1ff
|
||||
VPSRAW $-1, Y1, Y2 // c5ed71e1ff
|
||||
VPSRLW $-1, X1, X1 // c5f171d1ff
|
||||
VPSRLW $-1, Y1, Y2 // c5ed71d1ff
|
||||
VEXTRACTPS $-1, X1, AX // c4e37917c8ff
|
||||
VPEXTRB $-1, X1, AX // c4e37914c8ff
|
||||
VPEXTRD $-1, X1, AX // c4e37916c8ff
|
||||
VPEXTRQ $-1, X1, AX // c4e3f916c8ff
|
||||
// End of tests.
|
||||
RET
|
||||
|
|
|
|||
62
src/cmd/asm/internal/asm/testdata/amd64error.s
vendored
62
src/cmd/asm/internal/asm/testdata/amd64error.s
vendored
|
|
@ -23,6 +23,10 @@ TEXT errors(SB),$0
|
|||
// No VSIB for legacy instructions.
|
||||
MOVL (AX)(X0*1), AX // ERROR "invalid instruction"
|
||||
MOVL (AX)(Y0*1), AX // ERROR "invalid instruction"
|
||||
// VSIB/VM is invalid without vector index.
|
||||
// TODO(quasilyte): improve error message (#21860).
|
||||
// "invalid VSIB address (missing vector index)"
|
||||
VPGATHERQQ Y2, (BP), Y1 // ERROR "invalid instruction"
|
||||
// AVX2GATHER mask/index/dest #UD cases.
|
||||
VPGATHERQQ Y2, (BP)(X2*2), Y2 // ERROR "mask, index, and destination registers should be distinct"
|
||||
VPGATHERQQ Y2, (BP)(X2*2), Y7 // ERROR "mask, index, and destination registers should be distinct"
|
||||
|
|
@ -70,4 +74,62 @@ TEXT errors(SB),$0
|
|||
MOVQ (AX), DR3 // ERROR "invalid instruction"
|
||||
MOVQ (AX), DR6 // ERROR "invalid instruction"
|
||||
MOVQ (AX), DR7 // ERROR "invalid instruction"
|
||||
// AVX512GATHER index/index #UD cases.
|
||||
VPGATHERQQ (BP)(X2*2), K1, X2 // ERROR "index and destination registers should be distinct"
|
||||
VPGATHERQQ (BP)(Y15*2), K1, Y15 // ERROR "index and destination registers should be distinct"
|
||||
VPGATHERQQ (BP)(Z20*2), K1, Z20 // ERROR "index and destination registers should be distinct"
|
||||
VPGATHERDQ (BP)(X2*2), K1, X2 // ERROR "index and destination registers should be distinct"
|
||||
VPGATHERDQ (BP)(X15*2), K1, Y15 // ERROR "index and destination registers should be distinct"
|
||||
VPGATHERDQ (BP)(Y20*2), K1, Z20 // ERROR "index and destination registers should be distinct"
|
||||
// Instructions without EVEX variant can't use High-16 registers.
|
||||
VADDSUBPD X20, X1, X2 // ERROR "invalid instruction"
|
||||
VADDSUBPS X0, X20, X2 // ERROR "invalid instruction"
|
||||
// Use of K0 for write mask (Yknot0).
|
||||
// TODO(quasilyte): improve error message (#21860).
|
||||
// "K0 can't be used for write mask"
|
||||
VADDPD X0, X1, K0, X2 // ERROR "invalid instruction"
|
||||
VADDPD Y0, Y1, K0, Y2 // ERROR "invalid instruction"
|
||||
VADDPD Z0, Z1, K0, Z2 // ERROR "invalid instruction"
|
||||
// VEX-encoded VSIB can't use High-16 registers as index (unlike EVEX).
|
||||
// TODO(quasilyte): improve error message (#21860).
|
||||
VPGATHERQQ X2, (BP)(X20*2), X3 // ERROR "invalid instruction"
|
||||
VPGATHERQQ Y2, (BP)(Y20*2), Y3 // ERROR "invalid instruction"
|
||||
// YzrMulti4 expects exactly 4 registers referenced by REG_LIST.
|
||||
// TODO(quasilyte): improve error message (#21860).
|
||||
V4FMADDPS (AX), [Z0-Z4], K1, Z7 // ERROR "invalid instruction"
|
||||
V4FMADDPS (AX), [Z0-Z0], K1, Z7 // ERROR "invalid instruction"
|
||||
// Invalid ranges in REG_LIST (low > high).
|
||||
// TODO(quasilyte): improve error message (#21860).
|
||||
V4FMADDPS (AX), [Z4-Z0], K1, Z7 // ERROR "invalid instruction"
|
||||
V4FMADDPS (AX), [Z1-Z0], K1, Z7 // ERROR "invalid instruction"
|
||||
// Mismatching registers in a range.
|
||||
// TODO(quasilyte): improve error message (#21860).
|
||||
V4FMADDPS (AX), [AX-Z3], K1, Z7 // ERROR "invalid instruction"
|
||||
V4FMADDPS (AX), [Z0-AX], K1, Z7 // ERROR "invalid instruction"
|
||||
// Usage of suffixes for non-EVEX instructions.
|
||||
ADCB.Z $7, AL // ERROR "invalid instruction"
|
||||
ADCB.RU_SAE $7, AL // ERROR "invalid instruction"
|
||||
ADCB.RU_SAE.Z $7, AL // ERROR "invalid instruction"
|
||||
// Usage of rounding with invalid operands.
|
||||
VADDPD.RU_SAE X3, X2, K1, X1 // ERROR "unsupported rounding"
|
||||
VADDPD.RD_SAE X3, X2, K1, X1 // ERROR "unsupported rounding"
|
||||
VADDPD.RZ_SAE X3, X2, K1, X1 // ERROR "unsupported rounding"
|
||||
VADDPD.RN_SAE X3, X2, K1, X1 // ERROR "unsupported rounding"
|
||||
VADDPD.RU_SAE Y3, Y2, K1, Y1 // ERROR "unsupported rounding"
|
||||
VADDPD.RD_SAE Y3, Y2, K1, Y1 // ERROR "unsupported rounding"
|
||||
VADDPD.RZ_SAE Y3, Y2, K1, Y1 // ERROR "unsupported rounding"
|
||||
VADDPD.RN_SAE Y3, Y2, K1, Y1 // ERROR "unsupported rounding"
|
||||
// Unsupported SAE.
|
||||
VMAXPD.SAE (AX), Z2, K1, Z1 // ERROR "illegal SAE with memory argument"
|
||||
VADDPD.SAE X3, X2, K1, X1 // ERROR "unsupported SAE"
|
||||
// Unsupported zeroing.
|
||||
VFPCLASSPDX.Z $0, (AX), K2, K1 // ERROR "unsupported zeroing"
|
||||
VFPCLASSPDY.Z $0, (AX), K2, K1 // ERROR "unsupported zeroing"
|
||||
// Unsupported broadcast.
|
||||
VFPCLASSSD.BCST $0, (AX), K2, K1 // ERROR "unsupported broadcast"
|
||||
VFPCLASSSS.BCST $0, (AX), K2, K1 // ERROR "unsupported broadcast"
|
||||
// Broadcast without memory operand.
|
||||
VADDPD.BCST X3, X2, K1, X1 // ERROR "illegal broadcast without memory argument"
|
||||
VADDPD.BCST X3, X2, K1, X1 // ERROR "illegal broadcast without memory argument"
|
||||
VADDPD.BCST X3, X2, K1, X1 // ERROR "illegal broadcast without memory argument"
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -3,334 +3,334 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_aes_avx512f(SB), NOSPLIT, $0
|
||||
//TODO: VAESDEC X24, X7, X11 // 62124508ded8 or 6212c508ded8
|
||||
//TODO: VAESDEC X20, X7, X11 // 62324508dedc or 6232c508dedc
|
||||
//TODO: VAESDEC X24, X0, X11 // 62127d08ded8 or 6212fd08ded8
|
||||
//TODO: VAESDEC X20, X0, X11 // 62327d08dedc or 6232fd08dedc
|
||||
//TODO: VAESDEC X24, X7, X31 // 62024508def8 or 6202c508def8
|
||||
//TODO: VAESDEC X20, X7, X31 // 62224508defc or 6222c508defc
|
||||
//TODO: VAESDEC X7, X7, X31 // 62624508deff or 6262c508deff
|
||||
//TODO: VAESDEC -7(DI)(R8*1), X7, X31 // 62224508debc07f9ffffff or 6222c508debc07f9ffffff
|
||||
//TODO: VAESDEC (SP), X7, X31 // 62624508de3c24 or 6262c508de3c24
|
||||
//TODO: VAESDEC X24, X0, X31 // 62027d08def8 or 6202fd08def8
|
||||
//TODO: VAESDEC X20, X0, X31 // 62227d08defc or 6222fd08defc
|
||||
//TODO: VAESDEC X7, X0, X31 // 62627d08deff or 6262fd08deff
|
||||
//TODO: VAESDEC -7(DI)(R8*1), X0, X31 // 62227d08debc07f9ffffff or 6222fd08debc07f9ffffff
|
||||
//TODO: VAESDEC (SP), X0, X31 // 62627d08de3c24 or 6262fd08de3c24
|
||||
//TODO: VAESDEC X24, X7, X3 // 62924508ded8 or 6292c508ded8
|
||||
//TODO: VAESDEC X20, X7, X3 // 62b24508dedc or 62b2c508dedc
|
||||
//TODO: VAESDEC X24, X0, X3 // 62927d08ded8 or 6292fd08ded8
|
||||
//TODO: VAESDEC X20, X0, X3 // 62b27d08dedc or 62b2fd08dedc
|
||||
//TODO: VAESDEC Y5, Y31, Y22 // 62e20520def5 or 62e28520def5
|
||||
//TODO: VAESDEC Y19, Y31, Y22 // 62a20520def3 or 62a28520def3
|
||||
//TODO: VAESDEC Y31, Y31, Y22 // 62820520def7 or 62828520def7
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Y31, Y22 // 62820520deb43f63000000 or 62828520deb43f63000000
|
||||
//TODO: VAESDEC (DX), Y31, Y22 // 62e20520de32 or 62e28520de32
|
||||
//TODO: VAESDEC Y5, Y5, Y22 // 62e25528def5 or 62e2d528def5
|
||||
//TODO: VAESDEC Y19, Y5, Y22 // 62a25528def3 or 62a2d528def3
|
||||
//TODO: VAESDEC Y31, Y5, Y22 // 62825528def7 or 6282d528def7
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Y5, Y22 // 62825528deb43f63000000 or 6282d528deb43f63000000
|
||||
//TODO: VAESDEC (DX), Y5, Y22 // 62e25528de32 or 62e2d528de32
|
||||
//TODO: VAESDEC Y5, Y0, Y22 // 62e27d28def5 or 62e2fd28def5
|
||||
//TODO: VAESDEC Y19, Y0, Y22 // 62a27d28def3 or 62a2fd28def3
|
||||
//TODO: VAESDEC Y31, Y0, Y22 // 62827d28def7 or 6282fd28def7
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Y0, Y22 // 62827d28deb43f63000000 or 6282fd28deb43f63000000
|
||||
//TODO: VAESDEC (DX), Y0, Y22 // 62e27d28de32 or 62e2fd28de32
|
||||
//TODO: VAESDEC Y5, Y31, Y9 // 62720520decd or 62728520decd
|
||||
//TODO: VAESDEC Y19, Y31, Y9 // 62320520decb or 62328520decb
|
||||
//TODO: VAESDEC Y31, Y31, Y9 // 62120520decf or 62128520decf
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Y31, Y9 // 62120520de8c3f63000000 or 62128520de8c3f63000000
|
||||
//TODO: VAESDEC (DX), Y31, Y9 // 62720520de0a or 62728520de0a
|
||||
//TODO: VAESDEC Y19, Y5, Y9 // 62325528decb or 6232d528decb
|
||||
//TODO: VAESDEC Y31, Y5, Y9 // 62125528decf or 6212d528decf
|
||||
//TODO: VAESDEC Y19, Y0, Y9 // 62327d28decb or 6232fd28decb
|
||||
//TODO: VAESDEC Y31, Y0, Y9 // 62127d28decf or 6212fd28decf
|
||||
//TODO: VAESDEC Y5, Y31, Y23 // 62e20520defd or 62e28520defd
|
||||
//TODO: VAESDEC Y19, Y31, Y23 // 62a20520defb or 62a28520defb
|
||||
//TODO: VAESDEC Y31, Y31, Y23 // 62820520deff or 62828520deff
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Y31, Y23 // 62820520debc3f63000000 or 62828520debc3f63000000
|
||||
//TODO: VAESDEC (DX), Y31, Y23 // 62e20520de3a or 62e28520de3a
|
||||
//TODO: VAESDEC Y5, Y5, Y23 // 62e25528defd or 62e2d528defd
|
||||
//TODO: VAESDEC Y19, Y5, Y23 // 62a25528defb or 62a2d528defb
|
||||
//TODO: VAESDEC Y31, Y5, Y23 // 62825528deff or 6282d528deff
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Y5, Y23 // 62825528debc3f63000000 or 6282d528debc3f63000000
|
||||
//TODO: VAESDEC (DX), Y5, Y23 // 62e25528de3a or 62e2d528de3a
|
||||
//TODO: VAESDEC Y5, Y0, Y23 // 62e27d28defd or 62e2fd28defd
|
||||
//TODO: VAESDEC Y19, Y0, Y23 // 62a27d28defb or 62a2fd28defb
|
||||
//TODO: VAESDEC Y31, Y0, Y23 // 62827d28deff or 6282fd28deff
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Y0, Y23 // 62827d28debc3f63000000 or 6282fd28debc3f63000000
|
||||
//TODO: VAESDEC (DX), Y0, Y23 // 62e27d28de3a or 62e2fd28de3a
|
||||
//TODO: VAESDEC Z27, Z3, Z11 // 62126548dedb or 6212e548dedb
|
||||
//TODO: VAESDEC Z15, Z3, Z11 // 62526548dedf or 6252e548dedf
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Z3, Z11 // 62126548de9c3f63000000 or 6212e548de9c3f63000000
|
||||
//TODO: VAESDEC (DX), Z3, Z11 // 62726548de1a or 6272e548de1a
|
||||
//TODO: VAESDEC Z27, Z12, Z11 // 62121d48dedb or 62129d48dedb
|
||||
//TODO: VAESDEC Z15, Z12, Z11 // 62521d48dedf or 62529d48dedf
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Z12, Z11 // 62121d48de9c3f63000000 or 62129d48de9c3f63000000
|
||||
//TODO: VAESDEC (DX), Z12, Z11 // 62721d48de1a or 62729d48de1a
|
||||
//TODO: VAESDEC Z27, Z3, Z25 // 62026548decb or 6202e548decb
|
||||
//TODO: VAESDEC Z15, Z3, Z25 // 62426548decf or 6242e548decf
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Z3, Z25 // 62026548de8c3f63000000 or 6202e548de8c3f63000000
|
||||
//TODO: VAESDEC (DX), Z3, Z25 // 62626548de0a or 6262e548de0a
|
||||
//TODO: VAESDEC Z27, Z12, Z25 // 62021d48decb or 62029d48decb
|
||||
//TODO: VAESDEC Z15, Z12, Z25 // 62421d48decf or 62429d48decf
|
||||
//TODO: VAESDEC 99(R15)(R15*1), Z12, Z25 // 62021d48de8c3f63000000 or 62029d48de8c3f63000000
|
||||
//TODO: VAESDEC (DX), Z12, Z25 // 62621d48de0a or 62629d48de0a
|
||||
//TODO: VAESDECLAST X21, X5, X9 // 62325508dfcd or 6232d508dfcd
|
||||
//TODO: VAESDECLAST X21, X31, X9 // 62320500dfcd or 62328500dfcd
|
||||
//TODO: VAESDECLAST X1, X31, X9 // 62720500dfc9 or 62728500dfc9
|
||||
//TODO: VAESDECLAST X11, X31, X9 // 62520500dfcb or 62528500dfcb
|
||||
//TODO: VAESDECLAST -7(CX), X31, X9 // 62720500df89f9ffffff or 62728500df89f9ffffff
|
||||
//TODO: VAESDECLAST 15(DX)(BX*4), X31, X9 // 62720500df8c9a0f000000 or 62728500df8c9a0f000000
|
||||
//TODO: VAESDECLAST X21, X3, X9 // 62326508dfcd or 6232e508dfcd
|
||||
//TODO: VAESDECLAST X21, X5, X7 // 62b25508dffd or 62b2d508dffd
|
||||
//TODO: VAESDECLAST X21, X31, X7 // 62b20500dffd or 62b28500dffd
|
||||
//TODO: VAESDECLAST X1, X31, X7 // 62f20500dff9 or 62f28500dff9
|
||||
//TODO: VAESDECLAST X11, X31, X7 // 62d20500dffb or 62d28500dffb
|
||||
//TODO: VAESDECLAST -7(CX), X31, X7 // 62f20500dfb9f9ffffff or 62f28500dfb9f9ffffff
|
||||
//TODO: VAESDECLAST 15(DX)(BX*4), X31, X7 // 62f20500dfbc9a0f000000 or 62f28500dfbc9a0f000000
|
||||
//TODO: VAESDECLAST X21, X3, X7 // 62b26508dffd or 62b2e508dffd
|
||||
//TODO: VAESDECLAST X21, X5, X14 // 62325508dff5 or 6232d508dff5
|
||||
//TODO: VAESDECLAST X21, X31, X14 // 62320500dff5 or 62328500dff5
|
||||
//TODO: VAESDECLAST X1, X31, X14 // 62720500dff1 or 62728500dff1
|
||||
//TODO: VAESDECLAST X11, X31, X14 // 62520500dff3 or 62528500dff3
|
||||
//TODO: VAESDECLAST -7(CX), X31, X14 // 62720500dfb1f9ffffff or 62728500dfb1f9ffffff
|
||||
//TODO: VAESDECLAST 15(DX)(BX*4), X31, X14 // 62720500dfb49a0f000000 or 62728500dfb49a0f000000
|
||||
//TODO: VAESDECLAST X21, X3, X14 // 62326508dff5 or 6232e508dff5
|
||||
//TODO: VAESDECLAST Y31, Y27, Y28 // 62022520dfe7 or 6202a520dfe7
|
||||
//TODO: VAESDECLAST Y3, Y27, Y28 // 62622520dfe3 or 6262a520dfe3
|
||||
//TODO: VAESDECLAST Y14, Y27, Y28 // 62422520dfe6 or 6242a520dfe6
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Y27, Y28 // 62622520dfa4f5efffffff or 6262a520dfa4f5efffffff
|
||||
//TODO: VAESDECLAST (R15), Y27, Y28 // 62422520df27 or 6242a520df27
|
||||
//TODO: VAESDECLAST Y31, Y0, Y28 // 62027d28dfe7 or 6202fd28dfe7
|
||||
//TODO: VAESDECLAST Y3, Y0, Y28 // 62627d28dfe3 or 6262fd28dfe3
|
||||
//TODO: VAESDECLAST Y14, Y0, Y28 // 62427d28dfe6 or 6242fd28dfe6
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Y0, Y28 // 62627d28dfa4f5efffffff or 6262fd28dfa4f5efffffff
|
||||
//TODO: VAESDECLAST (R15), Y0, Y28 // 62427d28df27 or 6242fd28df27
|
||||
//TODO: VAESDECLAST Y31, Y11, Y28 // 62022528dfe7 or 6202a528dfe7
|
||||
//TODO: VAESDECLAST Y3, Y11, Y28 // 62622528dfe3 or 6262a528dfe3
|
||||
//TODO: VAESDECLAST Y14, Y11, Y28 // 62422528dfe6 or 6242a528dfe6
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Y11, Y28 // 62622528dfa4f5efffffff or 6262a528dfa4f5efffffff
|
||||
//TODO: VAESDECLAST (R15), Y11, Y28 // 62422528df27 or 6242a528df27
|
||||
//TODO: VAESDECLAST Y31, Y27, Y2 // 62922520dfd7 or 6292a520dfd7
|
||||
//TODO: VAESDECLAST Y3, Y27, Y2 // 62f22520dfd3 or 62f2a520dfd3
|
||||
//TODO: VAESDECLAST Y14, Y27, Y2 // 62d22520dfd6 or 62d2a520dfd6
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Y27, Y2 // 62f22520df94f5efffffff or 62f2a520df94f5efffffff
|
||||
//TODO: VAESDECLAST (R15), Y27, Y2 // 62d22520df17 or 62d2a520df17
|
||||
//TODO: VAESDECLAST Y31, Y0, Y2 // 62927d28dfd7 or 6292fd28dfd7
|
||||
//TODO: VAESDECLAST Y31, Y11, Y2 // 62922528dfd7 or 6292a528dfd7
|
||||
//TODO: VAESDECLAST Y31, Y27, Y24 // 62022520dfc7 or 6202a520dfc7
|
||||
//TODO: VAESDECLAST Y3, Y27, Y24 // 62622520dfc3 or 6262a520dfc3
|
||||
//TODO: VAESDECLAST Y14, Y27, Y24 // 62422520dfc6 or 6242a520dfc6
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Y27, Y24 // 62622520df84f5efffffff or 6262a520df84f5efffffff
|
||||
//TODO: VAESDECLAST (R15), Y27, Y24 // 62422520df07 or 6242a520df07
|
||||
//TODO: VAESDECLAST Y31, Y0, Y24 // 62027d28dfc7 or 6202fd28dfc7
|
||||
//TODO: VAESDECLAST Y3, Y0, Y24 // 62627d28dfc3 or 6262fd28dfc3
|
||||
//TODO: VAESDECLAST Y14, Y0, Y24 // 62427d28dfc6 or 6242fd28dfc6
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Y0, Y24 // 62627d28df84f5efffffff or 6262fd28df84f5efffffff
|
||||
//TODO: VAESDECLAST (R15), Y0, Y24 // 62427d28df07 or 6242fd28df07
|
||||
//TODO: VAESDECLAST Y31, Y11, Y24 // 62022528dfc7 or 6202a528dfc7
|
||||
//TODO: VAESDECLAST Y3, Y11, Y24 // 62622528dfc3 or 6262a528dfc3
|
||||
//TODO: VAESDECLAST Y14, Y11, Y24 // 62422528dfc6 or 6242a528dfc6
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Y11, Y24 // 62622528df84f5efffffff or 6262a528df84f5efffffff
|
||||
//TODO: VAESDECLAST (R15), Y11, Y24 // 62422528df07 or 6242a528df07
|
||||
//TODO: VAESDECLAST Z8, Z23, Z23 // 62c24540dff8 or 62c2c540dff8
|
||||
//TODO: VAESDECLAST Z28, Z23, Z23 // 62824540dffc or 6282c540dffc
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Z23, Z23 // 62e24540dfbcf5efffffff or 62e2c540dfbcf5efffffff
|
||||
//TODO: VAESDECLAST (R15), Z23, Z23 // 62c24540df3f or 62c2c540df3f
|
||||
//TODO: VAESDECLAST Z8, Z6, Z23 // 62c24d48dff8 or 62c2cd48dff8
|
||||
//TODO: VAESDECLAST Z28, Z6, Z23 // 62824d48dffc or 6282cd48dffc
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Z6, Z23 // 62e24d48dfbcf5efffffff or 62e2cd48dfbcf5efffffff
|
||||
//TODO: VAESDECLAST (R15), Z6, Z23 // 62c24d48df3f or 62c2cd48df3f
|
||||
//TODO: VAESDECLAST Z8, Z23, Z5 // 62d24540dfe8 or 62d2c540dfe8
|
||||
//TODO: VAESDECLAST Z28, Z23, Z5 // 62924540dfec or 6292c540dfec
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Z23, Z5 // 62f24540dfacf5efffffff or 62f2c540dfacf5efffffff
|
||||
//TODO: VAESDECLAST (R15), Z23, Z5 // 62d24540df2f or 62d2c540df2f
|
||||
//TODO: VAESDECLAST Z8, Z6, Z5 // 62d24d48dfe8 or 62d2cd48dfe8
|
||||
//TODO: VAESDECLAST Z28, Z6, Z5 // 62924d48dfec or 6292cd48dfec
|
||||
//TODO: VAESDECLAST -17(BP)(SI*8), Z6, Z5 // 62f24d48dfacf5efffffff or 62f2cd48dfacf5efffffff
|
||||
//TODO: VAESDECLAST (R15), Z6, Z5 // 62d24d48df2f or 62d2cd48df2f
|
||||
//TODO: VAESENC X14, X16, X13 // 62527d00dcee or 6252fd00dcee
|
||||
//TODO: VAESENC X19, X16, X13 // 62327d00dceb or 6232fd00dceb
|
||||
//TODO: VAESENC X8, X16, X13 // 62527d00dce8 or 6252fd00dce8
|
||||
//TODO: VAESENC 99(R15)(R15*8), X16, X13 // 62127d00dcacff63000000 or 6212fd00dcacff63000000
|
||||
//TODO: VAESENC 7(AX)(CX*8), X16, X13 // 62727d00dcacc807000000 or 6272fd00dcacc807000000
|
||||
//TODO: VAESENC X19, X14, X13 // 62320d08dceb or 62328d08dceb
|
||||
//TODO: VAESENC X19, X11, X13 // 62322508dceb or 6232a508dceb
|
||||
//TODO: VAESENC X14, X16, X0 // 62d27d00dcc6 or 62d2fd00dcc6
|
||||
//TODO: VAESENC X19, X16, X0 // 62b27d00dcc3 or 62b2fd00dcc3
|
||||
//TODO: VAESENC X8, X16, X0 // 62d27d00dcc0 or 62d2fd00dcc0
|
||||
//TODO: VAESENC 99(R15)(R15*8), X16, X0 // 62927d00dc84ff63000000 or 6292fd00dc84ff63000000
|
||||
//TODO: VAESENC 7(AX)(CX*8), X16, X0 // 62f27d00dc84c807000000 or 62f2fd00dc84c807000000
|
||||
//TODO: VAESENC X19, X14, X0 // 62b20d08dcc3 or 62b28d08dcc3
|
||||
//TODO: VAESENC X19, X11, X0 // 62b22508dcc3 or 62b2a508dcc3
|
||||
//TODO: VAESENC X14, X16, X30 // 62427d00dcf6 or 6242fd00dcf6
|
||||
//TODO: VAESENC X19, X16, X30 // 62227d00dcf3 or 6222fd00dcf3
|
||||
//TODO: VAESENC X8, X16, X30 // 62427d00dcf0 or 6242fd00dcf0
|
||||
//TODO: VAESENC 99(R15)(R15*8), X16, X30 // 62027d00dcb4ff63000000 or 6202fd00dcb4ff63000000
|
||||
//TODO: VAESENC 7(AX)(CX*8), X16, X30 // 62627d00dcb4c807000000 or 6262fd00dcb4c807000000
|
||||
//TODO: VAESENC X14, X14, X30 // 62420d08dcf6 or 62428d08dcf6
|
||||
//TODO: VAESENC X19, X14, X30 // 62220d08dcf3 or 62228d08dcf3
|
||||
//TODO: VAESENC X8, X14, X30 // 62420d08dcf0 or 62428d08dcf0
|
||||
//TODO: VAESENC 99(R15)(R15*8), X14, X30 // 62020d08dcb4ff63000000 or 62028d08dcb4ff63000000
|
||||
//TODO: VAESENC 7(AX)(CX*8), X14, X30 // 62620d08dcb4c807000000 or 62628d08dcb4c807000000
|
||||
//TODO: VAESENC X14, X11, X30 // 62422508dcf6 or 6242a508dcf6
|
||||
//TODO: VAESENC X19, X11, X30 // 62222508dcf3 or 6222a508dcf3
|
||||
//TODO: VAESENC X8, X11, X30 // 62422508dcf0 or 6242a508dcf0
|
||||
//TODO: VAESENC 99(R15)(R15*8), X11, X30 // 62022508dcb4ff63000000 or 6202a508dcb4ff63000000
|
||||
//TODO: VAESENC 7(AX)(CX*8), X11, X30 // 62622508dcb4c807000000 or 6262a508dcb4c807000000
|
||||
//TODO: VAESENC Y18, Y15, Y2 // 62b20528dcd2 or 62b28528dcd2
|
||||
//TODO: VAESENC Y24, Y15, Y2 // 62920528dcd0 or 62928528dcd0
|
||||
//TODO: VAESENC Y18, Y22, Y2 // 62b24d20dcd2 or 62b2cd20dcd2
|
||||
//TODO: VAESENC Y24, Y22, Y2 // 62924d20dcd0 or 6292cd20dcd0
|
||||
//TODO: VAESENC Y9, Y22, Y2 // 62d24d20dcd1 or 62d2cd20dcd1
|
||||
//TODO: VAESENC 7(SI)(DI*8), Y22, Y2 // 62f24d20dc94fe07000000 or 62f2cd20dc94fe07000000
|
||||
//TODO: VAESENC -15(R14), Y22, Y2 // 62d24d20dc96f1ffffff or 62d2cd20dc96f1ffffff
|
||||
//TODO: VAESENC Y18, Y20, Y2 // 62b25d20dcd2 or 62b2dd20dcd2
|
||||
//TODO: VAESENC Y24, Y20, Y2 // 62925d20dcd0 or 6292dd20dcd0
|
||||
//TODO: VAESENC Y9, Y20, Y2 // 62d25d20dcd1 or 62d2dd20dcd1
|
||||
//TODO: VAESENC 7(SI)(DI*8), Y20, Y2 // 62f25d20dc94fe07000000 or 62f2dd20dc94fe07000000
|
||||
//TODO: VAESENC -15(R14), Y20, Y2 // 62d25d20dc96f1ffffff or 62d2dd20dc96f1ffffff
|
||||
//TODO: VAESENC Y18, Y15, Y13 // 62320528dcea or 62328528dcea
|
||||
//TODO: VAESENC Y24, Y15, Y13 // 62120528dce8 or 62128528dce8
|
||||
//TODO: VAESENC Y18, Y22, Y13 // 62324d20dcea or 6232cd20dcea
|
||||
//TODO: VAESENC Y24, Y22, Y13 // 62124d20dce8 or 6212cd20dce8
|
||||
//TODO: VAESENC Y9, Y22, Y13 // 62524d20dce9 or 6252cd20dce9
|
||||
//TODO: VAESENC 7(SI)(DI*8), Y22, Y13 // 62724d20dcacfe07000000 or 6272cd20dcacfe07000000
|
||||
//TODO: VAESENC -15(R14), Y22, Y13 // 62524d20dcaef1ffffff or 6252cd20dcaef1ffffff
|
||||
//TODO: VAESENC Y18, Y20, Y13 // 62325d20dcea or 6232dd20dcea
|
||||
//TODO: VAESENC Y24, Y20, Y13 // 62125d20dce8 or 6212dd20dce8
|
||||
//TODO: VAESENC Y9, Y20, Y13 // 62525d20dce9 or 6252dd20dce9
|
||||
//TODO: VAESENC 7(SI)(DI*8), Y20, Y13 // 62725d20dcacfe07000000 or 6272dd20dcacfe07000000
|
||||
//TODO: VAESENC -15(R14), Y20, Y13 // 62525d20dcaef1ffffff or 6252dd20dcaef1ffffff
|
||||
//TODO: VAESENC Y18, Y15, Y27 // 62220528dcda or 62228528dcda
|
||||
//TODO: VAESENC Y24, Y15, Y27 // 62020528dcd8 or 62028528dcd8
|
||||
//TODO: VAESENC Y9, Y15, Y27 // 62420528dcd9 or 62428528dcd9
|
||||
//TODO: VAESENC 7(SI)(DI*8), Y15, Y27 // 62620528dc9cfe07000000 or 62628528dc9cfe07000000
|
||||
//TODO: VAESENC -15(R14), Y15, Y27 // 62420528dc9ef1ffffff or 62428528dc9ef1ffffff
|
||||
//TODO: VAESENC Y18, Y22, Y27 // 62224d20dcda or 6222cd20dcda
|
||||
//TODO: VAESENC Y24, Y22, Y27 // 62024d20dcd8 or 6202cd20dcd8
|
||||
//TODO: VAESENC Y9, Y22, Y27 // 62424d20dcd9 or 6242cd20dcd9
|
||||
//TODO: VAESENC 7(SI)(DI*8), Y22, Y27 // 62624d20dc9cfe07000000 or 6262cd20dc9cfe07000000
|
||||
//TODO: VAESENC -15(R14), Y22, Y27 // 62424d20dc9ef1ffffff or 6242cd20dc9ef1ffffff
|
||||
//TODO: VAESENC Y18, Y20, Y27 // 62225d20dcda or 6222dd20dcda
|
||||
//TODO: VAESENC Y24, Y20, Y27 // 62025d20dcd8 or 6202dd20dcd8
|
||||
//TODO: VAESENC Y9, Y20, Y27 // 62425d20dcd9 or 6242dd20dcd9
|
||||
//TODO: VAESENC 7(SI)(DI*8), Y20, Y27 // 62625d20dc9cfe07000000 or 6262dd20dc9cfe07000000
|
||||
//TODO: VAESENC -15(R14), Y20, Y27 // 62425d20dc9ef1ffffff or 6242dd20dc9ef1ffffff
|
||||
//TODO: VAESENC Z12, Z16, Z21 // 62c27d40dcec or 62c2fd40dcec
|
||||
//TODO: VAESENC Z27, Z16, Z21 // 62827d40dceb or 6282fd40dceb
|
||||
//TODO: VAESENC 7(SI)(DI*8), Z16, Z21 // 62e27d40dcacfe07000000 or 62e2fd40dcacfe07000000
|
||||
//TODO: VAESENC -15(R14), Z16, Z21 // 62c27d40dcaef1ffffff or 62c2fd40dcaef1ffffff
|
||||
//TODO: VAESENC Z12, Z13, Z21 // 62c21548dcec or 62c29548dcec
|
||||
//TODO: VAESENC Z27, Z13, Z21 // 62821548dceb or 62829548dceb
|
||||
//TODO: VAESENC 7(SI)(DI*8), Z13, Z21 // 62e21548dcacfe07000000 or 62e29548dcacfe07000000
|
||||
//TODO: VAESENC -15(R14), Z13, Z21 // 62c21548dcaef1ffffff or 62c29548dcaef1ffffff
|
||||
//TODO: VAESENC Z12, Z16, Z5 // 62d27d40dcec or 62d2fd40dcec
|
||||
//TODO: VAESENC Z27, Z16, Z5 // 62927d40dceb or 6292fd40dceb
|
||||
//TODO: VAESENC 7(SI)(DI*8), Z16, Z5 // 62f27d40dcacfe07000000 or 62f2fd40dcacfe07000000
|
||||
//TODO: VAESENC -15(R14), Z16, Z5 // 62d27d40dcaef1ffffff or 62d2fd40dcaef1ffffff
|
||||
//TODO: VAESENC Z12, Z13, Z5 // 62d21548dcec or 62d29548dcec
|
||||
//TODO: VAESENC Z27, Z13, Z5 // 62921548dceb or 62929548dceb
|
||||
//TODO: VAESENC 7(SI)(DI*8), Z13, Z5 // 62f21548dcacfe07000000 or 62f29548dcacfe07000000
|
||||
//TODO: VAESENC -15(R14), Z13, Z5 // 62d21548dcaef1ffffff or 62d29548dcaef1ffffff
|
||||
//TODO: VAESENCLAST X23, X12, X8 // 62321d08ddc7 or 62329d08ddc7
|
||||
//TODO: VAESENCLAST X31, X12, X8 // 62121d08ddc7 or 62129d08ddc7
|
||||
//TODO: VAESENCLAST X23, X16, X8 // 62327d00ddc7 or 6232fd00ddc7
|
||||
//TODO: VAESENCLAST X11, X16, X8 // 62527d00ddc3 or 6252fd00ddc3
|
||||
//TODO: VAESENCLAST X31, X16, X8 // 62127d00ddc7 or 6212fd00ddc7
|
||||
//TODO: VAESENCLAST (AX), X16, X8 // 62727d00dd00 or 6272fd00dd00
|
||||
//TODO: VAESENCLAST 7(SI), X16, X8 // 62727d00dd8607000000 or 6272fd00dd8607000000
|
||||
//TODO: VAESENCLAST X23, X23, X8 // 62324500ddc7 or 6232c500ddc7
|
||||
//TODO: VAESENCLAST X11, X23, X8 // 62524500ddc3 or 6252c500ddc3
|
||||
//TODO: VAESENCLAST X31, X23, X8 // 62124500ddc7 or 6212c500ddc7
|
||||
//TODO: VAESENCLAST (AX), X23, X8 // 62724500dd00 or 6272c500dd00
|
||||
//TODO: VAESENCLAST 7(SI), X23, X8 // 62724500dd8607000000 or 6272c500dd8607000000
|
||||
//TODO: VAESENCLAST X23, X12, X26 // 62221d08ddd7 or 62229d08ddd7
|
||||
//TODO: VAESENCLAST X11, X12, X26 // 62421d08ddd3 or 62429d08ddd3
|
||||
//TODO: VAESENCLAST X31, X12, X26 // 62021d08ddd7 or 62029d08ddd7
|
||||
//TODO: VAESENCLAST (AX), X12, X26 // 62621d08dd10 or 62629d08dd10
|
||||
//TODO: VAESENCLAST 7(SI), X12, X26 // 62621d08dd9607000000 or 62629d08dd9607000000
|
||||
//TODO: VAESENCLAST X23, X16, X26 // 62227d00ddd7 or 6222fd00ddd7
|
||||
//TODO: VAESENCLAST X11, X16, X26 // 62427d00ddd3 or 6242fd00ddd3
|
||||
//TODO: VAESENCLAST X31, X16, X26 // 62027d00ddd7 or 6202fd00ddd7
|
||||
//TODO: VAESENCLAST (AX), X16, X26 // 62627d00dd10 or 6262fd00dd10
|
||||
//TODO: VAESENCLAST 7(SI), X16, X26 // 62627d00dd9607000000 or 6262fd00dd9607000000
|
||||
//TODO: VAESENCLAST X23, X23, X26 // 62224500ddd7 or 6222c500ddd7
|
||||
//TODO: VAESENCLAST X11, X23, X26 // 62424500ddd3 or 6242c500ddd3
|
||||
//TODO: VAESENCLAST X31, X23, X26 // 62024500ddd7 or 6202c500ddd7
|
||||
//TODO: VAESENCLAST (AX), X23, X26 // 62624500dd10 or 6262c500dd10
|
||||
//TODO: VAESENCLAST 7(SI), X23, X26 // 62624500dd9607000000 or 6262c500dd9607000000
|
||||
//TODO: VAESENCLAST X23, X12, X23 // 62a21d08ddff or 62a29d08ddff
|
||||
//TODO: VAESENCLAST X11, X12, X23 // 62c21d08ddfb or 62c29d08ddfb
|
||||
//TODO: VAESENCLAST X31, X12, X23 // 62821d08ddff or 62829d08ddff
|
||||
//TODO: VAESENCLAST (AX), X12, X23 // 62e21d08dd38 or 62e29d08dd38
|
||||
//TODO: VAESENCLAST 7(SI), X12, X23 // 62e21d08ddbe07000000 or 62e29d08ddbe07000000
|
||||
//TODO: VAESENCLAST X23, X16, X23 // 62a27d00ddff or 62a2fd00ddff
|
||||
//TODO: VAESENCLAST X11, X16, X23 // 62c27d00ddfb or 62c2fd00ddfb
|
||||
//TODO: VAESENCLAST X31, X16, X23 // 62827d00ddff or 6282fd00ddff
|
||||
//TODO: VAESENCLAST (AX), X16, X23 // 62e27d00dd38 or 62e2fd00dd38
|
||||
//TODO: VAESENCLAST 7(SI), X16, X23 // 62e27d00ddbe07000000 or 62e2fd00ddbe07000000
|
||||
//TODO: VAESENCLAST X23, X23, X23 // 62a24500ddff or 62a2c500ddff
|
||||
//TODO: VAESENCLAST X11, X23, X23 // 62c24500ddfb or 62c2c500ddfb
|
||||
//TODO: VAESENCLAST X31, X23, X23 // 62824500ddff or 6282c500ddff
|
||||
//TODO: VAESENCLAST (AX), X23, X23 // 62e24500dd38 or 62e2c500dd38
|
||||
//TODO: VAESENCLAST 7(SI), X23, X23 // 62e24500ddbe07000000 or 62e2c500ddbe07000000
|
||||
//TODO: VAESENCLAST Y5, Y19, Y3 // 62f26520dddd or 62f2e520dddd
|
||||
//TODO: VAESENCLAST Y16, Y19, Y3 // 62b26520ddd8 or 62b2e520ddd8
|
||||
//TODO: VAESENCLAST Y2, Y19, Y3 // 62f26520ddda or 62f2e520ddda
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Y19, Y3 // 62f26520dd9c3e07000000 or 62f2e520dd9c3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Y19, Y3 // 62f26520dd9cda0f000000 or 62f2e520dd9cda0f000000
|
||||
//TODO: VAESENCLAST Y16, Y14, Y3 // 62b20d28ddd8 or 62b28d28ddd8
|
||||
//TODO: VAESENCLAST Y5, Y21, Y3 // 62f25520dddd or 62f2d520dddd
|
||||
//TODO: VAESENCLAST Y16, Y21, Y3 // 62b25520ddd8 or 62b2d520ddd8
|
||||
//TODO: VAESENCLAST Y2, Y21, Y3 // 62f25520ddda or 62f2d520ddda
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Y21, Y3 // 62f25520dd9c3e07000000 or 62f2d520dd9c3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Y21, Y3 // 62f25520dd9cda0f000000 or 62f2d520dd9cda0f000000
|
||||
//TODO: VAESENCLAST Y5, Y19, Y19 // 62e26520dddd or 62e2e520dddd
|
||||
//TODO: VAESENCLAST Y16, Y19, Y19 // 62a26520ddd8 or 62a2e520ddd8
|
||||
//TODO: VAESENCLAST Y2, Y19, Y19 // 62e26520ddda or 62e2e520ddda
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Y19, Y19 // 62e26520dd9c3e07000000 or 62e2e520dd9c3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Y19, Y19 // 62e26520dd9cda0f000000 or 62e2e520dd9cda0f000000
|
||||
//TODO: VAESENCLAST Y5, Y14, Y19 // 62e20d28dddd or 62e28d28dddd
|
||||
//TODO: VAESENCLAST Y16, Y14, Y19 // 62a20d28ddd8 or 62a28d28ddd8
|
||||
//TODO: VAESENCLAST Y2, Y14, Y19 // 62e20d28ddda or 62e28d28ddda
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Y14, Y19 // 62e20d28dd9c3e07000000 or 62e28d28dd9c3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Y14, Y19 // 62e20d28dd9cda0f000000 or 62e28d28dd9cda0f000000
|
||||
//TODO: VAESENCLAST Y5, Y21, Y19 // 62e25520dddd or 62e2d520dddd
|
||||
//TODO: VAESENCLAST Y16, Y21, Y19 // 62a25520ddd8 or 62a2d520ddd8
|
||||
//TODO: VAESENCLAST Y2, Y21, Y19 // 62e25520ddda or 62e2d520ddda
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Y21, Y19 // 62e25520dd9c3e07000000 or 62e2d520dd9c3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Y21, Y19 // 62e25520dd9cda0f000000 or 62e2d520dd9cda0f000000
|
||||
//TODO: VAESENCLAST Y5, Y19, Y23 // 62e26520ddfd or 62e2e520ddfd
|
||||
//TODO: VAESENCLAST Y16, Y19, Y23 // 62a26520ddf8 or 62a2e520ddf8
|
||||
//TODO: VAESENCLAST Y2, Y19, Y23 // 62e26520ddfa or 62e2e520ddfa
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Y19, Y23 // 62e26520ddbc3e07000000 or 62e2e520ddbc3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Y19, Y23 // 62e26520ddbcda0f000000 or 62e2e520ddbcda0f000000
|
||||
//TODO: VAESENCLAST Y5, Y14, Y23 // 62e20d28ddfd or 62e28d28ddfd
|
||||
//TODO: VAESENCLAST Y16, Y14, Y23 // 62a20d28ddf8 or 62a28d28ddf8
|
||||
//TODO: VAESENCLAST Y2, Y14, Y23 // 62e20d28ddfa or 62e28d28ddfa
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Y14, Y23 // 62e20d28ddbc3e07000000 or 62e28d28ddbc3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Y14, Y23 // 62e20d28ddbcda0f000000 or 62e28d28ddbcda0f000000
|
||||
//TODO: VAESENCLAST Y5, Y21, Y23 // 62e25520ddfd or 62e2d520ddfd
|
||||
//TODO: VAESENCLAST Y16, Y21, Y23 // 62a25520ddf8 or 62a2d520ddf8
|
||||
//TODO: VAESENCLAST Y2, Y21, Y23 // 62e25520ddfa or 62e2d520ddfa
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Y21, Y23 // 62e25520ddbc3e07000000 or 62e2d520ddbc3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Y21, Y23 // 62e25520ddbcda0f000000 or 62e2d520ddbcda0f000000
|
||||
//TODO: VAESENCLAST Z25, Z6, Z22 // 62824d48ddf1 or 6282cd48ddf1
|
||||
//TODO: VAESENCLAST Z12, Z6, Z22 // 62c24d48ddf4 or 62c2cd48ddf4
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Z6, Z22 // 62e24d48ddb43e07000000 or 62e2cd48ddb43e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Z6, Z22 // 62e24d48ddb4da0f000000 or 62e2cd48ddb4da0f000000
|
||||
//TODO: VAESENCLAST Z25, Z8, Z22 // 62823d48ddf1 or 6282bd48ddf1
|
||||
//TODO: VAESENCLAST Z12, Z8, Z22 // 62c23d48ddf4 or 62c2bd48ddf4
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Z8, Z22 // 62e23d48ddb43e07000000 or 62e2bd48ddb43e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Z8, Z22 // 62e23d48ddb4da0f000000 or 62e2bd48ddb4da0f000000
|
||||
//TODO: VAESENCLAST Z25, Z6, Z11 // 62124d48ddd9 or 6212cd48ddd9
|
||||
//TODO: VAESENCLAST Z12, Z6, Z11 // 62524d48dddc or 6252cd48dddc
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Z6, Z11 // 62724d48dd9c3e07000000 or 6272cd48dd9c3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Z6, Z11 // 62724d48dd9cda0f000000 or 6272cd48dd9cda0f000000
|
||||
//TODO: VAESENCLAST Z25, Z8, Z11 // 62123d48ddd9 or 6212bd48ddd9
|
||||
//TODO: VAESENCLAST Z12, Z8, Z11 // 62523d48dddc or 6252bd48dddc
|
||||
//TODO: VAESENCLAST 7(SI)(DI*1), Z8, Z11 // 62723d48dd9c3e07000000 or 6272bd48dd9c3e07000000
|
||||
//TODO: VAESENCLAST 15(DX)(BX*8), Z8, Z11 // 62723d48dd9cda0f000000 or 6272bd48dd9cda0f000000
|
||||
VAESDEC X24, X7, X11 // 62124508ded8 or 6212c508ded8
|
||||
VAESDEC X20, X7, X11 // 62324508dedc or 6232c508dedc
|
||||
VAESDEC X24, X0, X11 // 62127d08ded8 or 6212fd08ded8
|
||||
VAESDEC X20, X0, X11 // 62327d08dedc or 6232fd08dedc
|
||||
VAESDEC X24, X7, X31 // 62024508def8 or 6202c508def8
|
||||
VAESDEC X20, X7, X31 // 62224508defc or 6222c508defc
|
||||
VAESDEC X7, X7, X31 // 62624508deff or 6262c508deff
|
||||
VAESDEC -7(DI)(R8*1), X7, X31 // 62224508debc07f9ffffff or 6222c508debc07f9ffffff
|
||||
VAESDEC (SP), X7, X31 // 62624508de3c24 or 6262c508de3c24
|
||||
VAESDEC X24, X0, X31 // 62027d08def8 or 6202fd08def8
|
||||
VAESDEC X20, X0, X31 // 62227d08defc or 6222fd08defc
|
||||
VAESDEC X7, X0, X31 // 62627d08deff or 6262fd08deff
|
||||
VAESDEC -7(DI)(R8*1), X0, X31 // 62227d08debc07f9ffffff or 6222fd08debc07f9ffffff
|
||||
VAESDEC (SP), X0, X31 // 62627d08de3c24 or 6262fd08de3c24
|
||||
VAESDEC X24, X7, X3 // 62924508ded8 or 6292c508ded8
|
||||
VAESDEC X20, X7, X3 // 62b24508dedc or 62b2c508dedc
|
||||
VAESDEC X24, X0, X3 // 62927d08ded8 or 6292fd08ded8
|
||||
VAESDEC X20, X0, X3 // 62b27d08dedc or 62b2fd08dedc
|
||||
VAESDEC Y5, Y31, Y22 // 62e20520def5 or 62e28520def5
|
||||
VAESDEC Y19, Y31, Y22 // 62a20520def3 or 62a28520def3
|
||||
VAESDEC Y31, Y31, Y22 // 62820520def7 or 62828520def7
|
||||
VAESDEC 99(R15)(R15*1), Y31, Y22 // 62820520deb43f63000000 or 62828520deb43f63000000
|
||||
VAESDEC (DX), Y31, Y22 // 62e20520de32 or 62e28520de32
|
||||
VAESDEC Y5, Y5, Y22 // 62e25528def5 or 62e2d528def5
|
||||
VAESDEC Y19, Y5, Y22 // 62a25528def3 or 62a2d528def3
|
||||
VAESDEC Y31, Y5, Y22 // 62825528def7 or 6282d528def7
|
||||
VAESDEC 99(R15)(R15*1), Y5, Y22 // 62825528deb43f63000000 or 6282d528deb43f63000000
|
||||
VAESDEC (DX), Y5, Y22 // 62e25528de32 or 62e2d528de32
|
||||
VAESDEC Y5, Y0, Y22 // 62e27d28def5 or 62e2fd28def5
|
||||
VAESDEC Y19, Y0, Y22 // 62a27d28def3 or 62a2fd28def3
|
||||
VAESDEC Y31, Y0, Y22 // 62827d28def7 or 6282fd28def7
|
||||
VAESDEC 99(R15)(R15*1), Y0, Y22 // 62827d28deb43f63000000 or 6282fd28deb43f63000000
|
||||
VAESDEC (DX), Y0, Y22 // 62e27d28de32 or 62e2fd28de32
|
||||
VAESDEC Y5, Y31, Y9 // 62720520decd or 62728520decd
|
||||
VAESDEC Y19, Y31, Y9 // 62320520decb or 62328520decb
|
||||
VAESDEC Y31, Y31, Y9 // 62120520decf or 62128520decf
|
||||
VAESDEC 99(R15)(R15*1), Y31, Y9 // 62120520de8c3f63000000 or 62128520de8c3f63000000
|
||||
VAESDEC (DX), Y31, Y9 // 62720520de0a or 62728520de0a
|
||||
VAESDEC Y19, Y5, Y9 // 62325528decb or 6232d528decb
|
||||
VAESDEC Y31, Y5, Y9 // 62125528decf or 6212d528decf
|
||||
VAESDEC Y19, Y0, Y9 // 62327d28decb or 6232fd28decb
|
||||
VAESDEC Y31, Y0, Y9 // 62127d28decf or 6212fd28decf
|
||||
VAESDEC Y5, Y31, Y23 // 62e20520defd or 62e28520defd
|
||||
VAESDEC Y19, Y31, Y23 // 62a20520defb or 62a28520defb
|
||||
VAESDEC Y31, Y31, Y23 // 62820520deff or 62828520deff
|
||||
VAESDEC 99(R15)(R15*1), Y31, Y23 // 62820520debc3f63000000 or 62828520debc3f63000000
|
||||
VAESDEC (DX), Y31, Y23 // 62e20520de3a or 62e28520de3a
|
||||
VAESDEC Y5, Y5, Y23 // 62e25528defd or 62e2d528defd
|
||||
VAESDEC Y19, Y5, Y23 // 62a25528defb or 62a2d528defb
|
||||
VAESDEC Y31, Y5, Y23 // 62825528deff or 6282d528deff
|
||||
VAESDEC 99(R15)(R15*1), Y5, Y23 // 62825528debc3f63000000 or 6282d528debc3f63000000
|
||||
VAESDEC (DX), Y5, Y23 // 62e25528de3a or 62e2d528de3a
|
||||
VAESDEC Y5, Y0, Y23 // 62e27d28defd or 62e2fd28defd
|
||||
VAESDEC Y19, Y0, Y23 // 62a27d28defb or 62a2fd28defb
|
||||
VAESDEC Y31, Y0, Y23 // 62827d28deff or 6282fd28deff
|
||||
VAESDEC 99(R15)(R15*1), Y0, Y23 // 62827d28debc3f63000000 or 6282fd28debc3f63000000
|
||||
VAESDEC (DX), Y0, Y23 // 62e27d28de3a or 62e2fd28de3a
|
||||
VAESDEC Z27, Z3, Z11 // 62126548dedb or 6212e548dedb
|
||||
VAESDEC Z15, Z3, Z11 // 62526548dedf or 6252e548dedf
|
||||
VAESDEC 99(R15)(R15*1), Z3, Z11 // 62126548de9c3f63000000 or 6212e548de9c3f63000000
|
||||
VAESDEC (DX), Z3, Z11 // 62726548de1a or 6272e548de1a
|
||||
VAESDEC Z27, Z12, Z11 // 62121d48dedb or 62129d48dedb
|
||||
VAESDEC Z15, Z12, Z11 // 62521d48dedf or 62529d48dedf
|
||||
VAESDEC 99(R15)(R15*1), Z12, Z11 // 62121d48de9c3f63000000 or 62129d48de9c3f63000000
|
||||
VAESDEC (DX), Z12, Z11 // 62721d48de1a or 62729d48de1a
|
||||
VAESDEC Z27, Z3, Z25 // 62026548decb or 6202e548decb
|
||||
VAESDEC Z15, Z3, Z25 // 62426548decf or 6242e548decf
|
||||
VAESDEC 99(R15)(R15*1), Z3, Z25 // 62026548de8c3f63000000 or 6202e548de8c3f63000000
|
||||
VAESDEC (DX), Z3, Z25 // 62626548de0a or 6262e548de0a
|
||||
VAESDEC Z27, Z12, Z25 // 62021d48decb or 62029d48decb
|
||||
VAESDEC Z15, Z12, Z25 // 62421d48decf or 62429d48decf
|
||||
VAESDEC 99(R15)(R15*1), Z12, Z25 // 62021d48de8c3f63000000 or 62029d48de8c3f63000000
|
||||
VAESDEC (DX), Z12, Z25 // 62621d48de0a or 62629d48de0a
|
||||
VAESDECLAST X21, X5, X9 // 62325508dfcd or 6232d508dfcd
|
||||
VAESDECLAST X21, X31, X9 // 62320500dfcd or 62328500dfcd
|
||||
VAESDECLAST X1, X31, X9 // 62720500dfc9 or 62728500dfc9
|
||||
VAESDECLAST X11, X31, X9 // 62520500dfcb or 62528500dfcb
|
||||
VAESDECLAST -7(CX), X31, X9 // 62720500df89f9ffffff or 62728500df89f9ffffff
|
||||
VAESDECLAST 15(DX)(BX*4), X31, X9 // 62720500df8c9a0f000000 or 62728500df8c9a0f000000
|
||||
VAESDECLAST X21, X3, X9 // 62326508dfcd or 6232e508dfcd
|
||||
VAESDECLAST X21, X5, X7 // 62b25508dffd or 62b2d508dffd
|
||||
VAESDECLAST X21, X31, X7 // 62b20500dffd or 62b28500dffd
|
||||
VAESDECLAST X1, X31, X7 // 62f20500dff9 or 62f28500dff9
|
||||
VAESDECLAST X11, X31, X7 // 62d20500dffb or 62d28500dffb
|
||||
VAESDECLAST -7(CX), X31, X7 // 62f20500dfb9f9ffffff or 62f28500dfb9f9ffffff
|
||||
VAESDECLAST 15(DX)(BX*4), X31, X7 // 62f20500dfbc9a0f000000 or 62f28500dfbc9a0f000000
|
||||
VAESDECLAST X21, X3, X7 // 62b26508dffd or 62b2e508dffd
|
||||
VAESDECLAST X21, X5, X14 // 62325508dff5 or 6232d508dff5
|
||||
VAESDECLAST X21, X31, X14 // 62320500dff5 or 62328500dff5
|
||||
VAESDECLAST X1, X31, X14 // 62720500dff1 or 62728500dff1
|
||||
VAESDECLAST X11, X31, X14 // 62520500dff3 or 62528500dff3
|
||||
VAESDECLAST -7(CX), X31, X14 // 62720500dfb1f9ffffff or 62728500dfb1f9ffffff
|
||||
VAESDECLAST 15(DX)(BX*4), X31, X14 // 62720500dfb49a0f000000 or 62728500dfb49a0f000000
|
||||
VAESDECLAST X21, X3, X14 // 62326508dff5 or 6232e508dff5
|
||||
VAESDECLAST Y31, Y27, Y28 // 62022520dfe7 or 6202a520dfe7
|
||||
VAESDECLAST Y3, Y27, Y28 // 62622520dfe3 or 6262a520dfe3
|
||||
VAESDECLAST Y14, Y27, Y28 // 62422520dfe6 or 6242a520dfe6
|
||||
VAESDECLAST -17(BP)(SI*8), Y27, Y28 // 62622520dfa4f5efffffff or 6262a520dfa4f5efffffff
|
||||
VAESDECLAST (R15), Y27, Y28 // 62422520df27 or 6242a520df27
|
||||
VAESDECLAST Y31, Y0, Y28 // 62027d28dfe7 or 6202fd28dfe7
|
||||
VAESDECLAST Y3, Y0, Y28 // 62627d28dfe3 or 6262fd28dfe3
|
||||
VAESDECLAST Y14, Y0, Y28 // 62427d28dfe6 or 6242fd28dfe6
|
||||
VAESDECLAST -17(BP)(SI*8), Y0, Y28 // 62627d28dfa4f5efffffff or 6262fd28dfa4f5efffffff
|
||||
VAESDECLAST (R15), Y0, Y28 // 62427d28df27 or 6242fd28df27
|
||||
VAESDECLAST Y31, Y11, Y28 // 62022528dfe7 or 6202a528dfe7
|
||||
VAESDECLAST Y3, Y11, Y28 // 62622528dfe3 or 6262a528dfe3
|
||||
VAESDECLAST Y14, Y11, Y28 // 62422528dfe6 or 6242a528dfe6
|
||||
VAESDECLAST -17(BP)(SI*8), Y11, Y28 // 62622528dfa4f5efffffff or 6262a528dfa4f5efffffff
|
||||
VAESDECLAST (R15), Y11, Y28 // 62422528df27 or 6242a528df27
|
||||
VAESDECLAST Y31, Y27, Y2 // 62922520dfd7 or 6292a520dfd7
|
||||
VAESDECLAST Y3, Y27, Y2 // 62f22520dfd3 or 62f2a520dfd3
|
||||
VAESDECLAST Y14, Y27, Y2 // 62d22520dfd6 or 62d2a520dfd6
|
||||
VAESDECLAST -17(BP)(SI*8), Y27, Y2 // 62f22520df94f5efffffff or 62f2a520df94f5efffffff
|
||||
VAESDECLAST (R15), Y27, Y2 // 62d22520df17 or 62d2a520df17
|
||||
VAESDECLAST Y31, Y0, Y2 // 62927d28dfd7 or 6292fd28dfd7
|
||||
VAESDECLAST Y31, Y11, Y2 // 62922528dfd7 or 6292a528dfd7
|
||||
VAESDECLAST Y31, Y27, Y24 // 62022520dfc7 or 6202a520dfc7
|
||||
VAESDECLAST Y3, Y27, Y24 // 62622520dfc3 or 6262a520dfc3
|
||||
VAESDECLAST Y14, Y27, Y24 // 62422520dfc6 or 6242a520dfc6
|
||||
VAESDECLAST -17(BP)(SI*8), Y27, Y24 // 62622520df84f5efffffff or 6262a520df84f5efffffff
|
||||
VAESDECLAST (R15), Y27, Y24 // 62422520df07 or 6242a520df07
|
||||
VAESDECLAST Y31, Y0, Y24 // 62027d28dfc7 or 6202fd28dfc7
|
||||
VAESDECLAST Y3, Y0, Y24 // 62627d28dfc3 or 6262fd28dfc3
|
||||
VAESDECLAST Y14, Y0, Y24 // 62427d28dfc6 or 6242fd28dfc6
|
||||
VAESDECLAST -17(BP)(SI*8), Y0, Y24 // 62627d28df84f5efffffff or 6262fd28df84f5efffffff
|
||||
VAESDECLAST (R15), Y0, Y24 // 62427d28df07 or 6242fd28df07
|
||||
VAESDECLAST Y31, Y11, Y24 // 62022528dfc7 or 6202a528dfc7
|
||||
VAESDECLAST Y3, Y11, Y24 // 62622528dfc3 or 6262a528dfc3
|
||||
VAESDECLAST Y14, Y11, Y24 // 62422528dfc6 or 6242a528dfc6
|
||||
VAESDECLAST -17(BP)(SI*8), Y11, Y24 // 62622528df84f5efffffff or 6262a528df84f5efffffff
|
||||
VAESDECLAST (R15), Y11, Y24 // 62422528df07 or 6242a528df07
|
||||
VAESDECLAST Z8, Z23, Z23 // 62c24540dff8 or 62c2c540dff8
|
||||
VAESDECLAST Z28, Z23, Z23 // 62824540dffc or 6282c540dffc
|
||||
VAESDECLAST -17(BP)(SI*8), Z23, Z23 // 62e24540dfbcf5efffffff or 62e2c540dfbcf5efffffff
|
||||
VAESDECLAST (R15), Z23, Z23 // 62c24540df3f or 62c2c540df3f
|
||||
VAESDECLAST Z8, Z6, Z23 // 62c24d48dff8 or 62c2cd48dff8
|
||||
VAESDECLAST Z28, Z6, Z23 // 62824d48dffc or 6282cd48dffc
|
||||
VAESDECLAST -17(BP)(SI*8), Z6, Z23 // 62e24d48dfbcf5efffffff or 62e2cd48dfbcf5efffffff
|
||||
VAESDECLAST (R15), Z6, Z23 // 62c24d48df3f or 62c2cd48df3f
|
||||
VAESDECLAST Z8, Z23, Z5 // 62d24540dfe8 or 62d2c540dfe8
|
||||
VAESDECLAST Z28, Z23, Z5 // 62924540dfec or 6292c540dfec
|
||||
VAESDECLAST -17(BP)(SI*8), Z23, Z5 // 62f24540dfacf5efffffff or 62f2c540dfacf5efffffff
|
||||
VAESDECLAST (R15), Z23, Z5 // 62d24540df2f or 62d2c540df2f
|
||||
VAESDECLAST Z8, Z6, Z5 // 62d24d48dfe8 or 62d2cd48dfe8
|
||||
VAESDECLAST Z28, Z6, Z5 // 62924d48dfec or 6292cd48dfec
|
||||
VAESDECLAST -17(BP)(SI*8), Z6, Z5 // 62f24d48dfacf5efffffff or 62f2cd48dfacf5efffffff
|
||||
VAESDECLAST (R15), Z6, Z5 // 62d24d48df2f or 62d2cd48df2f
|
||||
VAESENC X14, X16, X13 // 62527d00dcee or 6252fd00dcee
|
||||
VAESENC X19, X16, X13 // 62327d00dceb or 6232fd00dceb
|
||||
VAESENC X8, X16, X13 // 62527d00dce8 or 6252fd00dce8
|
||||
VAESENC 99(R15)(R15*8), X16, X13 // 62127d00dcacff63000000 or 6212fd00dcacff63000000
|
||||
VAESENC 7(AX)(CX*8), X16, X13 // 62727d00dcacc807000000 or 6272fd00dcacc807000000
|
||||
VAESENC X19, X14, X13 // 62320d08dceb or 62328d08dceb
|
||||
VAESENC X19, X11, X13 // 62322508dceb or 6232a508dceb
|
||||
VAESENC X14, X16, X0 // 62d27d00dcc6 or 62d2fd00dcc6
|
||||
VAESENC X19, X16, X0 // 62b27d00dcc3 or 62b2fd00dcc3
|
||||
VAESENC X8, X16, X0 // 62d27d00dcc0 or 62d2fd00dcc0
|
||||
VAESENC 99(R15)(R15*8), X16, X0 // 62927d00dc84ff63000000 or 6292fd00dc84ff63000000
|
||||
VAESENC 7(AX)(CX*8), X16, X0 // 62f27d00dc84c807000000 or 62f2fd00dc84c807000000
|
||||
VAESENC X19, X14, X0 // 62b20d08dcc3 or 62b28d08dcc3
|
||||
VAESENC X19, X11, X0 // 62b22508dcc3 or 62b2a508dcc3
|
||||
VAESENC X14, X16, X30 // 62427d00dcf6 or 6242fd00dcf6
|
||||
VAESENC X19, X16, X30 // 62227d00dcf3 or 6222fd00dcf3
|
||||
VAESENC X8, X16, X30 // 62427d00dcf0 or 6242fd00dcf0
|
||||
VAESENC 99(R15)(R15*8), X16, X30 // 62027d00dcb4ff63000000 or 6202fd00dcb4ff63000000
|
||||
VAESENC 7(AX)(CX*8), X16, X30 // 62627d00dcb4c807000000 or 6262fd00dcb4c807000000
|
||||
VAESENC X14, X14, X30 // 62420d08dcf6 or 62428d08dcf6
|
||||
VAESENC X19, X14, X30 // 62220d08dcf3 or 62228d08dcf3
|
||||
VAESENC X8, X14, X30 // 62420d08dcf0 or 62428d08dcf0
|
||||
VAESENC 99(R15)(R15*8), X14, X30 // 62020d08dcb4ff63000000 or 62028d08dcb4ff63000000
|
||||
VAESENC 7(AX)(CX*8), X14, X30 // 62620d08dcb4c807000000 or 62628d08dcb4c807000000
|
||||
VAESENC X14, X11, X30 // 62422508dcf6 or 6242a508dcf6
|
||||
VAESENC X19, X11, X30 // 62222508dcf3 or 6222a508dcf3
|
||||
VAESENC X8, X11, X30 // 62422508dcf0 or 6242a508dcf0
|
||||
VAESENC 99(R15)(R15*8), X11, X30 // 62022508dcb4ff63000000 or 6202a508dcb4ff63000000
|
||||
VAESENC 7(AX)(CX*8), X11, X30 // 62622508dcb4c807000000 or 6262a508dcb4c807000000
|
||||
VAESENC Y18, Y15, Y2 // 62b20528dcd2 or 62b28528dcd2
|
||||
VAESENC Y24, Y15, Y2 // 62920528dcd0 or 62928528dcd0
|
||||
VAESENC Y18, Y22, Y2 // 62b24d20dcd2 or 62b2cd20dcd2
|
||||
VAESENC Y24, Y22, Y2 // 62924d20dcd0 or 6292cd20dcd0
|
||||
VAESENC Y9, Y22, Y2 // 62d24d20dcd1 or 62d2cd20dcd1
|
||||
VAESENC 7(SI)(DI*8), Y22, Y2 // 62f24d20dc94fe07000000 or 62f2cd20dc94fe07000000
|
||||
VAESENC -15(R14), Y22, Y2 // 62d24d20dc96f1ffffff or 62d2cd20dc96f1ffffff
|
||||
VAESENC Y18, Y20, Y2 // 62b25d20dcd2 or 62b2dd20dcd2
|
||||
VAESENC Y24, Y20, Y2 // 62925d20dcd0 or 6292dd20dcd0
|
||||
VAESENC Y9, Y20, Y2 // 62d25d20dcd1 or 62d2dd20dcd1
|
||||
VAESENC 7(SI)(DI*8), Y20, Y2 // 62f25d20dc94fe07000000 or 62f2dd20dc94fe07000000
|
||||
VAESENC -15(R14), Y20, Y2 // 62d25d20dc96f1ffffff or 62d2dd20dc96f1ffffff
|
||||
VAESENC Y18, Y15, Y13 // 62320528dcea or 62328528dcea
|
||||
VAESENC Y24, Y15, Y13 // 62120528dce8 or 62128528dce8
|
||||
VAESENC Y18, Y22, Y13 // 62324d20dcea or 6232cd20dcea
|
||||
VAESENC Y24, Y22, Y13 // 62124d20dce8 or 6212cd20dce8
|
||||
VAESENC Y9, Y22, Y13 // 62524d20dce9 or 6252cd20dce9
|
||||
VAESENC 7(SI)(DI*8), Y22, Y13 // 62724d20dcacfe07000000 or 6272cd20dcacfe07000000
|
||||
VAESENC -15(R14), Y22, Y13 // 62524d20dcaef1ffffff or 6252cd20dcaef1ffffff
|
||||
VAESENC Y18, Y20, Y13 // 62325d20dcea or 6232dd20dcea
|
||||
VAESENC Y24, Y20, Y13 // 62125d20dce8 or 6212dd20dce8
|
||||
VAESENC Y9, Y20, Y13 // 62525d20dce9 or 6252dd20dce9
|
||||
VAESENC 7(SI)(DI*8), Y20, Y13 // 62725d20dcacfe07000000 or 6272dd20dcacfe07000000
|
||||
VAESENC -15(R14), Y20, Y13 // 62525d20dcaef1ffffff or 6252dd20dcaef1ffffff
|
||||
VAESENC Y18, Y15, Y27 // 62220528dcda or 62228528dcda
|
||||
VAESENC Y24, Y15, Y27 // 62020528dcd8 or 62028528dcd8
|
||||
VAESENC Y9, Y15, Y27 // 62420528dcd9 or 62428528dcd9
|
||||
VAESENC 7(SI)(DI*8), Y15, Y27 // 62620528dc9cfe07000000 or 62628528dc9cfe07000000
|
||||
VAESENC -15(R14), Y15, Y27 // 62420528dc9ef1ffffff or 62428528dc9ef1ffffff
|
||||
VAESENC Y18, Y22, Y27 // 62224d20dcda or 6222cd20dcda
|
||||
VAESENC Y24, Y22, Y27 // 62024d20dcd8 or 6202cd20dcd8
|
||||
VAESENC Y9, Y22, Y27 // 62424d20dcd9 or 6242cd20dcd9
|
||||
VAESENC 7(SI)(DI*8), Y22, Y27 // 62624d20dc9cfe07000000 or 6262cd20dc9cfe07000000
|
||||
VAESENC -15(R14), Y22, Y27 // 62424d20dc9ef1ffffff or 6242cd20dc9ef1ffffff
|
||||
VAESENC Y18, Y20, Y27 // 62225d20dcda or 6222dd20dcda
|
||||
VAESENC Y24, Y20, Y27 // 62025d20dcd8 or 6202dd20dcd8
|
||||
VAESENC Y9, Y20, Y27 // 62425d20dcd9 or 6242dd20dcd9
|
||||
VAESENC 7(SI)(DI*8), Y20, Y27 // 62625d20dc9cfe07000000 or 6262dd20dc9cfe07000000
|
||||
VAESENC -15(R14), Y20, Y27 // 62425d20dc9ef1ffffff or 6242dd20dc9ef1ffffff
|
||||
VAESENC Z12, Z16, Z21 // 62c27d40dcec or 62c2fd40dcec
|
||||
VAESENC Z27, Z16, Z21 // 62827d40dceb or 6282fd40dceb
|
||||
VAESENC 7(SI)(DI*8), Z16, Z21 // 62e27d40dcacfe07000000 or 62e2fd40dcacfe07000000
|
||||
VAESENC -15(R14), Z16, Z21 // 62c27d40dcaef1ffffff or 62c2fd40dcaef1ffffff
|
||||
VAESENC Z12, Z13, Z21 // 62c21548dcec or 62c29548dcec
|
||||
VAESENC Z27, Z13, Z21 // 62821548dceb or 62829548dceb
|
||||
VAESENC 7(SI)(DI*8), Z13, Z21 // 62e21548dcacfe07000000 or 62e29548dcacfe07000000
|
||||
VAESENC -15(R14), Z13, Z21 // 62c21548dcaef1ffffff or 62c29548dcaef1ffffff
|
||||
VAESENC Z12, Z16, Z5 // 62d27d40dcec or 62d2fd40dcec
|
||||
VAESENC Z27, Z16, Z5 // 62927d40dceb or 6292fd40dceb
|
||||
VAESENC 7(SI)(DI*8), Z16, Z5 // 62f27d40dcacfe07000000 or 62f2fd40dcacfe07000000
|
||||
VAESENC -15(R14), Z16, Z5 // 62d27d40dcaef1ffffff or 62d2fd40dcaef1ffffff
|
||||
VAESENC Z12, Z13, Z5 // 62d21548dcec or 62d29548dcec
|
||||
VAESENC Z27, Z13, Z5 // 62921548dceb or 62929548dceb
|
||||
VAESENC 7(SI)(DI*8), Z13, Z5 // 62f21548dcacfe07000000 or 62f29548dcacfe07000000
|
||||
VAESENC -15(R14), Z13, Z5 // 62d21548dcaef1ffffff or 62d29548dcaef1ffffff
|
||||
VAESENCLAST X23, X12, X8 // 62321d08ddc7 or 62329d08ddc7
|
||||
VAESENCLAST X31, X12, X8 // 62121d08ddc7 or 62129d08ddc7
|
||||
VAESENCLAST X23, X16, X8 // 62327d00ddc7 or 6232fd00ddc7
|
||||
VAESENCLAST X11, X16, X8 // 62527d00ddc3 or 6252fd00ddc3
|
||||
VAESENCLAST X31, X16, X8 // 62127d00ddc7 or 6212fd00ddc7
|
||||
VAESENCLAST (AX), X16, X8 // 62727d00dd00 or 6272fd00dd00
|
||||
VAESENCLAST 7(SI), X16, X8 // 62727d00dd8607000000 or 6272fd00dd8607000000
|
||||
VAESENCLAST X23, X23, X8 // 62324500ddc7 or 6232c500ddc7
|
||||
VAESENCLAST X11, X23, X8 // 62524500ddc3 or 6252c500ddc3
|
||||
VAESENCLAST X31, X23, X8 // 62124500ddc7 or 6212c500ddc7
|
||||
VAESENCLAST (AX), X23, X8 // 62724500dd00 or 6272c500dd00
|
||||
VAESENCLAST 7(SI), X23, X8 // 62724500dd8607000000 or 6272c500dd8607000000
|
||||
VAESENCLAST X23, X12, X26 // 62221d08ddd7 or 62229d08ddd7
|
||||
VAESENCLAST X11, X12, X26 // 62421d08ddd3 or 62429d08ddd3
|
||||
VAESENCLAST X31, X12, X26 // 62021d08ddd7 or 62029d08ddd7
|
||||
VAESENCLAST (AX), X12, X26 // 62621d08dd10 or 62629d08dd10
|
||||
VAESENCLAST 7(SI), X12, X26 // 62621d08dd9607000000 or 62629d08dd9607000000
|
||||
VAESENCLAST X23, X16, X26 // 62227d00ddd7 or 6222fd00ddd7
|
||||
VAESENCLAST X11, X16, X26 // 62427d00ddd3 or 6242fd00ddd3
|
||||
VAESENCLAST X31, X16, X26 // 62027d00ddd7 or 6202fd00ddd7
|
||||
VAESENCLAST (AX), X16, X26 // 62627d00dd10 or 6262fd00dd10
|
||||
VAESENCLAST 7(SI), X16, X26 // 62627d00dd9607000000 or 6262fd00dd9607000000
|
||||
VAESENCLAST X23, X23, X26 // 62224500ddd7 or 6222c500ddd7
|
||||
VAESENCLAST X11, X23, X26 // 62424500ddd3 or 6242c500ddd3
|
||||
VAESENCLAST X31, X23, X26 // 62024500ddd7 or 6202c500ddd7
|
||||
VAESENCLAST (AX), X23, X26 // 62624500dd10 or 6262c500dd10
|
||||
VAESENCLAST 7(SI), X23, X26 // 62624500dd9607000000 or 6262c500dd9607000000
|
||||
VAESENCLAST X23, X12, X23 // 62a21d08ddff or 62a29d08ddff
|
||||
VAESENCLAST X11, X12, X23 // 62c21d08ddfb or 62c29d08ddfb
|
||||
VAESENCLAST X31, X12, X23 // 62821d08ddff or 62829d08ddff
|
||||
VAESENCLAST (AX), X12, X23 // 62e21d08dd38 or 62e29d08dd38
|
||||
VAESENCLAST 7(SI), X12, X23 // 62e21d08ddbe07000000 or 62e29d08ddbe07000000
|
||||
VAESENCLAST X23, X16, X23 // 62a27d00ddff or 62a2fd00ddff
|
||||
VAESENCLAST X11, X16, X23 // 62c27d00ddfb or 62c2fd00ddfb
|
||||
VAESENCLAST X31, X16, X23 // 62827d00ddff or 6282fd00ddff
|
||||
VAESENCLAST (AX), X16, X23 // 62e27d00dd38 or 62e2fd00dd38
|
||||
VAESENCLAST 7(SI), X16, X23 // 62e27d00ddbe07000000 or 62e2fd00ddbe07000000
|
||||
VAESENCLAST X23, X23, X23 // 62a24500ddff or 62a2c500ddff
|
||||
VAESENCLAST X11, X23, X23 // 62c24500ddfb or 62c2c500ddfb
|
||||
VAESENCLAST X31, X23, X23 // 62824500ddff or 6282c500ddff
|
||||
VAESENCLAST (AX), X23, X23 // 62e24500dd38 or 62e2c500dd38
|
||||
VAESENCLAST 7(SI), X23, X23 // 62e24500ddbe07000000 or 62e2c500ddbe07000000
|
||||
VAESENCLAST Y5, Y19, Y3 // 62f26520dddd or 62f2e520dddd
|
||||
VAESENCLAST Y16, Y19, Y3 // 62b26520ddd8 or 62b2e520ddd8
|
||||
VAESENCLAST Y2, Y19, Y3 // 62f26520ddda or 62f2e520ddda
|
||||
VAESENCLAST 7(SI)(DI*1), Y19, Y3 // 62f26520dd9c3e07000000 or 62f2e520dd9c3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Y19, Y3 // 62f26520dd9cda0f000000 or 62f2e520dd9cda0f000000
|
||||
VAESENCLAST Y16, Y14, Y3 // 62b20d28ddd8 or 62b28d28ddd8
|
||||
VAESENCLAST Y5, Y21, Y3 // 62f25520dddd or 62f2d520dddd
|
||||
VAESENCLAST Y16, Y21, Y3 // 62b25520ddd8 or 62b2d520ddd8
|
||||
VAESENCLAST Y2, Y21, Y3 // 62f25520ddda or 62f2d520ddda
|
||||
VAESENCLAST 7(SI)(DI*1), Y21, Y3 // 62f25520dd9c3e07000000 or 62f2d520dd9c3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Y21, Y3 // 62f25520dd9cda0f000000 or 62f2d520dd9cda0f000000
|
||||
VAESENCLAST Y5, Y19, Y19 // 62e26520dddd or 62e2e520dddd
|
||||
VAESENCLAST Y16, Y19, Y19 // 62a26520ddd8 or 62a2e520ddd8
|
||||
VAESENCLAST Y2, Y19, Y19 // 62e26520ddda or 62e2e520ddda
|
||||
VAESENCLAST 7(SI)(DI*1), Y19, Y19 // 62e26520dd9c3e07000000 or 62e2e520dd9c3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Y19, Y19 // 62e26520dd9cda0f000000 or 62e2e520dd9cda0f000000
|
||||
VAESENCLAST Y5, Y14, Y19 // 62e20d28dddd or 62e28d28dddd
|
||||
VAESENCLAST Y16, Y14, Y19 // 62a20d28ddd8 or 62a28d28ddd8
|
||||
VAESENCLAST Y2, Y14, Y19 // 62e20d28ddda or 62e28d28ddda
|
||||
VAESENCLAST 7(SI)(DI*1), Y14, Y19 // 62e20d28dd9c3e07000000 or 62e28d28dd9c3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Y14, Y19 // 62e20d28dd9cda0f000000 or 62e28d28dd9cda0f000000
|
||||
VAESENCLAST Y5, Y21, Y19 // 62e25520dddd or 62e2d520dddd
|
||||
VAESENCLAST Y16, Y21, Y19 // 62a25520ddd8 or 62a2d520ddd8
|
||||
VAESENCLAST Y2, Y21, Y19 // 62e25520ddda or 62e2d520ddda
|
||||
VAESENCLAST 7(SI)(DI*1), Y21, Y19 // 62e25520dd9c3e07000000 or 62e2d520dd9c3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Y21, Y19 // 62e25520dd9cda0f000000 or 62e2d520dd9cda0f000000
|
||||
VAESENCLAST Y5, Y19, Y23 // 62e26520ddfd or 62e2e520ddfd
|
||||
VAESENCLAST Y16, Y19, Y23 // 62a26520ddf8 or 62a2e520ddf8
|
||||
VAESENCLAST Y2, Y19, Y23 // 62e26520ddfa or 62e2e520ddfa
|
||||
VAESENCLAST 7(SI)(DI*1), Y19, Y23 // 62e26520ddbc3e07000000 or 62e2e520ddbc3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Y19, Y23 // 62e26520ddbcda0f000000 or 62e2e520ddbcda0f000000
|
||||
VAESENCLAST Y5, Y14, Y23 // 62e20d28ddfd or 62e28d28ddfd
|
||||
VAESENCLAST Y16, Y14, Y23 // 62a20d28ddf8 or 62a28d28ddf8
|
||||
VAESENCLAST Y2, Y14, Y23 // 62e20d28ddfa or 62e28d28ddfa
|
||||
VAESENCLAST 7(SI)(DI*1), Y14, Y23 // 62e20d28ddbc3e07000000 or 62e28d28ddbc3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Y14, Y23 // 62e20d28ddbcda0f000000 or 62e28d28ddbcda0f000000
|
||||
VAESENCLAST Y5, Y21, Y23 // 62e25520ddfd or 62e2d520ddfd
|
||||
VAESENCLAST Y16, Y21, Y23 // 62a25520ddf8 or 62a2d520ddf8
|
||||
VAESENCLAST Y2, Y21, Y23 // 62e25520ddfa or 62e2d520ddfa
|
||||
VAESENCLAST 7(SI)(DI*1), Y21, Y23 // 62e25520ddbc3e07000000 or 62e2d520ddbc3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Y21, Y23 // 62e25520ddbcda0f000000 or 62e2d520ddbcda0f000000
|
||||
VAESENCLAST Z25, Z6, Z22 // 62824d48ddf1 or 6282cd48ddf1
|
||||
VAESENCLAST Z12, Z6, Z22 // 62c24d48ddf4 or 62c2cd48ddf4
|
||||
VAESENCLAST 7(SI)(DI*1), Z6, Z22 // 62e24d48ddb43e07000000 or 62e2cd48ddb43e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Z6, Z22 // 62e24d48ddb4da0f000000 or 62e2cd48ddb4da0f000000
|
||||
VAESENCLAST Z25, Z8, Z22 // 62823d48ddf1 or 6282bd48ddf1
|
||||
VAESENCLAST Z12, Z8, Z22 // 62c23d48ddf4 or 62c2bd48ddf4
|
||||
VAESENCLAST 7(SI)(DI*1), Z8, Z22 // 62e23d48ddb43e07000000 or 62e2bd48ddb43e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Z8, Z22 // 62e23d48ddb4da0f000000 or 62e2bd48ddb4da0f000000
|
||||
VAESENCLAST Z25, Z6, Z11 // 62124d48ddd9 or 6212cd48ddd9
|
||||
VAESENCLAST Z12, Z6, Z11 // 62524d48dddc or 6252cd48dddc
|
||||
VAESENCLAST 7(SI)(DI*1), Z6, Z11 // 62724d48dd9c3e07000000 or 6272cd48dd9c3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Z6, Z11 // 62724d48dd9cda0f000000 or 6272cd48dd9cda0f000000
|
||||
VAESENCLAST Z25, Z8, Z11 // 62123d48ddd9 or 6212bd48ddd9
|
||||
VAESENCLAST Z12, Z8, Z11 // 62523d48dddc or 6252bd48dddc
|
||||
VAESENCLAST 7(SI)(DI*1), Z8, Z11 // 62723d48dd9c3e07000000 or 6272bd48dd9c3e07000000
|
||||
VAESENCLAST 15(DX)(BX*8), Z8, Z11 // 62723d48dd9cda0f000000 or 6272bd48dd9cda0f000000
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -3,64 +3,64 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512_4fmaps(SB), NOSPLIT, $0
|
||||
//TODO: V4FMADDPS 17(SP), [Z0-Z3], K2, Z0 // 62f27f4a9a842411000000
|
||||
//TODO: V4FMADDPS -17(BP)(SI*4), [Z0-Z3], K2, Z0 // 62f27f4a9a84b5efffffff
|
||||
//TODO: V4FMADDPS 17(SP), [Z10-Z13], K2, Z0 // 62f22f4a9a842411000000
|
||||
//TODO: V4FMADDPS -17(BP)(SI*4), [Z10-Z13], K2, Z0 // 62f22f4a9a84b5efffffff
|
||||
//TODO: V4FMADDPS 17(SP), [Z20-Z23], K2, Z0 // 62f25f429a842411000000
|
||||
//TODO: V4FMADDPS -17(BP)(SI*4), [Z20-Z23], K2, Z0 // 62f25f429a84b5efffffff
|
||||
//TODO: V4FMADDPS 17(SP), [Z0-Z3], K2, Z8 // 62727f4a9a842411000000
|
||||
//TODO: V4FMADDPS -17(BP)(SI*4), [Z0-Z3], K2, Z8 // 62727f4a9a84b5efffffff
|
||||
//TODO: V4FMADDPS 17(SP), [Z10-Z13], K2, Z8 // 62722f4a9a842411000000
|
||||
//TODO: V4FMADDPS -17(BP)(SI*4), [Z10-Z13], K2, Z8 // 62722f4a9a84b5efffffff
|
||||
//TODO: V4FMADDPS 17(SP), [Z20-Z23], K2, Z8 // 62725f429a842411000000
|
||||
//TODO: V4FMADDPS -17(BP)(SI*4), [Z20-Z23], K2, Z8 // 62725f429a84b5efffffff
|
||||
//TODO: V4FMADDSS 7(AX), [X0-X3], K5, X22 // 62e27f0d9bb007000000 or 62e27f2d9bb007000000 or 62e27f4d9bb007000000
|
||||
//TODO: V4FMADDSS (DI), [X0-X3], K5, X22 // 62e27f0d9b37 or 62e27f2d9b37 or 62e27f4d9b37
|
||||
//TODO: V4FMADDSS 7(AX), [X10-X13], K5, X22 // 62e22f0d9bb007000000 or 62e22f2d9bb007000000 or 62e22f4d9bb007000000
|
||||
//TODO: V4FMADDSS (DI), [X10-X13], K5, X22 // 62e22f0d9b37 or 62e22f2d9b37 or 62e22f4d9b37
|
||||
//TODO: V4FMADDSS 7(AX), [X20-X23], K5, X22 // 62e25f059bb007000000 or 62e25f259bb007000000 or 62e25f459bb007000000
|
||||
//TODO: V4FMADDSS (DI), [X20-X23], K5, X22 // 62e25f059b37 or 62e25f259b37 or 62e25f459b37
|
||||
//TODO: V4FMADDSS 7(AX), [X0-X3], K5, X30 // 62627f0d9bb007000000 or 62627f2d9bb007000000 or 62627f4d9bb007000000
|
||||
//TODO: V4FMADDSS (DI), [X0-X3], K5, X30 // 62627f0d9b37 or 62627f2d9b37 or 62627f4d9b37
|
||||
//TODO: V4FMADDSS 7(AX), [X10-X13], K5, X30 // 62622f0d9bb007000000 or 62622f2d9bb007000000 or 62622f4d9bb007000000
|
||||
//TODO: V4FMADDSS (DI), [X10-X13], K5, X30 // 62622f0d9b37 or 62622f2d9b37 or 62622f4d9b37
|
||||
//TODO: V4FMADDSS 7(AX), [X20-X23], K5, X30 // 62625f059bb007000000 or 62625f259bb007000000 or 62625f459bb007000000
|
||||
//TODO: V4FMADDSS (DI), [X20-X23], K5, X30 // 62625f059b37 or 62625f259b37 or 62625f459b37
|
||||
//TODO: V4FMADDSS 7(AX), [X0-X3], K5, X3 // 62f27f0d9b9807000000 or 62f27f2d9b9807000000 or 62f27f4d9b9807000000
|
||||
//TODO: V4FMADDSS (DI), [X0-X3], K5, X3 // 62f27f0d9b1f or 62f27f2d9b1f or 62f27f4d9b1f
|
||||
//TODO: V4FMADDSS 7(AX), [X10-X13], K5, X3 // 62f22f0d9b9807000000 or 62f22f2d9b9807000000 or 62f22f4d9b9807000000
|
||||
//TODO: V4FMADDSS (DI), [X10-X13], K5, X3 // 62f22f0d9b1f or 62f22f2d9b1f or 62f22f4d9b1f
|
||||
//TODO: V4FMADDSS 7(AX), [X20-X23], K5, X3 // 62f25f059b9807000000 or 62f25f259b9807000000 or 62f25f459b9807000000
|
||||
//TODO: V4FMADDSS (DI), [X20-X23], K5, X3 // 62f25f059b1f or 62f25f259b1f or 62f25f459b1f
|
||||
//TODO: V4FNMADDPS 99(R15)(R15*1), [Z1-Z4], K3, Z15 // 6212774baabc3f63000000
|
||||
//TODO: V4FNMADDPS (DX), [Z1-Z4], K3, Z15 // 6272774baa3a
|
||||
//TODO: V4FNMADDPS 99(R15)(R15*1), [Z11-Z14], K3, Z15 // 6212274baabc3f63000000
|
||||
//TODO: V4FNMADDPS (DX), [Z11-Z14], K3, Z15 // 6272274baa3a
|
||||
//TODO: V4FNMADDPS 99(R15)(R15*1), [Z21-Z24], K3, Z15 // 62125743aabc3f63000000
|
||||
//TODO: V4FNMADDPS (DX), [Z21-Z24], K3, Z15 // 62725743aa3a
|
||||
//TODO: V4FNMADDPS 99(R15)(R15*1), [Z1-Z4], K3, Z12 // 6212774baaa43f63000000
|
||||
//TODO: V4FNMADDPS (DX), [Z1-Z4], K3, Z12 // 6272774baa22
|
||||
//TODO: V4FNMADDPS 99(R15)(R15*1), [Z11-Z14], K3, Z12 // 6212274baaa43f63000000
|
||||
//TODO: V4FNMADDPS (DX), [Z11-Z14], K3, Z12 // 6272274baa22
|
||||
//TODO: V4FNMADDPS 99(R15)(R15*1), [Z21-Z24], K3, Z12 // 62125743aaa43f63000000
|
||||
//TODO: V4FNMADDPS (DX), [Z21-Z24], K3, Z12 // 62725743aa22
|
||||
//TODO: V4FNMADDSS -17(BP)(SI*8), [X1-X4], K4, X11 // 6272770cab9cf5efffffff or 6272772cab9cf5efffffff or 6272774cab9cf5efffffff
|
||||
//TODO: V4FNMADDSS (R15), [X1-X4], K4, X11 // 6252770cab1f or 6252772cab1f or 6252774cab1f
|
||||
//TODO: V4FNMADDSS -17(BP)(SI*8), [X11-X14], K4, X11 // 6272270cab9cf5efffffff or 6272272cab9cf5efffffff or 6272274cab9cf5efffffff
|
||||
//TODO: V4FNMADDSS (R15), [X11-X14], K4, X11 // 6252270cab1f or 6252272cab1f or 6252274cab1f
|
||||
//TODO: V4FNMADDSS -17(BP)(SI*8), [X21-X24], K4, X11 // 62725704ab9cf5efffffff or 62725724ab9cf5efffffff or 62725744ab9cf5efffffff
|
||||
//TODO: V4FNMADDSS (R15), [X21-X24], K4, X11 // 62525704ab1f or 62525724ab1f or 62525744ab1f
|
||||
//TODO: V4FNMADDSS -17(BP)(SI*8), [X1-X4], K4, X15 // 6272770cabbcf5efffffff or 6272772cabbcf5efffffff or 6272774cabbcf5efffffff
|
||||
//TODO: V4FNMADDSS (R15), [X1-X4], K4, X15 // 6252770cab3f or 6252772cab3f or 6252774cab3f
|
||||
//TODO: V4FNMADDSS -17(BP)(SI*8), [X11-X14], K4, X15 // 6272270cabbcf5efffffff or 6272272cabbcf5efffffff or 6272274cabbcf5efffffff
|
||||
//TODO: V4FNMADDSS (R15), [X11-X14], K4, X15 // 6252270cab3f or 6252272cab3f or 6252274cab3f
|
||||
//TODO: V4FNMADDSS -17(BP)(SI*8), [X21-X24], K4, X15 // 62725704abbcf5efffffff or 62725724abbcf5efffffff or 62725744abbcf5efffffff
|
||||
//TODO: V4FNMADDSS (R15), [X21-X24], K4, X15 // 62525704ab3f or 62525724ab3f or 62525744ab3f
|
||||
//TODO: V4FNMADDSS -17(BP)(SI*8), [X1-X4], K4, X30 // 6262770cabb4f5efffffff or 6262772cabb4f5efffffff or 6262774cabb4f5efffffff
|
||||
//TODO: V4FNMADDSS (R15), [X1-X4], K4, X30 // 6242770cab37 or 6242772cab37 or 6242774cab37
|
||||
//TODO: V4FNMADDSS -17(BP)(SI*8), [X11-X14], K4, X30 // 6262270cabb4f5efffffff or 6262272cabb4f5efffffff or 6262274cabb4f5efffffff
|
||||
//TODO: V4FNMADDSS (R15), [X11-X14], K4, X30 // 6242270cab37 or 6242272cab37 or 6242274cab37
|
||||
//TODO: V4FNMADDSS -17(BP)(SI*8), [X21-X24], K4, X30 // 62625704abb4f5efffffff or 62625724abb4f5efffffff or 62625744abb4f5efffffff
|
||||
//TODO: V4FNMADDSS (R15), [X21-X24], K4, X30 // 62425704ab37 or 62425724ab37 or 62425744ab37
|
||||
V4FMADDPS 17(SP), [Z0-Z3], K2, Z0 // 62f27f4a9a842411000000
|
||||
V4FMADDPS -17(BP)(SI*4), [Z0-Z3], K2, Z0 // 62f27f4a9a84b5efffffff
|
||||
V4FMADDPS 17(SP), [Z10-Z13], K2, Z0 // 62f22f4a9a842411000000
|
||||
V4FMADDPS -17(BP)(SI*4), [Z10-Z13], K2, Z0 // 62f22f4a9a84b5efffffff
|
||||
V4FMADDPS 17(SP), [Z20-Z23], K2, Z0 // 62f25f429a842411000000
|
||||
V4FMADDPS -17(BP)(SI*4), [Z20-Z23], K2, Z0 // 62f25f429a84b5efffffff
|
||||
V4FMADDPS 17(SP), [Z0-Z3], K2, Z8 // 62727f4a9a842411000000
|
||||
V4FMADDPS -17(BP)(SI*4), [Z0-Z3], K2, Z8 // 62727f4a9a84b5efffffff
|
||||
V4FMADDPS 17(SP), [Z10-Z13], K2, Z8 // 62722f4a9a842411000000
|
||||
V4FMADDPS -17(BP)(SI*4), [Z10-Z13], K2, Z8 // 62722f4a9a84b5efffffff
|
||||
V4FMADDPS 17(SP), [Z20-Z23], K2, Z8 // 62725f429a842411000000
|
||||
V4FMADDPS -17(BP)(SI*4), [Z20-Z23], K2, Z8 // 62725f429a84b5efffffff
|
||||
V4FMADDSS 7(AX), [X0-X3], K5, X22 // 62e27f0d9bb007000000 or 62e27f2d9bb007000000 or 62e27f4d9bb007000000
|
||||
V4FMADDSS (DI), [X0-X3], K5, X22 // 62e27f0d9b37 or 62e27f2d9b37 or 62e27f4d9b37
|
||||
V4FMADDSS 7(AX), [X10-X13], K5, X22 // 62e22f0d9bb007000000 or 62e22f2d9bb007000000 or 62e22f4d9bb007000000
|
||||
V4FMADDSS (DI), [X10-X13], K5, X22 // 62e22f0d9b37 or 62e22f2d9b37 or 62e22f4d9b37
|
||||
V4FMADDSS 7(AX), [X20-X23], K5, X22 // 62e25f059bb007000000 or 62e25f259bb007000000 or 62e25f459bb007000000
|
||||
V4FMADDSS (DI), [X20-X23], K5, X22 // 62e25f059b37 or 62e25f259b37 or 62e25f459b37
|
||||
V4FMADDSS 7(AX), [X0-X3], K5, X30 // 62627f0d9bb007000000 or 62627f2d9bb007000000 or 62627f4d9bb007000000
|
||||
V4FMADDSS (DI), [X0-X3], K5, X30 // 62627f0d9b37 or 62627f2d9b37 or 62627f4d9b37
|
||||
V4FMADDSS 7(AX), [X10-X13], K5, X30 // 62622f0d9bb007000000 or 62622f2d9bb007000000 or 62622f4d9bb007000000
|
||||
V4FMADDSS (DI), [X10-X13], K5, X30 // 62622f0d9b37 or 62622f2d9b37 or 62622f4d9b37
|
||||
V4FMADDSS 7(AX), [X20-X23], K5, X30 // 62625f059bb007000000 or 62625f259bb007000000 or 62625f459bb007000000
|
||||
V4FMADDSS (DI), [X20-X23], K5, X30 // 62625f059b37 or 62625f259b37 or 62625f459b37
|
||||
V4FMADDSS 7(AX), [X0-X3], K5, X3 // 62f27f0d9b9807000000 or 62f27f2d9b9807000000 or 62f27f4d9b9807000000
|
||||
V4FMADDSS (DI), [X0-X3], K5, X3 // 62f27f0d9b1f or 62f27f2d9b1f or 62f27f4d9b1f
|
||||
V4FMADDSS 7(AX), [X10-X13], K5, X3 // 62f22f0d9b9807000000 or 62f22f2d9b9807000000 or 62f22f4d9b9807000000
|
||||
V4FMADDSS (DI), [X10-X13], K5, X3 // 62f22f0d9b1f or 62f22f2d9b1f or 62f22f4d9b1f
|
||||
V4FMADDSS 7(AX), [X20-X23], K5, X3 // 62f25f059b9807000000 or 62f25f259b9807000000 or 62f25f459b9807000000
|
||||
V4FMADDSS (DI), [X20-X23], K5, X3 // 62f25f059b1f or 62f25f259b1f or 62f25f459b1f
|
||||
V4FNMADDPS 99(R15)(R15*1), [Z1-Z4], K3, Z15 // 6212774baabc3f63000000
|
||||
V4FNMADDPS (DX), [Z1-Z4], K3, Z15 // 6272774baa3a
|
||||
V4FNMADDPS 99(R15)(R15*1), [Z11-Z14], K3, Z15 // 6212274baabc3f63000000
|
||||
V4FNMADDPS (DX), [Z11-Z14], K3, Z15 // 6272274baa3a
|
||||
V4FNMADDPS 99(R15)(R15*1), [Z21-Z24], K3, Z15 // 62125743aabc3f63000000
|
||||
V4FNMADDPS (DX), [Z21-Z24], K3, Z15 // 62725743aa3a
|
||||
V4FNMADDPS 99(R15)(R15*1), [Z1-Z4], K3, Z12 // 6212774baaa43f63000000
|
||||
V4FNMADDPS (DX), [Z1-Z4], K3, Z12 // 6272774baa22
|
||||
V4FNMADDPS 99(R15)(R15*1), [Z11-Z14], K3, Z12 // 6212274baaa43f63000000
|
||||
V4FNMADDPS (DX), [Z11-Z14], K3, Z12 // 6272274baa22
|
||||
V4FNMADDPS 99(R15)(R15*1), [Z21-Z24], K3, Z12 // 62125743aaa43f63000000
|
||||
V4FNMADDPS (DX), [Z21-Z24], K3, Z12 // 62725743aa22
|
||||
V4FNMADDSS -17(BP)(SI*8), [X1-X4], K4, X11 // 6272770cab9cf5efffffff or 6272772cab9cf5efffffff or 6272774cab9cf5efffffff
|
||||
V4FNMADDSS (R15), [X1-X4], K4, X11 // 6252770cab1f or 6252772cab1f or 6252774cab1f
|
||||
V4FNMADDSS -17(BP)(SI*8), [X11-X14], K4, X11 // 6272270cab9cf5efffffff or 6272272cab9cf5efffffff or 6272274cab9cf5efffffff
|
||||
V4FNMADDSS (R15), [X11-X14], K4, X11 // 6252270cab1f or 6252272cab1f or 6252274cab1f
|
||||
V4FNMADDSS -17(BP)(SI*8), [X21-X24], K4, X11 // 62725704ab9cf5efffffff or 62725724ab9cf5efffffff or 62725744ab9cf5efffffff
|
||||
V4FNMADDSS (R15), [X21-X24], K4, X11 // 62525704ab1f or 62525724ab1f or 62525744ab1f
|
||||
V4FNMADDSS -17(BP)(SI*8), [X1-X4], K4, X15 // 6272770cabbcf5efffffff or 6272772cabbcf5efffffff or 6272774cabbcf5efffffff
|
||||
V4FNMADDSS (R15), [X1-X4], K4, X15 // 6252770cab3f or 6252772cab3f or 6252774cab3f
|
||||
V4FNMADDSS -17(BP)(SI*8), [X11-X14], K4, X15 // 6272270cabbcf5efffffff or 6272272cabbcf5efffffff or 6272274cabbcf5efffffff
|
||||
V4FNMADDSS (R15), [X11-X14], K4, X15 // 6252270cab3f or 6252272cab3f or 6252274cab3f
|
||||
V4FNMADDSS -17(BP)(SI*8), [X21-X24], K4, X15 // 62725704abbcf5efffffff or 62725724abbcf5efffffff or 62725744abbcf5efffffff
|
||||
V4FNMADDSS (R15), [X21-X24], K4, X15 // 62525704ab3f or 62525724ab3f or 62525744ab3f
|
||||
V4FNMADDSS -17(BP)(SI*8), [X1-X4], K4, X30 // 6262770cabb4f5efffffff or 6262772cabb4f5efffffff or 6262774cabb4f5efffffff
|
||||
V4FNMADDSS (R15), [X1-X4], K4, X30 // 6242770cab37 or 6242772cab37 or 6242774cab37
|
||||
V4FNMADDSS -17(BP)(SI*8), [X11-X14], K4, X30 // 6262270cabb4f5efffffff or 6262272cabb4f5efffffff or 6262274cabb4f5efffffff
|
||||
V4FNMADDSS (R15), [X11-X14], K4, X30 // 6242270cab37 or 6242272cab37 or 6242274cab37
|
||||
V4FNMADDSS -17(BP)(SI*8), [X21-X24], K4, X30 // 62625704abb4f5efffffff or 62625724abb4f5efffffff or 62625744abb4f5efffffff
|
||||
V4FNMADDSS (R15), [X21-X24], K4, X30 // 62425704ab37 or 62425724ab37 or 62425744ab37
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -3,28 +3,28 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512_4vnniw(SB), NOSPLIT, $0
|
||||
//TODO: VP4DPWSSD 7(SI)(DI*1), [Z2-Z5], K4, Z17 // 62e26f4c528c3e07000000
|
||||
//TODO: VP4DPWSSD 15(DX)(BX*8), [Z2-Z5], K4, Z17 // 62e26f4c528cda0f000000
|
||||
//TODO: VP4DPWSSD 7(SI)(DI*1), [Z12-Z15], K4, Z17 // 62e21f4c528c3e07000000
|
||||
//TODO: VP4DPWSSD 15(DX)(BX*8), [Z12-Z15], K4, Z17 // 62e21f4c528cda0f000000
|
||||
//TODO: VP4DPWSSD 7(SI)(DI*1), [Z22-Z25], K4, Z17 // 62e24f44528c3e07000000
|
||||
//TODO: VP4DPWSSD 15(DX)(BX*8), [Z22-Z25], K4, Z17 // 62e24f44528cda0f000000
|
||||
//TODO: VP4DPWSSD 7(SI)(DI*1), [Z2-Z5], K4, Z23 // 62e26f4c52bc3e07000000
|
||||
//TODO: VP4DPWSSD 15(DX)(BX*8), [Z2-Z5], K4, Z23 // 62e26f4c52bcda0f000000
|
||||
//TODO: VP4DPWSSD 7(SI)(DI*1), [Z12-Z15], K4, Z23 // 62e21f4c52bc3e07000000
|
||||
//TODO: VP4DPWSSD 15(DX)(BX*8), [Z12-Z15], K4, Z23 // 62e21f4c52bcda0f000000
|
||||
//TODO: VP4DPWSSD 7(SI)(DI*1), [Z22-Z25], K4, Z23 // 62e24f4452bc3e07000000
|
||||
//TODO: VP4DPWSSD 15(DX)(BX*8), [Z22-Z25], K4, Z23 // 62e24f4452bcda0f000000
|
||||
//TODO: VP4DPWSSDS -7(DI)(R8*1), [Z4-Z7], K1, Z31 // 62225f4953bc07f9ffffff
|
||||
//TODO: VP4DPWSSDS (SP), [Z4-Z7], K1, Z31 // 62625f49533c24
|
||||
//TODO: VP4DPWSSDS -7(DI)(R8*1), [Z14-Z17], K1, Z31 // 62220f4953bc07f9ffffff
|
||||
//TODO: VP4DPWSSDS (SP), [Z14-Z17], K1, Z31 // 62620f49533c24
|
||||
//TODO: VP4DPWSSDS -7(DI)(R8*1), [Z24-Z27], K1, Z31 // 62223f4153bc07f9ffffff
|
||||
//TODO: VP4DPWSSDS (SP), [Z24-Z27], K1, Z31 // 62623f41533c24
|
||||
//TODO: VP4DPWSSDS -7(DI)(R8*1), [Z4-Z7], K1, Z0 // 62b25f49538407f9ffffff
|
||||
//TODO: VP4DPWSSDS (SP), [Z4-Z7], K1, Z0 // 62f25f49530424
|
||||
//TODO: VP4DPWSSDS -7(DI)(R8*1), [Z14-Z17], K1, Z0 // 62b20f49538407f9ffffff
|
||||
//TODO: VP4DPWSSDS (SP), [Z14-Z17], K1, Z0 // 62f20f49530424
|
||||
//TODO: VP4DPWSSDS -7(DI)(R8*1), [Z24-Z27], K1, Z0 // 62b23f41538407f9ffffff
|
||||
//TODO: VP4DPWSSDS (SP), [Z24-Z27], K1, Z0 // 62f23f41530424
|
||||
VP4DPWSSD 7(SI)(DI*1), [Z2-Z5], K4, Z17 // 62e26f4c528c3e07000000
|
||||
VP4DPWSSD 15(DX)(BX*8), [Z2-Z5], K4, Z17 // 62e26f4c528cda0f000000
|
||||
VP4DPWSSD 7(SI)(DI*1), [Z12-Z15], K4, Z17 // 62e21f4c528c3e07000000
|
||||
VP4DPWSSD 15(DX)(BX*8), [Z12-Z15], K4, Z17 // 62e21f4c528cda0f000000
|
||||
VP4DPWSSD 7(SI)(DI*1), [Z22-Z25], K4, Z17 // 62e24f44528c3e07000000
|
||||
VP4DPWSSD 15(DX)(BX*8), [Z22-Z25], K4, Z17 // 62e24f44528cda0f000000
|
||||
VP4DPWSSD 7(SI)(DI*1), [Z2-Z5], K4, Z23 // 62e26f4c52bc3e07000000
|
||||
VP4DPWSSD 15(DX)(BX*8), [Z2-Z5], K4, Z23 // 62e26f4c52bcda0f000000
|
||||
VP4DPWSSD 7(SI)(DI*1), [Z12-Z15], K4, Z23 // 62e21f4c52bc3e07000000
|
||||
VP4DPWSSD 15(DX)(BX*8), [Z12-Z15], K4, Z23 // 62e21f4c52bcda0f000000
|
||||
VP4DPWSSD 7(SI)(DI*1), [Z22-Z25], K4, Z23 // 62e24f4452bc3e07000000
|
||||
VP4DPWSSD 15(DX)(BX*8), [Z22-Z25], K4, Z23 // 62e24f4452bcda0f000000
|
||||
VP4DPWSSDS -7(DI)(R8*1), [Z4-Z7], K1, Z31 // 62225f4953bc07f9ffffff
|
||||
VP4DPWSSDS (SP), [Z4-Z7], K1, Z31 // 62625f49533c24
|
||||
VP4DPWSSDS -7(DI)(R8*1), [Z14-Z17], K1, Z31 // 62220f4953bc07f9ffffff
|
||||
VP4DPWSSDS (SP), [Z14-Z17], K1, Z31 // 62620f49533c24
|
||||
VP4DPWSSDS -7(DI)(R8*1), [Z24-Z27], K1, Z31 // 62223f4153bc07f9ffffff
|
||||
VP4DPWSSDS (SP), [Z24-Z27], K1, Z31 // 62623f41533c24
|
||||
VP4DPWSSDS -7(DI)(R8*1), [Z4-Z7], K1, Z0 // 62b25f49538407f9ffffff
|
||||
VP4DPWSSDS (SP), [Z4-Z7], K1, Z0 // 62f25f49530424
|
||||
VP4DPWSSDS -7(DI)(R8*1), [Z14-Z17], K1, Z0 // 62b20f49538407f9ffffff
|
||||
VP4DPWSSDS (SP), [Z14-Z17], K1, Z0 // 62f20f49530424
|
||||
VP4DPWSSDS -7(DI)(R8*1), [Z24-Z27], K1, Z0 // 62b23f41538407f9ffffff
|
||||
VP4DPWSSDS (SP), [Z24-Z27], K1, Z0 // 62f23f41530424
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -3,152 +3,152 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512_bitalg(SB), NOSPLIT, $0
|
||||
//TODO: VPOPCNTB X14, K4, X16 // 62c27d0c54c6
|
||||
//TODO: VPOPCNTB X19, K4, X16 // 62a27d0c54c3
|
||||
//TODO: VPOPCNTB X8, K4, X16 // 62c27d0c54c0
|
||||
//TODO: VPOPCNTB 15(R8)(R14*1), K4, X16 // 62827d0c5484300f000000
|
||||
//TODO: VPOPCNTB 15(R8)(R14*2), K4, X16 // 62827d0c5484700f000000
|
||||
//TODO: VPOPCNTB X14, K4, X14 // 62527d0c54f6
|
||||
//TODO: VPOPCNTB X19, K4, X14 // 62327d0c54f3
|
||||
//TODO: VPOPCNTB X8, K4, X14 // 62527d0c54f0
|
||||
//TODO: VPOPCNTB 15(R8)(R14*1), K4, X14 // 62127d0c54b4300f000000
|
||||
//TODO: VPOPCNTB 15(R8)(R14*2), K4, X14 // 62127d0c54b4700f000000
|
||||
//TODO: VPOPCNTB X14, K4, X11 // 62527d0c54de
|
||||
//TODO: VPOPCNTB X19, K4, X11 // 62327d0c54db
|
||||
//TODO: VPOPCNTB X8, K4, X11 // 62527d0c54d8
|
||||
//TODO: VPOPCNTB 15(R8)(R14*1), K4, X11 // 62127d0c549c300f000000
|
||||
//TODO: VPOPCNTB 15(R8)(R14*2), K4, X11 // 62127d0c549c700f000000
|
||||
//TODO: VPOPCNTB Y14, K4, Y24 // 62427d2c54c6
|
||||
//TODO: VPOPCNTB Y21, K4, Y24 // 62227d2c54c5
|
||||
//TODO: VPOPCNTB Y1, K4, Y24 // 62627d2c54c1
|
||||
//TODO: VPOPCNTB 15(R8)(R14*8), K4, Y24 // 62027d2c5484f00f000000
|
||||
//TODO: VPOPCNTB -15(R14)(R15*2), K4, Y24 // 62027d2c54847ef1ffffff
|
||||
//TODO: VPOPCNTB Y14, K4, Y13 // 62527d2c54ee
|
||||
//TODO: VPOPCNTB Y21, K4, Y13 // 62327d2c54ed
|
||||
//TODO: VPOPCNTB Y1, K4, Y13 // 62727d2c54e9
|
||||
//TODO: VPOPCNTB 15(R8)(R14*8), K4, Y13 // 62127d2c54acf00f000000
|
||||
//TODO: VPOPCNTB -15(R14)(R15*2), K4, Y13 // 62127d2c54ac7ef1ffffff
|
||||
//TODO: VPOPCNTB Y14, K4, Y20 // 62c27d2c54e6
|
||||
//TODO: VPOPCNTB Y21, K4, Y20 // 62a27d2c54e5
|
||||
//TODO: VPOPCNTB Y1, K4, Y20 // 62e27d2c54e1
|
||||
//TODO: VPOPCNTB 15(R8)(R14*8), K4, Y20 // 62827d2c54a4f00f000000
|
||||
//TODO: VPOPCNTB -15(R14)(R15*2), K4, Y20 // 62827d2c54a47ef1ffffff
|
||||
//TODO: VPOPCNTB Z18, K7, Z13 // 62327d4f54ea
|
||||
//TODO: VPOPCNTB Z8, K7, Z13 // 62527d4f54e8
|
||||
//TODO: VPOPCNTB 17(SP)(BP*8), K7, Z13 // 62727d4f54acec11000000
|
||||
//TODO: VPOPCNTB 17(SP)(BP*4), K7, Z13 // 62727d4f54acac11000000
|
||||
//TODO: VPOPCNTW X20, K3, X11 // 6232fd0b54dc
|
||||
//TODO: VPOPCNTW X5, K3, X11 // 6272fd0b54dd
|
||||
//TODO: VPOPCNTW X25, K3, X11 // 6212fd0b54d9
|
||||
//TODO: VPOPCNTW (CX), K3, X11 // 6272fd0b5419
|
||||
//TODO: VPOPCNTW 99(R15), K3, X11 // 6252fd0b549f63000000
|
||||
//TODO: VPOPCNTW X20, K3, X23 // 62a2fd0b54fc
|
||||
//TODO: VPOPCNTW X5, K3, X23 // 62e2fd0b54fd
|
||||
//TODO: VPOPCNTW X25, K3, X23 // 6282fd0b54f9
|
||||
//TODO: VPOPCNTW (CX), K3, X23 // 62e2fd0b5439
|
||||
//TODO: VPOPCNTW 99(R15), K3, X23 // 62c2fd0b54bf63000000
|
||||
//TODO: VPOPCNTW X20, K3, X2 // 62b2fd0b54d4
|
||||
//TODO: VPOPCNTW X5, K3, X2 // 62f2fd0b54d5
|
||||
//TODO: VPOPCNTW X25, K3, X2 // 6292fd0b54d1
|
||||
//TODO: VPOPCNTW (CX), K3, X2 // 62f2fd0b5411
|
||||
//TODO: VPOPCNTW 99(R15), K3, X2 // 62d2fd0b549763000000
|
||||
//TODO: VPOPCNTW Y13, K3, Y21 // 62c2fd2b54ed
|
||||
//TODO: VPOPCNTW Y18, K3, Y21 // 62a2fd2b54ea
|
||||
//TODO: VPOPCNTW Y24, K3, Y21 // 6282fd2b54e8
|
||||
//TODO: VPOPCNTW (SI), K3, Y21 // 62e2fd2b542e
|
||||
//TODO: VPOPCNTW 7(SI)(DI*2), K3, Y21 // 62e2fd2b54ac7e07000000
|
||||
//TODO: VPOPCNTW Y13, K3, Y7 // 62d2fd2b54fd
|
||||
//TODO: VPOPCNTW Y18, K3, Y7 // 62b2fd2b54fa
|
||||
//TODO: VPOPCNTW Y24, K3, Y7 // 6292fd2b54f8
|
||||
//TODO: VPOPCNTW (SI), K3, Y7 // 62f2fd2b543e
|
||||
//TODO: VPOPCNTW 7(SI)(DI*2), K3, Y7 // 62f2fd2b54bc7e07000000
|
||||
//TODO: VPOPCNTW Y13, K3, Y30 // 6242fd2b54f5
|
||||
//TODO: VPOPCNTW Y18, K3, Y30 // 6222fd2b54f2
|
||||
//TODO: VPOPCNTW Y24, K3, Y30 // 6202fd2b54f0
|
||||
//TODO: VPOPCNTW (SI), K3, Y30 // 6262fd2b5436
|
||||
//TODO: VPOPCNTW 7(SI)(DI*2), K3, Y30 // 6262fd2b54b47e07000000
|
||||
//TODO: VPOPCNTW Z28, K3, Z12 // 6212fd4b54e4
|
||||
//TODO: VPOPCNTW Z13, K3, Z12 // 6252fd4b54e5
|
||||
//TODO: VPOPCNTW 7(AX), K3, Z12 // 6272fd4b54a007000000
|
||||
//TODO: VPOPCNTW (DI), K3, Z12 // 6272fd4b5427
|
||||
//TODO: VPOPCNTW Z28, K3, Z16 // 6282fd4b54c4
|
||||
//TODO: VPOPCNTW Z13, K3, Z16 // 62c2fd4b54c5
|
||||
//TODO: VPOPCNTW 7(AX), K3, Z16 // 62e2fd4b548007000000
|
||||
//TODO: VPOPCNTW (DI), K3, Z16 // 62e2fd4b5407
|
||||
//TODO: VPSHUFBITQMB X24, X7, K6, K0 // 6292450e8fc0
|
||||
//TODO: VPSHUFBITQMB X7, X7, K6, K0 // 62f2450e8fc7
|
||||
//TODO: VPSHUFBITQMB X0, X7, K6, K0 // 62f2450e8fc0
|
||||
//TODO: VPSHUFBITQMB (R8), X7, K6, K0 // 62d2450e8f00
|
||||
//TODO: VPSHUFBITQMB 15(DX)(BX*2), X7, K6, K0 // 62f2450e8f845a0f000000
|
||||
//TODO: VPSHUFBITQMB X24, X13, K6, K0 // 6292150e8fc0
|
||||
//TODO: VPSHUFBITQMB X7, X13, K6, K0 // 62f2150e8fc7
|
||||
//TODO: VPSHUFBITQMB X0, X13, K6, K0 // 62f2150e8fc0
|
||||
//TODO: VPSHUFBITQMB (R8), X13, K6, K0 // 62d2150e8f00
|
||||
//TODO: VPSHUFBITQMB 15(DX)(BX*2), X13, K6, K0 // 62f2150e8f845a0f000000
|
||||
//TODO: VPSHUFBITQMB X24, X8, K6, K0 // 62923d0e8fc0
|
||||
//TODO: VPSHUFBITQMB X7, X8, K6, K0 // 62f23d0e8fc7
|
||||
//TODO: VPSHUFBITQMB X0, X8, K6, K0 // 62f23d0e8fc0
|
||||
//TODO: VPSHUFBITQMB (R8), X8, K6, K0 // 62d23d0e8f00
|
||||
//TODO: VPSHUFBITQMB 15(DX)(BX*2), X8, K6, K0 // 62f23d0e8f845a0f000000
|
||||
//TODO: VPSHUFBITQMB X24, X7, K6, K5 // 6292450e8fe8
|
||||
//TODO: VPSHUFBITQMB X7, X7, K6, K5 // 62f2450e8fef
|
||||
//TODO: VPSHUFBITQMB X0, X7, K6, K5 // 62f2450e8fe8
|
||||
//TODO: VPSHUFBITQMB (R8), X7, K6, K5 // 62d2450e8f28
|
||||
//TODO: VPSHUFBITQMB 15(DX)(BX*2), X7, K6, K5 // 62f2450e8fac5a0f000000
|
||||
//TODO: VPSHUFBITQMB X24, X13, K6, K5 // 6292150e8fe8
|
||||
//TODO: VPSHUFBITQMB X7, X13, K6, K5 // 62f2150e8fef
|
||||
//TODO: VPSHUFBITQMB X0, X13, K6, K5 // 62f2150e8fe8
|
||||
//TODO: VPSHUFBITQMB (R8), X13, K6, K5 // 62d2150e8f28
|
||||
//TODO: VPSHUFBITQMB 15(DX)(BX*2), X13, K6, K5 // 62f2150e8fac5a0f000000
|
||||
//TODO: VPSHUFBITQMB X24, X8, K6, K5 // 62923d0e8fe8
|
||||
//TODO: VPSHUFBITQMB X7, X8, K6, K5 // 62f23d0e8fef
|
||||
//TODO: VPSHUFBITQMB X0, X8, K6, K5 // 62f23d0e8fe8
|
||||
//TODO: VPSHUFBITQMB (R8), X8, K6, K5 // 62d23d0e8f28
|
||||
//TODO: VPSHUFBITQMB 15(DX)(BX*2), X8, K6, K5 // 62f23d0e8fac5a0f000000
|
||||
//TODO: VPSHUFBITQMB Y14, Y2, K3, K6 // 62d26d2b8ff6
|
||||
//TODO: VPSHUFBITQMB Y8, Y2, K3, K6 // 62d26d2b8ff0
|
||||
//TODO: VPSHUFBITQMB Y20, Y2, K3, K6 // 62b26d2b8ff4
|
||||
//TODO: VPSHUFBITQMB -17(BP), Y2, K3, K6 // 62f26d2b8fb5efffffff
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*8), Y2, K3, K6 // 62926d2b8fb4fef1ffffff
|
||||
//TODO: VPSHUFBITQMB Y14, Y7, K3, K6 // 62d2452b8ff6
|
||||
//TODO: VPSHUFBITQMB Y8, Y7, K3, K6 // 62d2452b8ff0
|
||||
//TODO: VPSHUFBITQMB Y20, Y7, K3, K6 // 62b2452b8ff4
|
||||
//TODO: VPSHUFBITQMB -17(BP), Y7, K3, K6 // 62f2452b8fb5efffffff
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*8), Y7, K3, K6 // 6292452b8fb4fef1ffffff
|
||||
//TODO: VPSHUFBITQMB Y14, Y21, K3, K6 // 62d255238ff6
|
||||
//TODO: VPSHUFBITQMB Y8, Y21, K3, K6 // 62d255238ff0
|
||||
//TODO: VPSHUFBITQMB Y20, Y21, K3, K6 // 62b255238ff4
|
||||
//TODO: VPSHUFBITQMB -17(BP), Y21, K3, K6 // 62f255238fb5efffffff
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*8), Y21, K3, K6 // 629255238fb4fef1ffffff
|
||||
//TODO: VPSHUFBITQMB Y14, Y2, K3, K5 // 62d26d2b8fee
|
||||
//TODO: VPSHUFBITQMB Y8, Y2, K3, K5 // 62d26d2b8fe8
|
||||
//TODO: VPSHUFBITQMB Y20, Y2, K3, K5 // 62b26d2b8fec
|
||||
//TODO: VPSHUFBITQMB -17(BP), Y2, K3, K5 // 62f26d2b8fadefffffff
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*8), Y2, K3, K5 // 62926d2b8facfef1ffffff
|
||||
//TODO: VPSHUFBITQMB Y14, Y7, K3, K5 // 62d2452b8fee
|
||||
//TODO: VPSHUFBITQMB Y8, Y7, K3, K5 // 62d2452b8fe8
|
||||
//TODO: VPSHUFBITQMB Y20, Y7, K3, K5 // 62b2452b8fec
|
||||
//TODO: VPSHUFBITQMB -17(BP), Y7, K3, K5 // 62f2452b8fadefffffff
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*8), Y7, K3, K5 // 6292452b8facfef1ffffff
|
||||
//TODO: VPSHUFBITQMB Y14, Y21, K3, K5 // 62d255238fee
|
||||
//TODO: VPSHUFBITQMB Y8, Y21, K3, K5 // 62d255238fe8
|
||||
//TODO: VPSHUFBITQMB Y20, Y21, K3, K5 // 62b255238fec
|
||||
//TODO: VPSHUFBITQMB -17(BP), Y21, K3, K5 // 62f255238fadefffffff
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*8), Y21, K3, K5 // 629255238facfef1ffffff
|
||||
//TODO: VPSHUFBITQMB Z3, Z6, K7, K1 // 62f24d4f8fcb
|
||||
//TODO: VPSHUFBITQMB Z21, Z6, K7, K1 // 62b24d4f8fcd
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*1), Z6, K7, K1 // 62924d4f8f8c3ef1ffffff
|
||||
//TODO: VPSHUFBITQMB -15(BX), Z6, K7, K1 // 62f24d4f8f8bf1ffffff
|
||||
//TODO: VPSHUFBITQMB Z3, Z25, K7, K1 // 62f235478fcb
|
||||
//TODO: VPSHUFBITQMB Z21, Z25, K7, K1 // 62b235478fcd
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*1), Z25, K7, K1 // 629235478f8c3ef1ffffff
|
||||
//TODO: VPSHUFBITQMB -15(BX), Z25, K7, K1 // 62f235478f8bf1ffffff
|
||||
//TODO: VPSHUFBITQMB Z3, Z6, K7, K5 // 62f24d4f8feb
|
||||
//TODO: VPSHUFBITQMB Z21, Z6, K7, K5 // 62b24d4f8fed
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*1), Z6, K7, K5 // 62924d4f8fac3ef1ffffff
|
||||
//TODO: VPSHUFBITQMB -15(BX), Z6, K7, K5 // 62f24d4f8fabf1ffffff
|
||||
//TODO: VPSHUFBITQMB Z3, Z25, K7, K5 // 62f235478feb
|
||||
//TODO: VPSHUFBITQMB Z21, Z25, K7, K5 // 62b235478fed
|
||||
//TODO: VPSHUFBITQMB -15(R14)(R15*1), Z25, K7, K5 // 629235478fac3ef1ffffff
|
||||
//TODO: VPSHUFBITQMB -15(BX), Z25, K7, K5 // 62f235478fabf1ffffff
|
||||
VPOPCNTB X14, K4, X16 // 62c27d0c54c6
|
||||
VPOPCNTB X19, K4, X16 // 62a27d0c54c3
|
||||
VPOPCNTB X8, K4, X16 // 62c27d0c54c0
|
||||
VPOPCNTB 15(R8)(R14*1), K4, X16 // 62827d0c5484300f000000
|
||||
VPOPCNTB 15(R8)(R14*2), K4, X16 // 62827d0c5484700f000000
|
||||
VPOPCNTB X14, K4, X14 // 62527d0c54f6
|
||||
VPOPCNTB X19, K4, X14 // 62327d0c54f3
|
||||
VPOPCNTB X8, K4, X14 // 62527d0c54f0
|
||||
VPOPCNTB 15(R8)(R14*1), K4, X14 // 62127d0c54b4300f000000
|
||||
VPOPCNTB 15(R8)(R14*2), K4, X14 // 62127d0c54b4700f000000
|
||||
VPOPCNTB X14, K4, X11 // 62527d0c54de
|
||||
VPOPCNTB X19, K4, X11 // 62327d0c54db
|
||||
VPOPCNTB X8, K4, X11 // 62527d0c54d8
|
||||
VPOPCNTB 15(R8)(R14*1), K4, X11 // 62127d0c549c300f000000
|
||||
VPOPCNTB 15(R8)(R14*2), K4, X11 // 62127d0c549c700f000000
|
||||
VPOPCNTB Y14, K4, Y24 // 62427d2c54c6
|
||||
VPOPCNTB Y21, K4, Y24 // 62227d2c54c5
|
||||
VPOPCNTB Y1, K4, Y24 // 62627d2c54c1
|
||||
VPOPCNTB 15(R8)(R14*8), K4, Y24 // 62027d2c5484f00f000000
|
||||
VPOPCNTB -15(R14)(R15*2), K4, Y24 // 62027d2c54847ef1ffffff
|
||||
VPOPCNTB Y14, K4, Y13 // 62527d2c54ee
|
||||
VPOPCNTB Y21, K4, Y13 // 62327d2c54ed
|
||||
VPOPCNTB Y1, K4, Y13 // 62727d2c54e9
|
||||
VPOPCNTB 15(R8)(R14*8), K4, Y13 // 62127d2c54acf00f000000
|
||||
VPOPCNTB -15(R14)(R15*2), K4, Y13 // 62127d2c54ac7ef1ffffff
|
||||
VPOPCNTB Y14, K4, Y20 // 62c27d2c54e6
|
||||
VPOPCNTB Y21, K4, Y20 // 62a27d2c54e5
|
||||
VPOPCNTB Y1, K4, Y20 // 62e27d2c54e1
|
||||
VPOPCNTB 15(R8)(R14*8), K4, Y20 // 62827d2c54a4f00f000000
|
||||
VPOPCNTB -15(R14)(R15*2), K4, Y20 // 62827d2c54a47ef1ffffff
|
||||
VPOPCNTB Z18, K7, Z13 // 62327d4f54ea
|
||||
VPOPCNTB Z8, K7, Z13 // 62527d4f54e8
|
||||
VPOPCNTB 17(SP)(BP*8), K7, Z13 // 62727d4f54acec11000000
|
||||
VPOPCNTB 17(SP)(BP*4), K7, Z13 // 62727d4f54acac11000000
|
||||
VPOPCNTW X20, K3, X11 // 6232fd0b54dc
|
||||
VPOPCNTW X5, K3, X11 // 6272fd0b54dd
|
||||
VPOPCNTW X25, K3, X11 // 6212fd0b54d9
|
||||
VPOPCNTW (CX), K3, X11 // 6272fd0b5419
|
||||
VPOPCNTW 99(R15), K3, X11 // 6252fd0b549f63000000
|
||||
VPOPCNTW X20, K3, X23 // 62a2fd0b54fc
|
||||
VPOPCNTW X5, K3, X23 // 62e2fd0b54fd
|
||||
VPOPCNTW X25, K3, X23 // 6282fd0b54f9
|
||||
VPOPCNTW (CX), K3, X23 // 62e2fd0b5439
|
||||
VPOPCNTW 99(R15), K3, X23 // 62c2fd0b54bf63000000
|
||||
VPOPCNTW X20, K3, X2 // 62b2fd0b54d4
|
||||
VPOPCNTW X5, K3, X2 // 62f2fd0b54d5
|
||||
VPOPCNTW X25, K3, X2 // 6292fd0b54d1
|
||||
VPOPCNTW (CX), K3, X2 // 62f2fd0b5411
|
||||
VPOPCNTW 99(R15), K3, X2 // 62d2fd0b549763000000
|
||||
VPOPCNTW Y13, K3, Y21 // 62c2fd2b54ed
|
||||
VPOPCNTW Y18, K3, Y21 // 62a2fd2b54ea
|
||||
VPOPCNTW Y24, K3, Y21 // 6282fd2b54e8
|
||||
VPOPCNTW (SI), K3, Y21 // 62e2fd2b542e
|
||||
VPOPCNTW 7(SI)(DI*2), K3, Y21 // 62e2fd2b54ac7e07000000
|
||||
VPOPCNTW Y13, K3, Y7 // 62d2fd2b54fd
|
||||
VPOPCNTW Y18, K3, Y7 // 62b2fd2b54fa
|
||||
VPOPCNTW Y24, K3, Y7 // 6292fd2b54f8
|
||||
VPOPCNTW (SI), K3, Y7 // 62f2fd2b543e
|
||||
VPOPCNTW 7(SI)(DI*2), K3, Y7 // 62f2fd2b54bc7e07000000
|
||||
VPOPCNTW Y13, K3, Y30 // 6242fd2b54f5
|
||||
VPOPCNTW Y18, K3, Y30 // 6222fd2b54f2
|
||||
VPOPCNTW Y24, K3, Y30 // 6202fd2b54f0
|
||||
VPOPCNTW (SI), K3, Y30 // 6262fd2b5436
|
||||
VPOPCNTW 7(SI)(DI*2), K3, Y30 // 6262fd2b54b47e07000000
|
||||
VPOPCNTW Z28, K3, Z12 // 6212fd4b54e4
|
||||
VPOPCNTW Z13, K3, Z12 // 6252fd4b54e5
|
||||
VPOPCNTW 7(AX), K3, Z12 // 6272fd4b54a007000000
|
||||
VPOPCNTW (DI), K3, Z12 // 6272fd4b5427
|
||||
VPOPCNTW Z28, K3, Z16 // 6282fd4b54c4
|
||||
VPOPCNTW Z13, K3, Z16 // 62c2fd4b54c5
|
||||
VPOPCNTW 7(AX), K3, Z16 // 62e2fd4b548007000000
|
||||
VPOPCNTW (DI), K3, Z16 // 62e2fd4b5407
|
||||
VPSHUFBITQMB X24, X7, K6, K0 // 6292450e8fc0
|
||||
VPSHUFBITQMB X7, X7, K6, K0 // 62f2450e8fc7
|
||||
VPSHUFBITQMB X0, X7, K6, K0 // 62f2450e8fc0
|
||||
VPSHUFBITQMB (R8), X7, K6, K0 // 62d2450e8f00
|
||||
VPSHUFBITQMB 15(DX)(BX*2), X7, K6, K0 // 62f2450e8f845a0f000000
|
||||
VPSHUFBITQMB X24, X13, K6, K0 // 6292150e8fc0
|
||||
VPSHUFBITQMB X7, X13, K6, K0 // 62f2150e8fc7
|
||||
VPSHUFBITQMB X0, X13, K6, K0 // 62f2150e8fc0
|
||||
VPSHUFBITQMB (R8), X13, K6, K0 // 62d2150e8f00
|
||||
VPSHUFBITQMB 15(DX)(BX*2), X13, K6, K0 // 62f2150e8f845a0f000000
|
||||
VPSHUFBITQMB X24, X8, K6, K0 // 62923d0e8fc0
|
||||
VPSHUFBITQMB X7, X8, K6, K0 // 62f23d0e8fc7
|
||||
VPSHUFBITQMB X0, X8, K6, K0 // 62f23d0e8fc0
|
||||
VPSHUFBITQMB (R8), X8, K6, K0 // 62d23d0e8f00
|
||||
VPSHUFBITQMB 15(DX)(BX*2), X8, K6, K0 // 62f23d0e8f845a0f000000
|
||||
VPSHUFBITQMB X24, X7, K6, K5 // 6292450e8fe8
|
||||
VPSHUFBITQMB X7, X7, K6, K5 // 62f2450e8fef
|
||||
VPSHUFBITQMB X0, X7, K6, K5 // 62f2450e8fe8
|
||||
VPSHUFBITQMB (R8), X7, K6, K5 // 62d2450e8f28
|
||||
VPSHUFBITQMB 15(DX)(BX*2), X7, K6, K5 // 62f2450e8fac5a0f000000
|
||||
VPSHUFBITQMB X24, X13, K6, K5 // 6292150e8fe8
|
||||
VPSHUFBITQMB X7, X13, K6, K5 // 62f2150e8fef
|
||||
VPSHUFBITQMB X0, X13, K6, K5 // 62f2150e8fe8
|
||||
VPSHUFBITQMB (R8), X13, K6, K5 // 62d2150e8f28
|
||||
VPSHUFBITQMB 15(DX)(BX*2), X13, K6, K5 // 62f2150e8fac5a0f000000
|
||||
VPSHUFBITQMB X24, X8, K6, K5 // 62923d0e8fe8
|
||||
VPSHUFBITQMB X7, X8, K6, K5 // 62f23d0e8fef
|
||||
VPSHUFBITQMB X0, X8, K6, K5 // 62f23d0e8fe8
|
||||
VPSHUFBITQMB (R8), X8, K6, K5 // 62d23d0e8f28
|
||||
VPSHUFBITQMB 15(DX)(BX*2), X8, K6, K5 // 62f23d0e8fac5a0f000000
|
||||
VPSHUFBITQMB Y14, Y2, K3, K6 // 62d26d2b8ff6
|
||||
VPSHUFBITQMB Y8, Y2, K3, K6 // 62d26d2b8ff0
|
||||
VPSHUFBITQMB Y20, Y2, K3, K6 // 62b26d2b8ff4
|
||||
VPSHUFBITQMB -17(BP), Y2, K3, K6 // 62f26d2b8fb5efffffff
|
||||
VPSHUFBITQMB -15(R14)(R15*8), Y2, K3, K6 // 62926d2b8fb4fef1ffffff
|
||||
VPSHUFBITQMB Y14, Y7, K3, K6 // 62d2452b8ff6
|
||||
VPSHUFBITQMB Y8, Y7, K3, K6 // 62d2452b8ff0
|
||||
VPSHUFBITQMB Y20, Y7, K3, K6 // 62b2452b8ff4
|
||||
VPSHUFBITQMB -17(BP), Y7, K3, K6 // 62f2452b8fb5efffffff
|
||||
VPSHUFBITQMB -15(R14)(R15*8), Y7, K3, K6 // 6292452b8fb4fef1ffffff
|
||||
VPSHUFBITQMB Y14, Y21, K3, K6 // 62d255238ff6
|
||||
VPSHUFBITQMB Y8, Y21, K3, K6 // 62d255238ff0
|
||||
VPSHUFBITQMB Y20, Y21, K3, K6 // 62b255238ff4
|
||||
VPSHUFBITQMB -17(BP), Y21, K3, K6 // 62f255238fb5efffffff
|
||||
VPSHUFBITQMB -15(R14)(R15*8), Y21, K3, K6 // 629255238fb4fef1ffffff
|
||||
VPSHUFBITQMB Y14, Y2, K3, K5 // 62d26d2b8fee
|
||||
VPSHUFBITQMB Y8, Y2, K3, K5 // 62d26d2b8fe8
|
||||
VPSHUFBITQMB Y20, Y2, K3, K5 // 62b26d2b8fec
|
||||
VPSHUFBITQMB -17(BP), Y2, K3, K5 // 62f26d2b8fadefffffff
|
||||
VPSHUFBITQMB -15(R14)(R15*8), Y2, K3, K5 // 62926d2b8facfef1ffffff
|
||||
VPSHUFBITQMB Y14, Y7, K3, K5 // 62d2452b8fee
|
||||
VPSHUFBITQMB Y8, Y7, K3, K5 // 62d2452b8fe8
|
||||
VPSHUFBITQMB Y20, Y7, K3, K5 // 62b2452b8fec
|
||||
VPSHUFBITQMB -17(BP), Y7, K3, K5 // 62f2452b8fadefffffff
|
||||
VPSHUFBITQMB -15(R14)(R15*8), Y7, K3, K5 // 6292452b8facfef1ffffff
|
||||
VPSHUFBITQMB Y14, Y21, K3, K5 // 62d255238fee
|
||||
VPSHUFBITQMB Y8, Y21, K3, K5 // 62d255238fe8
|
||||
VPSHUFBITQMB Y20, Y21, K3, K5 // 62b255238fec
|
||||
VPSHUFBITQMB -17(BP), Y21, K3, K5 // 62f255238fadefffffff
|
||||
VPSHUFBITQMB -15(R14)(R15*8), Y21, K3, K5 // 629255238facfef1ffffff
|
||||
VPSHUFBITQMB Z3, Z6, K7, K1 // 62f24d4f8fcb
|
||||
VPSHUFBITQMB Z21, Z6, K7, K1 // 62b24d4f8fcd
|
||||
VPSHUFBITQMB -15(R14)(R15*1), Z6, K7, K1 // 62924d4f8f8c3ef1ffffff
|
||||
VPSHUFBITQMB -15(BX), Z6, K7, K1 // 62f24d4f8f8bf1ffffff
|
||||
VPSHUFBITQMB Z3, Z25, K7, K1 // 62f235478fcb
|
||||
VPSHUFBITQMB Z21, Z25, K7, K1 // 62b235478fcd
|
||||
VPSHUFBITQMB -15(R14)(R15*1), Z25, K7, K1 // 629235478f8c3ef1ffffff
|
||||
VPSHUFBITQMB -15(BX), Z25, K7, K1 // 62f235478f8bf1ffffff
|
||||
VPSHUFBITQMB Z3, Z6, K7, K5 // 62f24d4f8feb
|
||||
VPSHUFBITQMB Z21, Z6, K7, K5 // 62b24d4f8fed
|
||||
VPSHUFBITQMB -15(R14)(R15*1), Z6, K7, K5 // 62924d4f8fac3ef1ffffff
|
||||
VPSHUFBITQMB -15(BX), Z6, K7, K5 // 62f24d4f8fabf1ffffff
|
||||
VPSHUFBITQMB Z3, Z25, K7, K5 // 62f235478feb
|
||||
VPSHUFBITQMB Z21, Z25, K7, K5 // 62b235478fed
|
||||
VPSHUFBITQMB -15(R14)(R15*1), Z25, K7, K5 // 629235478fac3ef1ffffff
|
||||
VPSHUFBITQMB -15(BX), Z25, K7, K5 // 62f235478fabf1ffffff
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -3,192 +3,192 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512_ifma(SB), NOSPLIT, $0
|
||||
//TODO: VPMADD52HUQ X7, X11, K1, X18 // 62e2a509b5d7
|
||||
//TODO: VPMADD52HUQ X0, X11, K1, X18 // 62e2a509b5d0
|
||||
//TODO: VPMADD52HUQ 17(SP)(BP*2), X11, K1, X18 // 62e2a509b5946c11000000
|
||||
//TODO: VPMADD52HUQ -7(DI)(R8*4), X11, K1, X18 // 62a2a509b59487f9ffffff
|
||||
//TODO: VPMADD52HUQ X7, X31, K1, X18 // 62e28501b5d7
|
||||
//TODO: VPMADD52HUQ X0, X31, K1, X18 // 62e28501b5d0
|
||||
//TODO: VPMADD52HUQ 17(SP)(BP*2), X31, K1, X18 // 62e28501b5946c11000000
|
||||
//TODO: VPMADD52HUQ -7(DI)(R8*4), X31, K1, X18 // 62a28501b59487f9ffffff
|
||||
//TODO: VPMADD52HUQ X7, X3, K1, X18 // 62e2e509b5d7
|
||||
//TODO: VPMADD52HUQ X0, X3, K1, X18 // 62e2e509b5d0
|
||||
//TODO: VPMADD52HUQ 17(SP)(BP*2), X3, K1, X18 // 62e2e509b5946c11000000
|
||||
//TODO: VPMADD52HUQ -7(DI)(R8*4), X3, K1, X18 // 62a2e509b59487f9ffffff
|
||||
//TODO: VPMADD52HUQ X7, X11, K1, X21 // 62e2a509b5ef
|
||||
//TODO: VPMADD52HUQ X0, X11, K1, X21 // 62e2a509b5e8
|
||||
//TODO: VPMADD52HUQ 17(SP)(BP*2), X11, K1, X21 // 62e2a509b5ac6c11000000
|
||||
//TODO: VPMADD52HUQ -7(DI)(R8*4), X11, K1, X21 // 62a2a509b5ac87f9ffffff
|
||||
//TODO: VPMADD52HUQ X7, X31, K1, X21 // 62e28501b5ef
|
||||
//TODO: VPMADD52HUQ X0, X31, K1, X21 // 62e28501b5e8
|
||||
//TODO: VPMADD52HUQ 17(SP)(BP*2), X31, K1, X21 // 62e28501b5ac6c11000000
|
||||
//TODO: VPMADD52HUQ -7(DI)(R8*4), X31, K1, X21 // 62a28501b5ac87f9ffffff
|
||||
//TODO: VPMADD52HUQ X7, X3, K1, X21 // 62e2e509b5ef
|
||||
//TODO: VPMADD52HUQ X0, X3, K1, X21 // 62e2e509b5e8
|
||||
//TODO: VPMADD52HUQ 17(SP)(BP*2), X3, K1, X21 // 62e2e509b5ac6c11000000
|
||||
//TODO: VPMADD52HUQ -7(DI)(R8*4), X3, K1, X21 // 62a2e509b5ac87f9ffffff
|
||||
//TODO: VPMADD52HUQ X7, X11, K1, X1 // 62f2a509b5cf
|
||||
//TODO: VPMADD52HUQ X0, X11, K1, X1 // 62f2a509b5c8
|
||||
//TODO: VPMADD52HUQ 17(SP)(BP*2), X11, K1, X1 // 62f2a509b58c6c11000000
|
||||
//TODO: VPMADD52HUQ -7(DI)(R8*4), X11, K1, X1 // 62b2a509b58c87f9ffffff
|
||||
//TODO: VPMADD52HUQ X7, X31, K1, X1 // 62f28501b5cf
|
||||
//TODO: VPMADD52HUQ X0, X31, K1, X1 // 62f28501b5c8
|
||||
//TODO: VPMADD52HUQ 17(SP)(BP*2), X31, K1, X1 // 62f28501b58c6c11000000
|
||||
//TODO: VPMADD52HUQ -7(DI)(R8*4), X31, K1, X1 // 62b28501b58c87f9ffffff
|
||||
//TODO: VPMADD52HUQ X7, X3, K1, X1 // 62f2e509b5cf
|
||||
//TODO: VPMADD52HUQ X0, X3, K1, X1 // 62f2e509b5c8
|
||||
//TODO: VPMADD52HUQ 17(SP)(BP*2), X3, K1, X1 // 62f2e509b58c6c11000000
|
||||
//TODO: VPMADD52HUQ -7(DI)(R8*4), X3, K1, X1 // 62b2e509b58c87f9ffffff
|
||||
//TODO: VPMADD52HUQ Y28, Y31, K7, Y17 // 62828527b5cc
|
||||
//TODO: VPMADD52HUQ Y13, Y31, K7, Y17 // 62c28527b5cd
|
||||
//TODO: VPMADD52HUQ Y7, Y31, K7, Y17 // 62e28527b5cf
|
||||
//TODO: VPMADD52HUQ (R8), Y31, K7, Y17 // 62c28527b508
|
||||
//TODO: VPMADD52HUQ 15(DX)(BX*2), Y31, K7, Y17 // 62e28527b58c5a0f000000
|
||||
//TODO: VPMADD52HUQ Y28, Y8, K7, Y17 // 6282bd2fb5cc
|
||||
//TODO: VPMADD52HUQ Y13, Y8, K7, Y17 // 62c2bd2fb5cd
|
||||
//TODO: VPMADD52HUQ Y7, Y8, K7, Y17 // 62e2bd2fb5cf
|
||||
//TODO: VPMADD52HUQ (R8), Y8, K7, Y17 // 62c2bd2fb508
|
||||
//TODO: VPMADD52HUQ 15(DX)(BX*2), Y8, K7, Y17 // 62e2bd2fb58c5a0f000000
|
||||
//TODO: VPMADD52HUQ Y28, Y1, K7, Y17 // 6282f52fb5cc
|
||||
//TODO: VPMADD52HUQ Y13, Y1, K7, Y17 // 62c2f52fb5cd
|
||||
//TODO: VPMADD52HUQ Y7, Y1, K7, Y17 // 62e2f52fb5cf
|
||||
//TODO: VPMADD52HUQ (R8), Y1, K7, Y17 // 62c2f52fb508
|
||||
//TODO: VPMADD52HUQ 15(DX)(BX*2), Y1, K7, Y17 // 62e2f52fb58c5a0f000000
|
||||
//TODO: VPMADD52HUQ Y28, Y31, K7, Y7 // 62928527b5fc
|
||||
//TODO: VPMADD52HUQ Y13, Y31, K7, Y7 // 62d28527b5fd
|
||||
//TODO: VPMADD52HUQ Y7, Y31, K7, Y7 // 62f28527b5ff
|
||||
//TODO: VPMADD52HUQ (R8), Y31, K7, Y7 // 62d28527b538
|
||||
//TODO: VPMADD52HUQ 15(DX)(BX*2), Y31, K7, Y7 // 62f28527b5bc5a0f000000
|
||||
//TODO: VPMADD52HUQ Y28, Y8, K7, Y7 // 6292bd2fb5fc
|
||||
//TODO: VPMADD52HUQ Y13, Y8, K7, Y7 // 62d2bd2fb5fd
|
||||
//TODO: VPMADD52HUQ Y7, Y8, K7, Y7 // 62f2bd2fb5ff
|
||||
//TODO: VPMADD52HUQ (R8), Y8, K7, Y7 // 62d2bd2fb538
|
||||
//TODO: VPMADD52HUQ 15(DX)(BX*2), Y8, K7, Y7 // 62f2bd2fb5bc5a0f000000
|
||||
//TODO: VPMADD52HUQ Y28, Y1, K7, Y7 // 6292f52fb5fc
|
||||
//TODO: VPMADD52HUQ Y13, Y1, K7, Y7 // 62d2f52fb5fd
|
||||
//TODO: VPMADD52HUQ Y7, Y1, K7, Y7 // 62f2f52fb5ff
|
||||
//TODO: VPMADD52HUQ (R8), Y1, K7, Y7 // 62d2f52fb538
|
||||
//TODO: VPMADD52HUQ 15(DX)(BX*2), Y1, K7, Y7 // 62f2f52fb5bc5a0f000000
|
||||
//TODO: VPMADD52HUQ Y28, Y31, K7, Y9 // 62128527b5cc
|
||||
//TODO: VPMADD52HUQ Y13, Y31, K7, Y9 // 62528527b5cd
|
||||
//TODO: VPMADD52HUQ Y7, Y31, K7, Y9 // 62728527b5cf
|
||||
//TODO: VPMADD52HUQ (R8), Y31, K7, Y9 // 62528527b508
|
||||
//TODO: VPMADD52HUQ 15(DX)(BX*2), Y31, K7, Y9 // 62728527b58c5a0f000000
|
||||
//TODO: VPMADD52HUQ Y28, Y8, K7, Y9 // 6212bd2fb5cc
|
||||
//TODO: VPMADD52HUQ Y13, Y8, K7, Y9 // 6252bd2fb5cd
|
||||
//TODO: VPMADD52HUQ Y7, Y8, K7, Y9 // 6272bd2fb5cf
|
||||
//TODO: VPMADD52HUQ (R8), Y8, K7, Y9 // 6252bd2fb508
|
||||
//TODO: VPMADD52HUQ 15(DX)(BX*2), Y8, K7, Y9 // 6272bd2fb58c5a0f000000
|
||||
//TODO: VPMADD52HUQ Y28, Y1, K7, Y9 // 6212f52fb5cc
|
||||
//TODO: VPMADD52HUQ Y13, Y1, K7, Y9 // 6252f52fb5cd
|
||||
//TODO: VPMADD52HUQ Y7, Y1, K7, Y9 // 6272f52fb5cf
|
||||
//TODO: VPMADD52HUQ (R8), Y1, K7, Y9 // 6252f52fb508
|
||||
//TODO: VPMADD52HUQ 15(DX)(BX*2), Y1, K7, Y9 // 6272f52fb58c5a0f000000
|
||||
//TODO: VPMADD52HUQ Z23, Z23, K1, Z27 // 6222c541b5df
|
||||
//TODO: VPMADD52HUQ Z6, Z23, K1, Z27 // 6262c541b5de
|
||||
//TODO: VPMADD52HUQ 17(SP), Z23, K1, Z27 // 6262c541b59c2411000000
|
||||
//TODO: VPMADD52HUQ -17(BP)(SI*4), Z23, K1, Z27 // 6262c541b59cb5efffffff
|
||||
//TODO: VPMADD52HUQ Z23, Z5, K1, Z27 // 6222d549b5df
|
||||
//TODO: VPMADD52HUQ Z6, Z5, K1, Z27 // 6262d549b5de
|
||||
//TODO: VPMADD52HUQ 17(SP), Z5, K1, Z27 // 6262d549b59c2411000000
|
||||
//TODO: VPMADD52HUQ -17(BP)(SI*4), Z5, K1, Z27 // 6262d549b59cb5efffffff
|
||||
//TODO: VPMADD52HUQ Z23, Z23, K1, Z15 // 6232c541b5ff
|
||||
//TODO: VPMADD52HUQ Z6, Z23, K1, Z15 // 6272c541b5fe
|
||||
//TODO: VPMADD52HUQ 17(SP), Z23, K1, Z15 // 6272c541b5bc2411000000
|
||||
//TODO: VPMADD52HUQ -17(BP)(SI*4), Z23, K1, Z15 // 6272c541b5bcb5efffffff
|
||||
//TODO: VPMADD52HUQ Z23, Z5, K1, Z15 // 6232d549b5ff
|
||||
//TODO: VPMADD52HUQ Z6, Z5, K1, Z15 // 6272d549b5fe
|
||||
//TODO: VPMADD52HUQ 17(SP), Z5, K1, Z15 // 6272d549b5bc2411000000
|
||||
//TODO: VPMADD52HUQ -17(BP)(SI*4), Z5, K1, Z15 // 6272d549b5bcb5efffffff
|
||||
//TODO: VPMADD52LUQ X5, X9, K1, X24 // 6262b509b4c5
|
||||
//TODO: VPMADD52LUQ X31, X9, K1, X24 // 6202b509b4c7
|
||||
//TODO: VPMADD52LUQ X3, X9, K1, X24 // 6262b509b4c3
|
||||
//TODO: VPMADD52LUQ 15(R8), X9, K1, X24 // 6242b509b4800f000000
|
||||
//TODO: VPMADD52LUQ (BP), X9, K1, X24 // 6262b509b44500
|
||||
//TODO: VPMADD52LUQ X5, X7, K1, X24 // 6262c509b4c5
|
||||
//TODO: VPMADD52LUQ X31, X7, K1, X24 // 6202c509b4c7
|
||||
//TODO: VPMADD52LUQ X3, X7, K1, X24 // 6262c509b4c3
|
||||
//TODO: VPMADD52LUQ 15(R8), X7, K1, X24 // 6242c509b4800f000000
|
||||
//TODO: VPMADD52LUQ (BP), X7, K1, X24 // 6262c509b44500
|
||||
//TODO: VPMADD52LUQ X5, X14, K1, X24 // 62628d09b4c5
|
||||
//TODO: VPMADD52LUQ X31, X14, K1, X24 // 62028d09b4c7
|
||||
//TODO: VPMADD52LUQ X3, X14, K1, X24 // 62628d09b4c3
|
||||
//TODO: VPMADD52LUQ 15(R8), X14, K1, X24 // 62428d09b4800f000000
|
||||
//TODO: VPMADD52LUQ (BP), X14, K1, X24 // 62628d09b44500
|
||||
//TODO: VPMADD52LUQ X5, X9, K1, X20 // 62e2b509b4e5
|
||||
//TODO: VPMADD52LUQ X31, X9, K1, X20 // 6282b509b4e7
|
||||
//TODO: VPMADD52LUQ X3, X9, K1, X20 // 62e2b509b4e3
|
||||
//TODO: VPMADD52LUQ 15(R8), X9, K1, X20 // 62c2b509b4a00f000000
|
||||
//TODO: VPMADD52LUQ (BP), X9, K1, X20 // 62e2b509b46500
|
||||
//TODO: VPMADD52LUQ X5, X7, K1, X20 // 62e2c509b4e5
|
||||
//TODO: VPMADD52LUQ X31, X7, K1, X20 // 6282c509b4e7
|
||||
//TODO: VPMADD52LUQ X3, X7, K1, X20 // 62e2c509b4e3
|
||||
//TODO: VPMADD52LUQ 15(R8), X7, K1, X20 // 62c2c509b4a00f000000
|
||||
//TODO: VPMADD52LUQ (BP), X7, K1, X20 // 62e2c509b46500
|
||||
//TODO: VPMADD52LUQ X5, X14, K1, X20 // 62e28d09b4e5
|
||||
//TODO: VPMADD52LUQ X31, X14, K1, X20 // 62828d09b4e7
|
||||
//TODO: VPMADD52LUQ X3, X14, K1, X20 // 62e28d09b4e3
|
||||
//TODO: VPMADD52LUQ 15(R8), X14, K1, X20 // 62c28d09b4a00f000000
|
||||
//TODO: VPMADD52LUQ (BP), X14, K1, X20 // 62e28d09b46500
|
||||
//TODO: VPMADD52LUQ X5, X9, K1, X7 // 62f2b509b4fd
|
||||
//TODO: VPMADD52LUQ X31, X9, K1, X7 // 6292b509b4ff
|
||||
//TODO: VPMADD52LUQ X3, X9, K1, X7 // 62f2b509b4fb
|
||||
//TODO: VPMADD52LUQ 15(R8), X9, K1, X7 // 62d2b509b4b80f000000
|
||||
//TODO: VPMADD52LUQ (BP), X9, K1, X7 // 62f2b509b47d00
|
||||
//TODO: VPMADD52LUQ X5, X7, K1, X7 // 62f2c509b4fd
|
||||
//TODO: VPMADD52LUQ X31, X7, K1, X7 // 6292c509b4ff
|
||||
//TODO: VPMADD52LUQ X3, X7, K1, X7 // 62f2c509b4fb
|
||||
//TODO: VPMADD52LUQ 15(R8), X7, K1, X7 // 62d2c509b4b80f000000
|
||||
//TODO: VPMADD52LUQ (BP), X7, K1, X7 // 62f2c509b47d00
|
||||
//TODO: VPMADD52LUQ X5, X14, K1, X7 // 62f28d09b4fd
|
||||
//TODO: VPMADD52LUQ X31, X14, K1, X7 // 62928d09b4ff
|
||||
//TODO: VPMADD52LUQ X3, X14, K1, X7 // 62f28d09b4fb
|
||||
//TODO: VPMADD52LUQ 15(R8), X14, K1, X7 // 62d28d09b4b80f000000
|
||||
//TODO: VPMADD52LUQ (BP), X14, K1, X7 // 62f28d09b47d00
|
||||
//TODO: VPMADD52LUQ Y3, Y9, K1, Y2 // 62f2b529b4d3
|
||||
//TODO: VPMADD52LUQ Y2, Y9, K1, Y2 // 62f2b529b4d2
|
||||
//TODO: VPMADD52LUQ Y9, Y9, K1, Y2 // 62d2b529b4d1
|
||||
//TODO: VPMADD52LUQ 17(SP)(BP*1), Y9, K1, Y2 // 62f2b529b4942c11000000
|
||||
//TODO: VPMADD52LUQ -7(CX)(DX*8), Y9, K1, Y2 // 62f2b529b494d1f9ffffff
|
||||
//TODO: VPMADD52LUQ Y3, Y1, K1, Y2 // 62f2f529b4d3
|
||||
//TODO: VPMADD52LUQ Y2, Y1, K1, Y2 // 62f2f529b4d2
|
||||
//TODO: VPMADD52LUQ Y9, Y1, K1, Y2 // 62d2f529b4d1
|
||||
//TODO: VPMADD52LUQ 17(SP)(BP*1), Y1, K1, Y2 // 62f2f529b4942c11000000
|
||||
//TODO: VPMADD52LUQ -7(CX)(DX*8), Y1, K1, Y2 // 62f2f529b494d1f9ffffff
|
||||
//TODO: VPMADD52LUQ Y3, Y9, K1, Y21 // 62e2b529b4eb
|
||||
//TODO: VPMADD52LUQ Y2, Y9, K1, Y21 // 62e2b529b4ea
|
||||
//TODO: VPMADD52LUQ Y9, Y9, K1, Y21 // 62c2b529b4e9
|
||||
//TODO: VPMADD52LUQ 17(SP)(BP*1), Y9, K1, Y21 // 62e2b529b4ac2c11000000
|
||||
//TODO: VPMADD52LUQ -7(CX)(DX*8), Y9, K1, Y21 // 62e2b529b4acd1f9ffffff
|
||||
//TODO: VPMADD52LUQ Y3, Y1, K1, Y21 // 62e2f529b4eb
|
||||
//TODO: VPMADD52LUQ Y2, Y1, K1, Y21 // 62e2f529b4ea
|
||||
//TODO: VPMADD52LUQ Y9, Y1, K1, Y21 // 62c2f529b4e9
|
||||
//TODO: VPMADD52LUQ 17(SP)(BP*1), Y1, K1, Y21 // 62e2f529b4ac2c11000000
|
||||
//TODO: VPMADD52LUQ -7(CX)(DX*8), Y1, K1, Y21 // 62e2f529b4acd1f9ffffff
|
||||
//TODO: VPMADD52LUQ Y3, Y9, K1, Y12 // 6272b529b4e3
|
||||
//TODO: VPMADD52LUQ Y2, Y9, K1, Y12 // 6272b529b4e2
|
||||
//TODO: VPMADD52LUQ Y9, Y9, K1, Y12 // 6252b529b4e1
|
||||
//TODO: VPMADD52LUQ 17(SP)(BP*1), Y9, K1, Y12 // 6272b529b4a42c11000000
|
||||
//TODO: VPMADD52LUQ -7(CX)(DX*8), Y9, K1, Y12 // 6272b529b4a4d1f9ffffff
|
||||
//TODO: VPMADD52LUQ Y3, Y1, K1, Y12 // 6272f529b4e3
|
||||
//TODO: VPMADD52LUQ Y2, Y1, K1, Y12 // 6272f529b4e2
|
||||
//TODO: VPMADD52LUQ Y9, Y1, K1, Y12 // 6252f529b4e1
|
||||
//TODO: VPMADD52LUQ 17(SP)(BP*1), Y1, K1, Y12 // 6272f529b4a42c11000000
|
||||
//TODO: VPMADD52LUQ -7(CX)(DX*8), Y1, K1, Y12 // 6272f529b4a4d1f9ffffff
|
||||
//TODO: VPMADD52LUQ Z16, Z21, K7, Z8 // 6232d547b4c0
|
||||
//TODO: VPMADD52LUQ Z13, Z21, K7, Z8 // 6252d547b4c5
|
||||
//TODO: VPMADD52LUQ 7(AX), Z21, K7, Z8 // 6272d547b48007000000
|
||||
//TODO: VPMADD52LUQ (DI), Z21, K7, Z8 // 6272d547b407
|
||||
//TODO: VPMADD52LUQ Z16, Z5, K7, Z8 // 6232d54fb4c0
|
||||
//TODO: VPMADD52LUQ Z13, Z5, K7, Z8 // 6252d54fb4c5
|
||||
//TODO: VPMADD52LUQ 7(AX), Z5, K7, Z8 // 6272d54fb48007000000
|
||||
//TODO: VPMADD52LUQ (DI), Z5, K7, Z8 // 6272d54fb407
|
||||
//TODO: VPMADD52LUQ Z16, Z21, K7, Z28 // 6222d547b4e0
|
||||
//TODO: VPMADD52LUQ Z13, Z21, K7, Z28 // 6242d547b4e5
|
||||
//TODO: VPMADD52LUQ 7(AX), Z21, K7, Z28 // 6262d547b4a007000000
|
||||
//TODO: VPMADD52LUQ (DI), Z21, K7, Z28 // 6262d547b427
|
||||
//TODO: VPMADD52LUQ Z16, Z5, K7, Z28 // 6222d54fb4e0
|
||||
//TODO: VPMADD52LUQ Z13, Z5, K7, Z28 // 6242d54fb4e5
|
||||
//TODO: VPMADD52LUQ 7(AX), Z5, K7, Z28 // 6262d54fb4a007000000
|
||||
//TODO: VPMADD52LUQ (DI), Z5, K7, Z28 // 6262d54fb427
|
||||
VPMADD52HUQ X7, X11, K1, X18 // 62e2a509b5d7
|
||||
VPMADD52HUQ X0, X11, K1, X18 // 62e2a509b5d0
|
||||
VPMADD52HUQ 17(SP)(BP*2), X11, K1, X18 // 62e2a509b5946c11000000
|
||||
VPMADD52HUQ -7(DI)(R8*4), X11, K1, X18 // 62a2a509b59487f9ffffff
|
||||
VPMADD52HUQ X7, X31, K1, X18 // 62e28501b5d7
|
||||
VPMADD52HUQ X0, X31, K1, X18 // 62e28501b5d0
|
||||
VPMADD52HUQ 17(SP)(BP*2), X31, K1, X18 // 62e28501b5946c11000000
|
||||
VPMADD52HUQ -7(DI)(R8*4), X31, K1, X18 // 62a28501b59487f9ffffff
|
||||
VPMADD52HUQ X7, X3, K1, X18 // 62e2e509b5d7
|
||||
VPMADD52HUQ X0, X3, K1, X18 // 62e2e509b5d0
|
||||
VPMADD52HUQ 17(SP)(BP*2), X3, K1, X18 // 62e2e509b5946c11000000
|
||||
VPMADD52HUQ -7(DI)(R8*4), X3, K1, X18 // 62a2e509b59487f9ffffff
|
||||
VPMADD52HUQ X7, X11, K1, X21 // 62e2a509b5ef
|
||||
VPMADD52HUQ X0, X11, K1, X21 // 62e2a509b5e8
|
||||
VPMADD52HUQ 17(SP)(BP*2), X11, K1, X21 // 62e2a509b5ac6c11000000
|
||||
VPMADD52HUQ -7(DI)(R8*4), X11, K1, X21 // 62a2a509b5ac87f9ffffff
|
||||
VPMADD52HUQ X7, X31, K1, X21 // 62e28501b5ef
|
||||
VPMADD52HUQ X0, X31, K1, X21 // 62e28501b5e8
|
||||
VPMADD52HUQ 17(SP)(BP*2), X31, K1, X21 // 62e28501b5ac6c11000000
|
||||
VPMADD52HUQ -7(DI)(R8*4), X31, K1, X21 // 62a28501b5ac87f9ffffff
|
||||
VPMADD52HUQ X7, X3, K1, X21 // 62e2e509b5ef
|
||||
VPMADD52HUQ X0, X3, K1, X21 // 62e2e509b5e8
|
||||
VPMADD52HUQ 17(SP)(BP*2), X3, K1, X21 // 62e2e509b5ac6c11000000
|
||||
VPMADD52HUQ -7(DI)(R8*4), X3, K1, X21 // 62a2e509b5ac87f9ffffff
|
||||
VPMADD52HUQ X7, X11, K1, X1 // 62f2a509b5cf
|
||||
VPMADD52HUQ X0, X11, K1, X1 // 62f2a509b5c8
|
||||
VPMADD52HUQ 17(SP)(BP*2), X11, K1, X1 // 62f2a509b58c6c11000000
|
||||
VPMADD52HUQ -7(DI)(R8*4), X11, K1, X1 // 62b2a509b58c87f9ffffff
|
||||
VPMADD52HUQ X7, X31, K1, X1 // 62f28501b5cf
|
||||
VPMADD52HUQ X0, X31, K1, X1 // 62f28501b5c8
|
||||
VPMADD52HUQ 17(SP)(BP*2), X31, K1, X1 // 62f28501b58c6c11000000
|
||||
VPMADD52HUQ -7(DI)(R8*4), X31, K1, X1 // 62b28501b58c87f9ffffff
|
||||
VPMADD52HUQ X7, X3, K1, X1 // 62f2e509b5cf
|
||||
VPMADD52HUQ X0, X3, K1, X1 // 62f2e509b5c8
|
||||
VPMADD52HUQ 17(SP)(BP*2), X3, K1, X1 // 62f2e509b58c6c11000000
|
||||
VPMADD52HUQ -7(DI)(R8*4), X3, K1, X1 // 62b2e509b58c87f9ffffff
|
||||
VPMADD52HUQ Y28, Y31, K7, Y17 // 62828527b5cc
|
||||
VPMADD52HUQ Y13, Y31, K7, Y17 // 62c28527b5cd
|
||||
VPMADD52HUQ Y7, Y31, K7, Y17 // 62e28527b5cf
|
||||
VPMADD52HUQ (R8), Y31, K7, Y17 // 62c28527b508
|
||||
VPMADD52HUQ 15(DX)(BX*2), Y31, K7, Y17 // 62e28527b58c5a0f000000
|
||||
VPMADD52HUQ Y28, Y8, K7, Y17 // 6282bd2fb5cc
|
||||
VPMADD52HUQ Y13, Y8, K7, Y17 // 62c2bd2fb5cd
|
||||
VPMADD52HUQ Y7, Y8, K7, Y17 // 62e2bd2fb5cf
|
||||
VPMADD52HUQ (R8), Y8, K7, Y17 // 62c2bd2fb508
|
||||
VPMADD52HUQ 15(DX)(BX*2), Y8, K7, Y17 // 62e2bd2fb58c5a0f000000
|
||||
VPMADD52HUQ Y28, Y1, K7, Y17 // 6282f52fb5cc
|
||||
VPMADD52HUQ Y13, Y1, K7, Y17 // 62c2f52fb5cd
|
||||
VPMADD52HUQ Y7, Y1, K7, Y17 // 62e2f52fb5cf
|
||||
VPMADD52HUQ (R8), Y1, K7, Y17 // 62c2f52fb508
|
||||
VPMADD52HUQ 15(DX)(BX*2), Y1, K7, Y17 // 62e2f52fb58c5a0f000000
|
||||
VPMADD52HUQ Y28, Y31, K7, Y7 // 62928527b5fc
|
||||
VPMADD52HUQ Y13, Y31, K7, Y7 // 62d28527b5fd
|
||||
VPMADD52HUQ Y7, Y31, K7, Y7 // 62f28527b5ff
|
||||
VPMADD52HUQ (R8), Y31, K7, Y7 // 62d28527b538
|
||||
VPMADD52HUQ 15(DX)(BX*2), Y31, K7, Y7 // 62f28527b5bc5a0f000000
|
||||
VPMADD52HUQ Y28, Y8, K7, Y7 // 6292bd2fb5fc
|
||||
VPMADD52HUQ Y13, Y8, K7, Y7 // 62d2bd2fb5fd
|
||||
VPMADD52HUQ Y7, Y8, K7, Y7 // 62f2bd2fb5ff
|
||||
VPMADD52HUQ (R8), Y8, K7, Y7 // 62d2bd2fb538
|
||||
VPMADD52HUQ 15(DX)(BX*2), Y8, K7, Y7 // 62f2bd2fb5bc5a0f000000
|
||||
VPMADD52HUQ Y28, Y1, K7, Y7 // 6292f52fb5fc
|
||||
VPMADD52HUQ Y13, Y1, K7, Y7 // 62d2f52fb5fd
|
||||
VPMADD52HUQ Y7, Y1, K7, Y7 // 62f2f52fb5ff
|
||||
VPMADD52HUQ (R8), Y1, K7, Y7 // 62d2f52fb538
|
||||
VPMADD52HUQ 15(DX)(BX*2), Y1, K7, Y7 // 62f2f52fb5bc5a0f000000
|
||||
VPMADD52HUQ Y28, Y31, K7, Y9 // 62128527b5cc
|
||||
VPMADD52HUQ Y13, Y31, K7, Y9 // 62528527b5cd
|
||||
VPMADD52HUQ Y7, Y31, K7, Y9 // 62728527b5cf
|
||||
VPMADD52HUQ (R8), Y31, K7, Y9 // 62528527b508
|
||||
VPMADD52HUQ 15(DX)(BX*2), Y31, K7, Y9 // 62728527b58c5a0f000000
|
||||
VPMADD52HUQ Y28, Y8, K7, Y9 // 6212bd2fb5cc
|
||||
VPMADD52HUQ Y13, Y8, K7, Y9 // 6252bd2fb5cd
|
||||
VPMADD52HUQ Y7, Y8, K7, Y9 // 6272bd2fb5cf
|
||||
VPMADD52HUQ (R8), Y8, K7, Y9 // 6252bd2fb508
|
||||
VPMADD52HUQ 15(DX)(BX*2), Y8, K7, Y9 // 6272bd2fb58c5a0f000000
|
||||
VPMADD52HUQ Y28, Y1, K7, Y9 // 6212f52fb5cc
|
||||
VPMADD52HUQ Y13, Y1, K7, Y9 // 6252f52fb5cd
|
||||
VPMADD52HUQ Y7, Y1, K7, Y9 // 6272f52fb5cf
|
||||
VPMADD52HUQ (R8), Y1, K7, Y9 // 6252f52fb508
|
||||
VPMADD52HUQ 15(DX)(BX*2), Y1, K7, Y9 // 6272f52fb58c5a0f000000
|
||||
VPMADD52HUQ Z23, Z23, K1, Z27 // 6222c541b5df
|
||||
VPMADD52HUQ Z6, Z23, K1, Z27 // 6262c541b5de
|
||||
VPMADD52HUQ 17(SP), Z23, K1, Z27 // 6262c541b59c2411000000
|
||||
VPMADD52HUQ -17(BP)(SI*4), Z23, K1, Z27 // 6262c541b59cb5efffffff
|
||||
VPMADD52HUQ Z23, Z5, K1, Z27 // 6222d549b5df
|
||||
VPMADD52HUQ Z6, Z5, K1, Z27 // 6262d549b5de
|
||||
VPMADD52HUQ 17(SP), Z5, K1, Z27 // 6262d549b59c2411000000
|
||||
VPMADD52HUQ -17(BP)(SI*4), Z5, K1, Z27 // 6262d549b59cb5efffffff
|
||||
VPMADD52HUQ Z23, Z23, K1, Z15 // 6232c541b5ff
|
||||
VPMADD52HUQ Z6, Z23, K1, Z15 // 6272c541b5fe
|
||||
VPMADD52HUQ 17(SP), Z23, K1, Z15 // 6272c541b5bc2411000000
|
||||
VPMADD52HUQ -17(BP)(SI*4), Z23, K1, Z15 // 6272c541b5bcb5efffffff
|
||||
VPMADD52HUQ Z23, Z5, K1, Z15 // 6232d549b5ff
|
||||
VPMADD52HUQ Z6, Z5, K1, Z15 // 6272d549b5fe
|
||||
VPMADD52HUQ 17(SP), Z5, K1, Z15 // 6272d549b5bc2411000000
|
||||
VPMADD52HUQ -17(BP)(SI*4), Z5, K1, Z15 // 6272d549b5bcb5efffffff
|
||||
VPMADD52LUQ X5, X9, K1, X24 // 6262b509b4c5
|
||||
VPMADD52LUQ X31, X9, K1, X24 // 6202b509b4c7
|
||||
VPMADD52LUQ X3, X9, K1, X24 // 6262b509b4c3
|
||||
VPMADD52LUQ 15(R8), X9, K1, X24 // 6242b509b4800f000000
|
||||
VPMADD52LUQ (BP), X9, K1, X24 // 6262b509b44500
|
||||
VPMADD52LUQ X5, X7, K1, X24 // 6262c509b4c5
|
||||
VPMADD52LUQ X31, X7, K1, X24 // 6202c509b4c7
|
||||
VPMADD52LUQ X3, X7, K1, X24 // 6262c509b4c3
|
||||
VPMADD52LUQ 15(R8), X7, K1, X24 // 6242c509b4800f000000
|
||||
VPMADD52LUQ (BP), X7, K1, X24 // 6262c509b44500
|
||||
VPMADD52LUQ X5, X14, K1, X24 // 62628d09b4c5
|
||||
VPMADD52LUQ X31, X14, K1, X24 // 62028d09b4c7
|
||||
VPMADD52LUQ X3, X14, K1, X24 // 62628d09b4c3
|
||||
VPMADD52LUQ 15(R8), X14, K1, X24 // 62428d09b4800f000000
|
||||
VPMADD52LUQ (BP), X14, K1, X24 // 62628d09b44500
|
||||
VPMADD52LUQ X5, X9, K1, X20 // 62e2b509b4e5
|
||||
VPMADD52LUQ X31, X9, K1, X20 // 6282b509b4e7
|
||||
VPMADD52LUQ X3, X9, K1, X20 // 62e2b509b4e3
|
||||
VPMADD52LUQ 15(R8), X9, K1, X20 // 62c2b509b4a00f000000
|
||||
VPMADD52LUQ (BP), X9, K1, X20 // 62e2b509b46500
|
||||
VPMADD52LUQ X5, X7, K1, X20 // 62e2c509b4e5
|
||||
VPMADD52LUQ X31, X7, K1, X20 // 6282c509b4e7
|
||||
VPMADD52LUQ X3, X7, K1, X20 // 62e2c509b4e3
|
||||
VPMADD52LUQ 15(R8), X7, K1, X20 // 62c2c509b4a00f000000
|
||||
VPMADD52LUQ (BP), X7, K1, X20 // 62e2c509b46500
|
||||
VPMADD52LUQ X5, X14, K1, X20 // 62e28d09b4e5
|
||||
VPMADD52LUQ X31, X14, K1, X20 // 62828d09b4e7
|
||||
VPMADD52LUQ X3, X14, K1, X20 // 62e28d09b4e3
|
||||
VPMADD52LUQ 15(R8), X14, K1, X20 // 62c28d09b4a00f000000
|
||||
VPMADD52LUQ (BP), X14, K1, X20 // 62e28d09b46500
|
||||
VPMADD52LUQ X5, X9, K1, X7 // 62f2b509b4fd
|
||||
VPMADD52LUQ X31, X9, K1, X7 // 6292b509b4ff
|
||||
VPMADD52LUQ X3, X9, K1, X7 // 62f2b509b4fb
|
||||
VPMADD52LUQ 15(R8), X9, K1, X7 // 62d2b509b4b80f000000
|
||||
VPMADD52LUQ (BP), X9, K1, X7 // 62f2b509b47d00
|
||||
VPMADD52LUQ X5, X7, K1, X7 // 62f2c509b4fd
|
||||
VPMADD52LUQ X31, X7, K1, X7 // 6292c509b4ff
|
||||
VPMADD52LUQ X3, X7, K1, X7 // 62f2c509b4fb
|
||||
VPMADD52LUQ 15(R8), X7, K1, X7 // 62d2c509b4b80f000000
|
||||
VPMADD52LUQ (BP), X7, K1, X7 // 62f2c509b47d00
|
||||
VPMADD52LUQ X5, X14, K1, X7 // 62f28d09b4fd
|
||||
VPMADD52LUQ X31, X14, K1, X7 // 62928d09b4ff
|
||||
VPMADD52LUQ X3, X14, K1, X7 // 62f28d09b4fb
|
||||
VPMADD52LUQ 15(R8), X14, K1, X7 // 62d28d09b4b80f000000
|
||||
VPMADD52LUQ (BP), X14, K1, X7 // 62f28d09b47d00
|
||||
VPMADD52LUQ Y3, Y9, K1, Y2 // 62f2b529b4d3
|
||||
VPMADD52LUQ Y2, Y9, K1, Y2 // 62f2b529b4d2
|
||||
VPMADD52LUQ Y9, Y9, K1, Y2 // 62d2b529b4d1
|
||||
VPMADD52LUQ 17(SP)(BP*1), Y9, K1, Y2 // 62f2b529b4942c11000000
|
||||
VPMADD52LUQ -7(CX)(DX*8), Y9, K1, Y2 // 62f2b529b494d1f9ffffff
|
||||
VPMADD52LUQ Y3, Y1, K1, Y2 // 62f2f529b4d3
|
||||
VPMADD52LUQ Y2, Y1, K1, Y2 // 62f2f529b4d2
|
||||
VPMADD52LUQ Y9, Y1, K1, Y2 // 62d2f529b4d1
|
||||
VPMADD52LUQ 17(SP)(BP*1), Y1, K1, Y2 // 62f2f529b4942c11000000
|
||||
VPMADD52LUQ -7(CX)(DX*8), Y1, K1, Y2 // 62f2f529b494d1f9ffffff
|
||||
VPMADD52LUQ Y3, Y9, K1, Y21 // 62e2b529b4eb
|
||||
VPMADD52LUQ Y2, Y9, K1, Y21 // 62e2b529b4ea
|
||||
VPMADD52LUQ Y9, Y9, K1, Y21 // 62c2b529b4e9
|
||||
VPMADD52LUQ 17(SP)(BP*1), Y9, K1, Y21 // 62e2b529b4ac2c11000000
|
||||
VPMADD52LUQ -7(CX)(DX*8), Y9, K1, Y21 // 62e2b529b4acd1f9ffffff
|
||||
VPMADD52LUQ Y3, Y1, K1, Y21 // 62e2f529b4eb
|
||||
VPMADD52LUQ Y2, Y1, K1, Y21 // 62e2f529b4ea
|
||||
VPMADD52LUQ Y9, Y1, K1, Y21 // 62c2f529b4e9
|
||||
VPMADD52LUQ 17(SP)(BP*1), Y1, K1, Y21 // 62e2f529b4ac2c11000000
|
||||
VPMADD52LUQ -7(CX)(DX*8), Y1, K1, Y21 // 62e2f529b4acd1f9ffffff
|
||||
VPMADD52LUQ Y3, Y9, K1, Y12 // 6272b529b4e3
|
||||
VPMADD52LUQ Y2, Y9, K1, Y12 // 6272b529b4e2
|
||||
VPMADD52LUQ Y9, Y9, K1, Y12 // 6252b529b4e1
|
||||
VPMADD52LUQ 17(SP)(BP*1), Y9, K1, Y12 // 6272b529b4a42c11000000
|
||||
VPMADD52LUQ -7(CX)(DX*8), Y9, K1, Y12 // 6272b529b4a4d1f9ffffff
|
||||
VPMADD52LUQ Y3, Y1, K1, Y12 // 6272f529b4e3
|
||||
VPMADD52LUQ Y2, Y1, K1, Y12 // 6272f529b4e2
|
||||
VPMADD52LUQ Y9, Y1, K1, Y12 // 6252f529b4e1
|
||||
VPMADD52LUQ 17(SP)(BP*1), Y1, K1, Y12 // 6272f529b4a42c11000000
|
||||
VPMADD52LUQ -7(CX)(DX*8), Y1, K1, Y12 // 6272f529b4a4d1f9ffffff
|
||||
VPMADD52LUQ Z16, Z21, K7, Z8 // 6232d547b4c0
|
||||
VPMADD52LUQ Z13, Z21, K7, Z8 // 6252d547b4c5
|
||||
VPMADD52LUQ 7(AX), Z21, K7, Z8 // 6272d547b48007000000
|
||||
VPMADD52LUQ (DI), Z21, K7, Z8 // 6272d547b407
|
||||
VPMADD52LUQ Z16, Z5, K7, Z8 // 6232d54fb4c0
|
||||
VPMADD52LUQ Z13, Z5, K7, Z8 // 6252d54fb4c5
|
||||
VPMADD52LUQ 7(AX), Z5, K7, Z8 // 6272d54fb48007000000
|
||||
VPMADD52LUQ (DI), Z5, K7, Z8 // 6272d54fb407
|
||||
VPMADD52LUQ Z16, Z21, K7, Z28 // 6222d547b4e0
|
||||
VPMADD52LUQ Z13, Z21, K7, Z28 // 6242d547b4e5
|
||||
VPMADD52LUQ 7(AX), Z21, K7, Z28 // 6262d547b4a007000000
|
||||
VPMADD52LUQ (DI), Z21, K7, Z28 // 6262d547b427
|
||||
VPMADD52LUQ Z16, Z5, K7, Z28 // 6222d54fb4e0
|
||||
VPMADD52LUQ Z13, Z5, K7, Z28 // 6242d54fb4e5
|
||||
VPMADD52LUQ 7(AX), Z5, K7, Z28 // 6262d54fb4a007000000
|
||||
VPMADD52LUQ (DI), Z5, K7, Z28 // 6262d54fb427
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -3,413 +3,413 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512_vbmi(SB), NOSPLIT, $0
|
||||
//TODO: VPERMB X26, X20, K1, X23 // 62825d018dfa
|
||||
//TODO: VPERMB X19, X20, K1, X23 // 62a25d018dfb
|
||||
//TODO: VPERMB X0, X20, K1, X23 // 62e25d018df8
|
||||
//TODO: VPERMB 7(SI)(DI*4), X20, K1, X23 // 62e25d018dbcbe07000000
|
||||
//TODO: VPERMB -7(DI)(R8*2), X20, K1, X23 // 62a25d018dbc47f9ffffff
|
||||
//TODO: VPERMB X26, X2, K1, X23 // 62826d098dfa
|
||||
//TODO: VPERMB X19, X2, K1, X23 // 62a26d098dfb
|
||||
//TODO: VPERMB X0, X2, K1, X23 // 62e26d098df8
|
||||
//TODO: VPERMB 7(SI)(DI*4), X2, K1, X23 // 62e26d098dbcbe07000000
|
||||
//TODO: VPERMB -7(DI)(R8*2), X2, K1, X23 // 62a26d098dbc47f9ffffff
|
||||
//TODO: VPERMB X26, X9, K1, X23 // 628235098dfa
|
||||
//TODO: VPERMB X19, X9, K1, X23 // 62a235098dfb
|
||||
//TODO: VPERMB X0, X9, K1, X23 // 62e235098df8
|
||||
//TODO: VPERMB 7(SI)(DI*4), X9, K1, X23 // 62e235098dbcbe07000000
|
||||
//TODO: VPERMB -7(DI)(R8*2), X9, K1, X23 // 62a235098dbc47f9ffffff
|
||||
//TODO: VPERMB X26, X20, K1, X30 // 62025d018df2
|
||||
//TODO: VPERMB X19, X20, K1, X30 // 62225d018df3
|
||||
//TODO: VPERMB X0, X20, K1, X30 // 62625d018df0
|
||||
//TODO: VPERMB 7(SI)(DI*4), X20, K1, X30 // 62625d018db4be07000000
|
||||
//TODO: VPERMB -7(DI)(R8*2), X20, K1, X30 // 62225d018db447f9ffffff
|
||||
//TODO: VPERMB X26, X2, K1, X30 // 62026d098df2
|
||||
//TODO: VPERMB X19, X2, K1, X30 // 62226d098df3
|
||||
//TODO: VPERMB X0, X2, K1, X30 // 62626d098df0
|
||||
//TODO: VPERMB 7(SI)(DI*4), X2, K1, X30 // 62626d098db4be07000000
|
||||
//TODO: VPERMB -7(DI)(R8*2), X2, K1, X30 // 62226d098db447f9ffffff
|
||||
//TODO: VPERMB X26, X9, K1, X30 // 620235098df2
|
||||
//TODO: VPERMB X19, X9, K1, X30 // 622235098df3
|
||||
//TODO: VPERMB X0, X9, K1, X30 // 626235098df0
|
||||
//TODO: VPERMB 7(SI)(DI*4), X9, K1, X30 // 626235098db4be07000000
|
||||
//TODO: VPERMB -7(DI)(R8*2), X9, K1, X30 // 622235098db447f9ffffff
|
||||
//TODO: VPERMB X26, X20, K1, X8 // 62125d018dc2
|
||||
//TODO: VPERMB X19, X20, K1, X8 // 62325d018dc3
|
||||
//TODO: VPERMB X0, X20, K1, X8 // 62725d018dc0
|
||||
//TODO: VPERMB 7(SI)(DI*4), X20, K1, X8 // 62725d018d84be07000000
|
||||
//TODO: VPERMB -7(DI)(R8*2), X20, K1, X8 // 62325d018d8447f9ffffff
|
||||
//TODO: VPERMB X26, X2, K1, X8 // 62126d098dc2
|
||||
//TODO: VPERMB X19, X2, K1, X8 // 62326d098dc3
|
||||
//TODO: VPERMB X0, X2, K1, X8 // 62726d098dc0
|
||||
//TODO: VPERMB 7(SI)(DI*4), X2, K1, X8 // 62726d098d84be07000000
|
||||
//TODO: VPERMB -7(DI)(R8*2), X2, K1, X8 // 62326d098d8447f9ffffff
|
||||
//TODO: VPERMB X26, X9, K1, X8 // 621235098dc2
|
||||
//TODO: VPERMB X19, X9, K1, X8 // 623235098dc3
|
||||
//TODO: VPERMB X0, X9, K1, X8 // 627235098dc0
|
||||
//TODO: VPERMB 7(SI)(DI*4), X9, K1, X8 // 627235098d84be07000000
|
||||
//TODO: VPERMB -7(DI)(R8*2), X9, K1, X8 // 623235098d8447f9ffffff
|
||||
//TODO: VPERMB Y5, Y31, K7, Y22 // 62e205278df5
|
||||
//TODO: VPERMB Y19, Y31, K7, Y22 // 62a205278df3
|
||||
//TODO: VPERMB Y31, Y31, K7, Y22 // 628205278df7
|
||||
//TODO: VPERMB 17(SP)(BP*1), Y31, K7, Y22 // 62e205278db42c11000000
|
||||
//TODO: VPERMB -7(CX)(DX*8), Y31, K7, Y22 // 62e205278db4d1f9ffffff
|
||||
//TODO: VPERMB Y5, Y5, K7, Y22 // 62e2552f8df5
|
||||
//TODO: VPERMB Y19, Y5, K7, Y22 // 62a2552f8df3
|
||||
//TODO: VPERMB Y31, Y5, K7, Y22 // 6282552f8df7
|
||||
//TODO: VPERMB 17(SP)(BP*1), Y5, K7, Y22 // 62e2552f8db42c11000000
|
||||
//TODO: VPERMB -7(CX)(DX*8), Y5, K7, Y22 // 62e2552f8db4d1f9ffffff
|
||||
//TODO: VPERMB Y5, Y0, K7, Y22 // 62e27d2f8df5
|
||||
//TODO: VPERMB Y19, Y0, K7, Y22 // 62a27d2f8df3
|
||||
//TODO: VPERMB Y31, Y0, K7, Y22 // 62827d2f8df7
|
||||
//TODO: VPERMB 17(SP)(BP*1), Y0, K7, Y22 // 62e27d2f8db42c11000000
|
||||
//TODO: VPERMB -7(CX)(DX*8), Y0, K7, Y22 // 62e27d2f8db4d1f9ffffff
|
||||
//TODO: VPERMB Y5, Y31, K7, Y9 // 627205278dcd
|
||||
//TODO: VPERMB Y19, Y31, K7, Y9 // 623205278dcb
|
||||
//TODO: VPERMB Y31, Y31, K7, Y9 // 621205278dcf
|
||||
//TODO: VPERMB 17(SP)(BP*1), Y31, K7, Y9 // 627205278d8c2c11000000
|
||||
//TODO: VPERMB -7(CX)(DX*8), Y31, K7, Y9 // 627205278d8cd1f9ffffff
|
||||
//TODO: VPERMB Y5, Y5, K7, Y9 // 6272552f8dcd
|
||||
//TODO: VPERMB Y19, Y5, K7, Y9 // 6232552f8dcb
|
||||
//TODO: VPERMB Y31, Y5, K7, Y9 // 6212552f8dcf
|
||||
//TODO: VPERMB 17(SP)(BP*1), Y5, K7, Y9 // 6272552f8d8c2c11000000
|
||||
//TODO: VPERMB -7(CX)(DX*8), Y5, K7, Y9 // 6272552f8d8cd1f9ffffff
|
||||
//TODO: VPERMB Y5, Y0, K7, Y9 // 62727d2f8dcd
|
||||
//TODO: VPERMB Y19, Y0, K7, Y9 // 62327d2f8dcb
|
||||
//TODO: VPERMB Y31, Y0, K7, Y9 // 62127d2f8dcf
|
||||
//TODO: VPERMB 17(SP)(BP*1), Y0, K7, Y9 // 62727d2f8d8c2c11000000
|
||||
//TODO: VPERMB -7(CX)(DX*8), Y0, K7, Y9 // 62727d2f8d8cd1f9ffffff
|
||||
//TODO: VPERMB Y5, Y31, K7, Y23 // 62e205278dfd
|
||||
//TODO: VPERMB Y19, Y31, K7, Y23 // 62a205278dfb
|
||||
//TODO: VPERMB Y31, Y31, K7, Y23 // 628205278dff
|
||||
//TODO: VPERMB 17(SP)(BP*1), Y31, K7, Y23 // 62e205278dbc2c11000000
|
||||
//TODO: VPERMB -7(CX)(DX*8), Y31, K7, Y23 // 62e205278dbcd1f9ffffff
|
||||
//TODO: VPERMB Y5, Y5, K7, Y23 // 62e2552f8dfd
|
||||
//TODO: VPERMB Y19, Y5, K7, Y23 // 62a2552f8dfb
|
||||
//TODO: VPERMB Y31, Y5, K7, Y23 // 6282552f8dff
|
||||
//TODO: VPERMB 17(SP)(BP*1), Y5, K7, Y23 // 62e2552f8dbc2c11000000
|
||||
//TODO: VPERMB -7(CX)(DX*8), Y5, K7, Y23 // 62e2552f8dbcd1f9ffffff
|
||||
//TODO: VPERMB Y5, Y0, K7, Y23 // 62e27d2f8dfd
|
||||
//TODO: VPERMB Y19, Y0, K7, Y23 // 62a27d2f8dfb
|
||||
//TODO: VPERMB Y31, Y0, K7, Y23 // 62827d2f8dff
|
||||
//TODO: VPERMB 17(SP)(BP*1), Y0, K7, Y23 // 62e27d2f8dbc2c11000000
|
||||
//TODO: VPERMB -7(CX)(DX*8), Y0, K7, Y23 // 62e27d2f8dbcd1f9ffffff
|
||||
//TODO: VPERMB Z3, Z8, K1, Z3 // 62f23d498ddb
|
||||
//TODO: VPERMB Z27, Z8, K1, Z3 // 62923d498ddb
|
||||
//TODO: VPERMB 7(AX), Z8, K1, Z3 // 62f23d498d9807000000
|
||||
//TODO: VPERMB (DI), Z8, K1, Z3 // 62f23d498d1f
|
||||
//TODO: VPERMB Z3, Z2, K1, Z3 // 62f26d498ddb
|
||||
//TODO: VPERMB Z27, Z2, K1, Z3 // 62926d498ddb
|
||||
//TODO: VPERMB 7(AX), Z2, K1, Z3 // 62f26d498d9807000000
|
||||
//TODO: VPERMB (DI), Z2, K1, Z3 // 62f26d498d1f
|
||||
//TODO: VPERMB Z3, Z8, K1, Z21 // 62e23d498deb
|
||||
//TODO: VPERMB Z27, Z8, K1, Z21 // 62823d498deb
|
||||
//TODO: VPERMB 7(AX), Z8, K1, Z21 // 62e23d498da807000000
|
||||
//TODO: VPERMB (DI), Z8, K1, Z21 // 62e23d498d2f
|
||||
//TODO: VPERMB Z3, Z2, K1, Z21 // 62e26d498deb
|
||||
//TODO: VPERMB Z27, Z2, K1, Z21 // 62826d498deb
|
||||
//TODO: VPERMB 7(AX), Z2, K1, Z21 // 62e26d498da807000000
|
||||
//TODO: VPERMB (DI), Z2, K1, Z21 // 62e26d498d2f
|
||||
//TODO: VPERMI2B X15, X8, K7, X31 // 62423d0f75ff
|
||||
//TODO: VPERMI2B X0, X8, K7, X31 // 62623d0f75f8
|
||||
//TODO: VPERMI2B X16, X8, K7, X31 // 62223d0f75f8
|
||||
//TODO: VPERMI2B 17(SP), X8, K7, X31 // 62623d0f75bc2411000000
|
||||
//TODO: VPERMI2B -17(BP)(SI*4), X8, K7, X31 // 62623d0f75bcb5efffffff
|
||||
//TODO: VPERMI2B X15, X1, K7, X31 // 6242750f75ff
|
||||
//TODO: VPERMI2B X0, X1, K7, X31 // 6262750f75f8
|
||||
//TODO: VPERMI2B X16, X1, K7, X31 // 6222750f75f8
|
||||
//TODO: VPERMI2B 17(SP), X1, K7, X31 // 6262750f75bc2411000000
|
||||
//TODO: VPERMI2B -17(BP)(SI*4), X1, K7, X31 // 6262750f75bcb5efffffff
|
||||
//TODO: VPERMI2B X15, X0, K7, X31 // 62427d0f75ff
|
||||
//TODO: VPERMI2B X0, X0, K7, X31 // 62627d0f75f8
|
||||
//TODO: VPERMI2B X16, X0, K7, X31 // 62227d0f75f8
|
||||
//TODO: VPERMI2B 17(SP), X0, K7, X31 // 62627d0f75bc2411000000
|
||||
//TODO: VPERMI2B -17(BP)(SI*4), X0, K7, X31 // 62627d0f75bcb5efffffff
|
||||
//TODO: VPERMI2B X15, X8, K7, X16 // 62c23d0f75c7
|
||||
//TODO: VPERMI2B X0, X8, K7, X16 // 62e23d0f75c0
|
||||
//TODO: VPERMI2B X16, X8, K7, X16 // 62a23d0f75c0
|
||||
//TODO: VPERMI2B 17(SP), X8, K7, X16 // 62e23d0f75842411000000
|
||||
//TODO: VPERMI2B -17(BP)(SI*4), X8, K7, X16 // 62e23d0f7584b5efffffff
|
||||
//TODO: VPERMI2B X15, X1, K7, X16 // 62c2750f75c7
|
||||
//TODO: VPERMI2B X0, X1, K7, X16 // 62e2750f75c0
|
||||
//TODO: VPERMI2B X16, X1, K7, X16 // 62a2750f75c0
|
||||
//TODO: VPERMI2B 17(SP), X1, K7, X16 // 62e2750f75842411000000
|
||||
//TODO: VPERMI2B -17(BP)(SI*4), X1, K7, X16 // 62e2750f7584b5efffffff
|
||||
//TODO: VPERMI2B X15, X0, K7, X16 // 62c27d0f75c7
|
||||
//TODO: VPERMI2B X0, X0, K7, X16 // 62e27d0f75c0
|
||||
//TODO: VPERMI2B X16, X0, K7, X16 // 62a27d0f75c0
|
||||
//TODO: VPERMI2B 17(SP), X0, K7, X16 // 62e27d0f75842411000000
|
||||
//TODO: VPERMI2B -17(BP)(SI*4), X0, K7, X16 // 62e27d0f7584b5efffffff
|
||||
//TODO: VPERMI2B X15, X8, K7, X7 // 62d23d0f75ff
|
||||
//TODO: VPERMI2B X0, X8, K7, X7 // 62f23d0f75f8
|
||||
//TODO: VPERMI2B X16, X8, K7, X7 // 62b23d0f75f8
|
||||
//TODO: VPERMI2B 17(SP), X8, K7, X7 // 62f23d0f75bc2411000000
|
||||
//TODO: VPERMI2B -17(BP)(SI*4), X8, K7, X7 // 62f23d0f75bcb5efffffff
|
||||
//TODO: VPERMI2B X15, X1, K7, X7 // 62d2750f75ff
|
||||
//TODO: VPERMI2B X0, X1, K7, X7 // 62f2750f75f8
|
||||
//TODO: VPERMI2B X16, X1, K7, X7 // 62b2750f75f8
|
||||
//TODO: VPERMI2B 17(SP), X1, K7, X7 // 62f2750f75bc2411000000
|
||||
//TODO: VPERMI2B -17(BP)(SI*4), X1, K7, X7 // 62f2750f75bcb5efffffff
|
||||
//TODO: VPERMI2B X15, X0, K7, X7 // 62d27d0f75ff
|
||||
//TODO: VPERMI2B X0, X0, K7, X7 // 62f27d0f75f8
|
||||
//TODO: VPERMI2B X16, X0, K7, X7 // 62b27d0f75f8
|
||||
//TODO: VPERMI2B 17(SP), X0, K7, X7 // 62f27d0f75bc2411000000
|
||||
//TODO: VPERMI2B -17(BP)(SI*4), X0, K7, X7 // 62f27d0f75bcb5efffffff
|
||||
//TODO: VPERMI2B Y18, Y15, K2, Y2 // 62b2052a75d2
|
||||
//TODO: VPERMI2B Y24, Y15, K2, Y2 // 6292052a75d0
|
||||
//TODO: VPERMI2B Y9, Y15, K2, Y2 // 62d2052a75d1
|
||||
//TODO: VPERMI2B 15(R8)(R14*1), Y15, K2, Y2 // 6292052a7594300f000000
|
||||
//TODO: VPERMI2B 15(R8)(R14*2), Y15, K2, Y2 // 6292052a7594700f000000
|
||||
//TODO: VPERMI2B Y18, Y22, K2, Y2 // 62b24d2275d2
|
||||
//TODO: VPERMI2B Y24, Y22, K2, Y2 // 62924d2275d0
|
||||
//TODO: VPERMI2B Y9, Y22, K2, Y2 // 62d24d2275d1
|
||||
//TODO: VPERMI2B 15(R8)(R14*1), Y22, K2, Y2 // 62924d227594300f000000
|
||||
//TODO: VPERMI2B 15(R8)(R14*2), Y22, K2, Y2 // 62924d227594700f000000
|
||||
//TODO: VPERMI2B Y18, Y20, K2, Y2 // 62b25d2275d2
|
||||
//TODO: VPERMI2B Y24, Y20, K2, Y2 // 62925d2275d0
|
||||
//TODO: VPERMI2B Y9, Y20, K2, Y2 // 62d25d2275d1
|
||||
//TODO: VPERMI2B 15(R8)(R14*1), Y20, K2, Y2 // 62925d227594300f000000
|
||||
//TODO: VPERMI2B 15(R8)(R14*2), Y20, K2, Y2 // 62925d227594700f000000
|
||||
//TODO: VPERMI2B Y18, Y15, K2, Y13 // 6232052a75ea
|
||||
//TODO: VPERMI2B Y24, Y15, K2, Y13 // 6212052a75e8
|
||||
//TODO: VPERMI2B Y9, Y15, K2, Y13 // 6252052a75e9
|
||||
//TODO: VPERMI2B 15(R8)(R14*1), Y15, K2, Y13 // 6212052a75ac300f000000
|
||||
//TODO: VPERMI2B 15(R8)(R14*2), Y15, K2, Y13 // 6212052a75ac700f000000
|
||||
//TODO: VPERMI2B Y18, Y22, K2, Y13 // 62324d2275ea
|
||||
//TODO: VPERMI2B Y24, Y22, K2, Y13 // 62124d2275e8
|
||||
//TODO: VPERMI2B Y9, Y22, K2, Y13 // 62524d2275e9
|
||||
//TODO: VPERMI2B 15(R8)(R14*1), Y22, K2, Y13 // 62124d2275ac300f000000
|
||||
//TODO: VPERMI2B 15(R8)(R14*2), Y22, K2, Y13 // 62124d2275ac700f000000
|
||||
//TODO: VPERMI2B Y18, Y20, K2, Y13 // 62325d2275ea
|
||||
//TODO: VPERMI2B Y24, Y20, K2, Y13 // 62125d2275e8
|
||||
//TODO: VPERMI2B Y9, Y20, K2, Y13 // 62525d2275e9
|
||||
//TODO: VPERMI2B 15(R8)(R14*1), Y20, K2, Y13 // 62125d2275ac300f000000
|
||||
//TODO: VPERMI2B 15(R8)(R14*2), Y20, K2, Y13 // 62125d2275ac700f000000
|
||||
//TODO: VPERMI2B Y18, Y15, K2, Y27 // 6222052a75da
|
||||
//TODO: VPERMI2B Y24, Y15, K2, Y27 // 6202052a75d8
|
||||
//TODO: VPERMI2B Y9, Y15, K2, Y27 // 6242052a75d9
|
||||
//TODO: VPERMI2B 15(R8)(R14*1), Y15, K2, Y27 // 6202052a759c300f000000
|
||||
//TODO: VPERMI2B 15(R8)(R14*2), Y15, K2, Y27 // 6202052a759c700f000000
|
||||
//TODO: VPERMI2B Y18, Y22, K2, Y27 // 62224d2275da
|
||||
//TODO: VPERMI2B Y24, Y22, K2, Y27 // 62024d2275d8
|
||||
//TODO: VPERMI2B Y9, Y22, K2, Y27 // 62424d2275d9
|
||||
//TODO: VPERMI2B 15(R8)(R14*1), Y22, K2, Y27 // 62024d22759c300f000000
|
||||
//TODO: VPERMI2B 15(R8)(R14*2), Y22, K2, Y27 // 62024d22759c700f000000
|
||||
//TODO: VPERMI2B Y18, Y20, K2, Y27 // 62225d2275da
|
||||
//TODO: VPERMI2B Y24, Y20, K2, Y27 // 62025d2275d8
|
||||
//TODO: VPERMI2B Y9, Y20, K2, Y27 // 62425d2275d9
|
||||
//TODO: VPERMI2B 15(R8)(R14*1), Y20, K2, Y27 // 62025d22759c300f000000
|
||||
//TODO: VPERMI2B 15(R8)(R14*2), Y20, K2, Y27 // 62025d22759c700f000000
|
||||
//TODO: VPERMI2B Z12, Z9, K4, Z3 // 62d2354c75dc
|
||||
//TODO: VPERMI2B Z22, Z9, K4, Z3 // 62b2354c75de
|
||||
//TODO: VPERMI2B -17(BP)(SI*8), Z9, K4, Z3 // 62f2354c759cf5efffffff
|
||||
//TODO: VPERMI2B (R15), Z9, K4, Z3 // 62d2354c751f
|
||||
//TODO: VPERMI2B Z12, Z19, K4, Z3 // 62d2654475dc
|
||||
//TODO: VPERMI2B Z22, Z19, K4, Z3 // 62b2654475de
|
||||
//TODO: VPERMI2B -17(BP)(SI*8), Z19, K4, Z3 // 62f26544759cf5efffffff
|
||||
//TODO: VPERMI2B (R15), Z19, K4, Z3 // 62d26544751f
|
||||
//TODO: VPERMI2B Z12, Z9, K4, Z30 // 6242354c75f4
|
||||
//TODO: VPERMI2B Z22, Z9, K4, Z30 // 6222354c75f6
|
||||
//TODO: VPERMI2B -17(BP)(SI*8), Z9, K4, Z30 // 6262354c75b4f5efffffff
|
||||
//TODO: VPERMI2B (R15), Z9, K4, Z30 // 6242354c7537
|
||||
//TODO: VPERMI2B Z12, Z19, K4, Z30 // 6242654475f4
|
||||
//TODO: VPERMI2B Z22, Z19, K4, Z30 // 6222654475f6
|
||||
//TODO: VPERMI2B -17(BP)(SI*8), Z19, K4, Z30 // 6262654475b4f5efffffff
|
||||
//TODO: VPERMI2B (R15), Z19, K4, Z30 // 624265447537
|
||||
//TODO: VPERMT2B X2, X0, K7, X20 // 62e27d0f7de2
|
||||
//TODO: VPERMT2B X8, X0, K7, X20 // 62c27d0f7de0
|
||||
//TODO: VPERMT2B X9, X0, K7, X20 // 62c27d0f7de1
|
||||
//TODO: VPERMT2B (BX), X0, K7, X20 // 62e27d0f7d23
|
||||
//TODO: VPERMT2B -17(BP)(SI*1), X0, K7, X20 // 62e27d0f7da435efffffff
|
||||
//TODO: VPERMT2B X2, X9, K7, X20 // 62e2350f7de2
|
||||
//TODO: VPERMT2B X8, X9, K7, X20 // 62c2350f7de0
|
||||
//TODO: VPERMT2B X9, X9, K7, X20 // 62c2350f7de1
|
||||
//TODO: VPERMT2B (BX), X9, K7, X20 // 62e2350f7d23
|
||||
//TODO: VPERMT2B -17(BP)(SI*1), X9, K7, X20 // 62e2350f7da435efffffff
|
||||
//TODO: VPERMT2B X2, X13, K7, X20 // 62e2150f7de2
|
||||
//TODO: VPERMT2B X8, X13, K7, X20 // 62c2150f7de0
|
||||
//TODO: VPERMT2B X9, X13, K7, X20 // 62c2150f7de1
|
||||
//TODO: VPERMT2B (BX), X13, K7, X20 // 62e2150f7d23
|
||||
//TODO: VPERMT2B -17(BP)(SI*1), X13, K7, X20 // 62e2150f7da435efffffff
|
||||
//TODO: VPERMT2B X2, X0, K7, X5 // 62f27d0f7dea
|
||||
//TODO: VPERMT2B X8, X0, K7, X5 // 62d27d0f7de8
|
||||
//TODO: VPERMT2B X9, X0, K7, X5 // 62d27d0f7de9
|
||||
//TODO: VPERMT2B (BX), X0, K7, X5 // 62f27d0f7d2b
|
||||
//TODO: VPERMT2B -17(BP)(SI*1), X0, K7, X5 // 62f27d0f7dac35efffffff
|
||||
//TODO: VPERMT2B X2, X9, K7, X5 // 62f2350f7dea
|
||||
//TODO: VPERMT2B X8, X9, K7, X5 // 62d2350f7de8
|
||||
//TODO: VPERMT2B X9, X9, K7, X5 // 62d2350f7de9
|
||||
//TODO: VPERMT2B (BX), X9, K7, X5 // 62f2350f7d2b
|
||||
//TODO: VPERMT2B -17(BP)(SI*1), X9, K7, X5 // 62f2350f7dac35efffffff
|
||||
//TODO: VPERMT2B X2, X13, K7, X5 // 62f2150f7dea
|
||||
//TODO: VPERMT2B X8, X13, K7, X5 // 62d2150f7de8
|
||||
//TODO: VPERMT2B X9, X13, K7, X5 // 62d2150f7de9
|
||||
//TODO: VPERMT2B (BX), X13, K7, X5 // 62f2150f7d2b
|
||||
//TODO: VPERMT2B -17(BP)(SI*1), X13, K7, X5 // 62f2150f7dac35efffffff
|
||||
//TODO: VPERMT2B X2, X0, K7, X25 // 62627d0f7dca
|
||||
//TODO: VPERMT2B X8, X0, K7, X25 // 62427d0f7dc8
|
||||
//TODO: VPERMT2B X9, X0, K7, X25 // 62427d0f7dc9
|
||||
//TODO: VPERMT2B (BX), X0, K7, X25 // 62627d0f7d0b
|
||||
//TODO: VPERMT2B -17(BP)(SI*1), X0, K7, X25 // 62627d0f7d8c35efffffff
|
||||
//TODO: VPERMT2B X2, X9, K7, X25 // 6262350f7dca
|
||||
//TODO: VPERMT2B X8, X9, K7, X25 // 6242350f7dc8
|
||||
//TODO: VPERMT2B X9, X9, K7, X25 // 6242350f7dc9
|
||||
//TODO: VPERMT2B (BX), X9, K7, X25 // 6262350f7d0b
|
||||
//TODO: VPERMT2B -17(BP)(SI*1), X9, K7, X25 // 6262350f7d8c35efffffff
|
||||
//TODO: VPERMT2B X2, X13, K7, X25 // 6262150f7dca
|
||||
//TODO: VPERMT2B X8, X13, K7, X25 // 6242150f7dc8
|
||||
//TODO: VPERMT2B X9, X13, K7, X25 // 6242150f7dc9
|
||||
//TODO: VPERMT2B (BX), X13, K7, X25 // 6262150f7d0b
|
||||
//TODO: VPERMT2B -17(BP)(SI*1), X13, K7, X25 // 6262150f7d8c35efffffff
|
||||
//TODO: VPERMT2B Y14, Y2, K6, Y18 // 62c26d2e7dd6
|
||||
//TODO: VPERMT2B Y8, Y2, K6, Y18 // 62c26d2e7dd0
|
||||
//TODO: VPERMT2B Y20, Y2, K6, Y18 // 62a26d2e7dd4
|
||||
//TODO: VPERMT2B 7(SI)(DI*4), Y2, K6, Y18 // 62e26d2e7d94be07000000
|
||||
//TODO: VPERMT2B -7(DI)(R8*2), Y2, K6, Y18 // 62a26d2e7d9447f9ffffff
|
||||
//TODO: VPERMT2B Y14, Y7, K6, Y18 // 62c2452e7dd6
|
||||
//TODO: VPERMT2B Y8, Y7, K6, Y18 // 62c2452e7dd0
|
||||
//TODO: VPERMT2B Y20, Y7, K6, Y18 // 62a2452e7dd4
|
||||
//TODO: VPERMT2B 7(SI)(DI*4), Y7, K6, Y18 // 62e2452e7d94be07000000
|
||||
//TODO: VPERMT2B -7(DI)(R8*2), Y7, K6, Y18 // 62a2452e7d9447f9ffffff
|
||||
//TODO: VPERMT2B Y14, Y21, K6, Y18 // 62c255267dd6
|
||||
//TODO: VPERMT2B Y8, Y21, K6, Y18 // 62c255267dd0
|
||||
//TODO: VPERMT2B Y20, Y21, K6, Y18 // 62a255267dd4
|
||||
//TODO: VPERMT2B 7(SI)(DI*4), Y21, K6, Y18 // 62e255267d94be07000000
|
||||
//TODO: VPERMT2B -7(DI)(R8*2), Y21, K6, Y18 // 62a255267d9447f9ffffff
|
||||
//TODO: VPERMT2B Y14, Y2, K6, Y3 // 62d26d2e7dde
|
||||
//TODO: VPERMT2B Y8, Y2, K6, Y3 // 62d26d2e7dd8
|
||||
//TODO: VPERMT2B Y20, Y2, K6, Y3 // 62b26d2e7ddc
|
||||
//TODO: VPERMT2B 7(SI)(DI*4), Y2, K6, Y3 // 62f26d2e7d9cbe07000000
|
||||
//TODO: VPERMT2B -7(DI)(R8*2), Y2, K6, Y3 // 62b26d2e7d9c47f9ffffff
|
||||
//TODO: VPERMT2B Y14, Y7, K6, Y3 // 62d2452e7dde
|
||||
//TODO: VPERMT2B Y8, Y7, K6, Y3 // 62d2452e7dd8
|
||||
//TODO: VPERMT2B Y20, Y7, K6, Y3 // 62b2452e7ddc
|
||||
//TODO: VPERMT2B 7(SI)(DI*4), Y7, K6, Y3 // 62f2452e7d9cbe07000000
|
||||
//TODO: VPERMT2B -7(DI)(R8*2), Y7, K6, Y3 // 62b2452e7d9c47f9ffffff
|
||||
//TODO: VPERMT2B Y14, Y21, K6, Y3 // 62d255267dde
|
||||
//TODO: VPERMT2B Y8, Y21, K6, Y3 // 62d255267dd8
|
||||
//TODO: VPERMT2B Y20, Y21, K6, Y3 // 62b255267ddc
|
||||
//TODO: VPERMT2B 7(SI)(DI*4), Y21, K6, Y3 // 62f255267d9cbe07000000
|
||||
//TODO: VPERMT2B -7(DI)(R8*2), Y21, K6, Y3 // 62b255267d9c47f9ffffff
|
||||
//TODO: VPERMT2B Y14, Y2, K6, Y24 // 62426d2e7dc6
|
||||
//TODO: VPERMT2B Y8, Y2, K6, Y24 // 62426d2e7dc0
|
||||
//TODO: VPERMT2B Y20, Y2, K6, Y24 // 62226d2e7dc4
|
||||
//TODO: VPERMT2B 7(SI)(DI*4), Y2, K6, Y24 // 62626d2e7d84be07000000
|
||||
//TODO: VPERMT2B -7(DI)(R8*2), Y2, K6, Y24 // 62226d2e7d8447f9ffffff
|
||||
//TODO: VPERMT2B Y14, Y7, K6, Y24 // 6242452e7dc6
|
||||
//TODO: VPERMT2B Y8, Y7, K6, Y24 // 6242452e7dc0
|
||||
//TODO: VPERMT2B Y20, Y7, K6, Y24 // 6222452e7dc4
|
||||
//TODO: VPERMT2B 7(SI)(DI*4), Y7, K6, Y24 // 6262452e7d84be07000000
|
||||
//TODO: VPERMT2B -7(DI)(R8*2), Y7, K6, Y24 // 6222452e7d8447f9ffffff
|
||||
//TODO: VPERMT2B Y14, Y21, K6, Y24 // 624255267dc6
|
||||
//TODO: VPERMT2B Y8, Y21, K6, Y24 // 624255267dc0
|
||||
//TODO: VPERMT2B Y20, Y21, K6, Y24 // 622255267dc4
|
||||
//TODO: VPERMT2B 7(SI)(DI*4), Y21, K6, Y24 // 626255267d84be07000000
|
||||
//TODO: VPERMT2B -7(DI)(R8*2), Y21, K6, Y24 // 622255267d8447f9ffffff
|
||||
//TODO: VPERMT2B Z20, Z1, K3, Z6 // 62b2754b7df4
|
||||
//TODO: VPERMT2B Z9, Z1, K3, Z6 // 62d2754b7df1
|
||||
//TODO: VPERMT2B (CX), Z1, K3, Z6 // 62f2754b7d31
|
||||
//TODO: VPERMT2B 99(R15), Z1, K3, Z6 // 62d2754b7db763000000
|
||||
//TODO: VPERMT2B Z20, Z9, K3, Z6 // 62b2354b7df4
|
||||
//TODO: VPERMT2B Z9, Z9, K3, Z6 // 62d2354b7df1
|
||||
//TODO: VPERMT2B (CX), Z9, K3, Z6 // 62f2354b7d31
|
||||
//TODO: VPERMT2B 99(R15), Z9, K3, Z6 // 62d2354b7db763000000
|
||||
//TODO: VPERMT2B Z20, Z1, K3, Z9 // 6232754b7dcc
|
||||
//TODO: VPERMT2B Z9, Z1, K3, Z9 // 6252754b7dc9
|
||||
//TODO: VPERMT2B (CX), Z1, K3, Z9 // 6272754b7d09
|
||||
//TODO: VPERMT2B 99(R15), Z1, K3, Z9 // 6252754b7d8f63000000
|
||||
//TODO: VPERMT2B Z20, Z9, K3, Z9 // 6232354b7dcc
|
||||
//TODO: VPERMT2B Z9, Z9, K3, Z9 // 6252354b7dc9
|
||||
//TODO: VPERMT2B (CX), Z9, K3, Z9 // 6272354b7d09
|
||||
//TODO: VPERMT2B 99(R15), Z9, K3, Z9 // 6252354b7d8f63000000
|
||||
//TODO: VPMULTISHIFTQB X9, X24, K5, X7 // 62d2bd0583f9
|
||||
//TODO: VPMULTISHIFTQB X7, X24, K5, X7 // 62f2bd0583ff
|
||||
//TODO: VPMULTISHIFTQB X14, X24, K5, X7 // 62d2bd0583fe
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*1), X24, K5, X7 // 62f2bd0583bc2c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(CX)(DX*8), X24, K5, X7 // 62f2bd0583bcd1f9ffffff
|
||||
//TODO: VPMULTISHIFTQB X9, X20, K5, X7 // 62d2dd0583f9
|
||||
//TODO: VPMULTISHIFTQB X7, X20, K5, X7 // 62f2dd0583ff
|
||||
//TODO: VPMULTISHIFTQB X14, X20, K5, X7 // 62d2dd0583fe
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*1), X20, K5, X7 // 62f2dd0583bc2c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(CX)(DX*8), X20, K5, X7 // 62f2dd0583bcd1f9ffffff
|
||||
//TODO: VPMULTISHIFTQB X9, X7, K5, X7 // 62d2c50d83f9
|
||||
//TODO: VPMULTISHIFTQB X7, X7, K5, X7 // 62f2c50d83ff
|
||||
//TODO: VPMULTISHIFTQB X14, X7, K5, X7 // 62d2c50d83fe
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*1), X7, K5, X7 // 62f2c50d83bc2c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(CX)(DX*8), X7, K5, X7 // 62f2c50d83bcd1f9ffffff
|
||||
//TODO: VPMULTISHIFTQB X9, X24, K5, X0 // 62d2bd0583c1
|
||||
//TODO: VPMULTISHIFTQB X7, X24, K5, X0 // 62f2bd0583c7
|
||||
//TODO: VPMULTISHIFTQB X14, X24, K5, X0 // 62d2bd0583c6
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*1), X24, K5, X0 // 62f2bd0583842c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(CX)(DX*8), X24, K5, X0 // 62f2bd058384d1f9ffffff
|
||||
//TODO: VPMULTISHIFTQB X9, X20, K5, X0 // 62d2dd0583c1
|
||||
//TODO: VPMULTISHIFTQB X7, X20, K5, X0 // 62f2dd0583c7
|
||||
//TODO: VPMULTISHIFTQB X14, X20, K5, X0 // 62d2dd0583c6
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*1), X20, K5, X0 // 62f2dd0583842c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(CX)(DX*8), X20, K5, X0 // 62f2dd058384d1f9ffffff
|
||||
//TODO: VPMULTISHIFTQB X9, X7, K5, X0 // 62d2c50d83c1
|
||||
//TODO: VPMULTISHIFTQB X7, X7, K5, X0 // 62f2c50d83c7
|
||||
//TODO: VPMULTISHIFTQB X14, X7, K5, X0 // 62d2c50d83c6
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*1), X7, K5, X0 // 62f2c50d83842c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(CX)(DX*8), X7, K5, X0 // 62f2c50d8384d1f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Y16, Y30, K7, Y12 // 62328d2783e0
|
||||
//TODO: VPMULTISHIFTQB Y1, Y30, K7, Y12 // 62728d2783e1
|
||||
//TODO: VPMULTISHIFTQB Y30, Y30, K7, Y12 // 62128d2783e6
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*2), Y30, K7, Y12 // 62728d2783a46c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(DI)(R8*4), Y30, K7, Y12 // 62328d2783a487f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Y16, Y26, K7, Y12 // 6232ad2783e0
|
||||
//TODO: VPMULTISHIFTQB Y1, Y26, K7, Y12 // 6272ad2783e1
|
||||
//TODO: VPMULTISHIFTQB Y30, Y26, K7, Y12 // 6212ad2783e6
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*2), Y26, K7, Y12 // 6272ad2783a46c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(DI)(R8*4), Y26, K7, Y12 // 6232ad2783a487f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Y16, Y7, K7, Y12 // 6232c52f83e0
|
||||
//TODO: VPMULTISHIFTQB Y1, Y7, K7, Y12 // 6272c52f83e1
|
||||
//TODO: VPMULTISHIFTQB Y30, Y7, K7, Y12 // 6212c52f83e6
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*2), Y7, K7, Y12 // 6272c52f83a46c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(DI)(R8*4), Y7, K7, Y12 // 6232c52f83a487f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Y16, Y30, K7, Y21 // 62a28d2783e8
|
||||
//TODO: VPMULTISHIFTQB Y1, Y30, K7, Y21 // 62e28d2783e9
|
||||
//TODO: VPMULTISHIFTQB Y30, Y30, K7, Y21 // 62828d2783ee
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*2), Y30, K7, Y21 // 62e28d2783ac6c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(DI)(R8*4), Y30, K7, Y21 // 62a28d2783ac87f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Y16, Y26, K7, Y21 // 62a2ad2783e8
|
||||
//TODO: VPMULTISHIFTQB Y1, Y26, K7, Y21 // 62e2ad2783e9
|
||||
//TODO: VPMULTISHIFTQB Y30, Y26, K7, Y21 // 6282ad2783ee
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*2), Y26, K7, Y21 // 62e2ad2783ac6c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(DI)(R8*4), Y26, K7, Y21 // 62a2ad2783ac87f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Y16, Y7, K7, Y21 // 62a2c52f83e8
|
||||
//TODO: VPMULTISHIFTQB Y1, Y7, K7, Y21 // 62e2c52f83e9
|
||||
//TODO: VPMULTISHIFTQB Y30, Y7, K7, Y21 // 6282c52f83ee
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*2), Y7, K7, Y21 // 62e2c52f83ac6c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(DI)(R8*4), Y7, K7, Y21 // 62a2c52f83ac87f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Y16, Y30, K7, Y14 // 62328d2783f0
|
||||
//TODO: VPMULTISHIFTQB Y1, Y30, K7, Y14 // 62728d2783f1
|
||||
//TODO: VPMULTISHIFTQB Y30, Y30, K7, Y14 // 62128d2783f6
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*2), Y30, K7, Y14 // 62728d2783b46c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(DI)(R8*4), Y30, K7, Y14 // 62328d2783b487f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Y16, Y26, K7, Y14 // 6232ad2783f0
|
||||
//TODO: VPMULTISHIFTQB Y1, Y26, K7, Y14 // 6272ad2783f1
|
||||
//TODO: VPMULTISHIFTQB Y30, Y26, K7, Y14 // 6212ad2783f6
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*2), Y26, K7, Y14 // 6272ad2783b46c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(DI)(R8*4), Y26, K7, Y14 // 6232ad2783b487f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Y16, Y7, K7, Y14 // 6232c52f83f0
|
||||
//TODO: VPMULTISHIFTQB Y1, Y7, K7, Y14 // 6272c52f83f1
|
||||
//TODO: VPMULTISHIFTQB Y30, Y7, K7, Y14 // 6212c52f83f6
|
||||
//TODO: VPMULTISHIFTQB 17(SP)(BP*2), Y7, K7, Y14 // 6272c52f83b46c11000000
|
||||
//TODO: VPMULTISHIFTQB -7(DI)(R8*4), Y7, K7, Y14 // 6232c52f83b487f9ffffff
|
||||
//TODO: VPMULTISHIFTQB Z7, Z2, K7, Z18 // 62e2ed4f83d7
|
||||
//TODO: VPMULTISHIFTQB Z13, Z2, K7, Z18 // 62c2ed4f83d5
|
||||
//TODO: VPMULTISHIFTQB 7(AX)(CX*4), Z2, K7, Z18 // 62e2ed4f83948807000000
|
||||
//TODO: VPMULTISHIFTQB 7(AX)(CX*1), Z2, K7, Z18 // 62e2ed4f83940807000000
|
||||
//TODO: VPMULTISHIFTQB Z7, Z21, K7, Z18 // 62e2d54783d7
|
||||
//TODO: VPMULTISHIFTQB Z13, Z21, K7, Z18 // 62c2d54783d5
|
||||
//TODO: VPMULTISHIFTQB 7(AX)(CX*4), Z21, K7, Z18 // 62e2d54783948807000000
|
||||
//TODO: VPMULTISHIFTQB 7(AX)(CX*1), Z21, K7, Z18 // 62e2d54783940807000000
|
||||
//TODO: VPMULTISHIFTQB Z7, Z2, K7, Z24 // 6262ed4f83c7
|
||||
//TODO: VPMULTISHIFTQB Z13, Z2, K7, Z24 // 6242ed4f83c5
|
||||
//TODO: VPMULTISHIFTQB 7(AX)(CX*4), Z2, K7, Z24 // 6262ed4f83848807000000
|
||||
//TODO: VPMULTISHIFTQB 7(AX)(CX*1), Z2, K7, Z24 // 6262ed4f83840807000000
|
||||
//TODO: VPMULTISHIFTQB Z7, Z21, K7, Z24 // 6262d54783c7
|
||||
//TODO: VPMULTISHIFTQB Z13, Z21, K7, Z24 // 6242d54783c5
|
||||
//TODO: VPMULTISHIFTQB 7(AX)(CX*4), Z21, K7, Z24 // 6262d54783848807000000
|
||||
//TODO: VPMULTISHIFTQB 7(AX)(CX*1), Z21, K7, Z24 // 6262d54783840807000000
|
||||
VPERMB X26, X20, K1, X23 // 62825d018dfa
|
||||
VPERMB X19, X20, K1, X23 // 62a25d018dfb
|
||||
VPERMB X0, X20, K1, X23 // 62e25d018df8
|
||||
VPERMB 7(SI)(DI*4), X20, K1, X23 // 62e25d018dbcbe07000000
|
||||
VPERMB -7(DI)(R8*2), X20, K1, X23 // 62a25d018dbc47f9ffffff
|
||||
VPERMB X26, X2, K1, X23 // 62826d098dfa
|
||||
VPERMB X19, X2, K1, X23 // 62a26d098dfb
|
||||
VPERMB X0, X2, K1, X23 // 62e26d098df8
|
||||
VPERMB 7(SI)(DI*4), X2, K1, X23 // 62e26d098dbcbe07000000
|
||||
VPERMB -7(DI)(R8*2), X2, K1, X23 // 62a26d098dbc47f9ffffff
|
||||
VPERMB X26, X9, K1, X23 // 628235098dfa
|
||||
VPERMB X19, X9, K1, X23 // 62a235098dfb
|
||||
VPERMB X0, X9, K1, X23 // 62e235098df8
|
||||
VPERMB 7(SI)(DI*4), X9, K1, X23 // 62e235098dbcbe07000000
|
||||
VPERMB -7(DI)(R8*2), X9, K1, X23 // 62a235098dbc47f9ffffff
|
||||
VPERMB X26, X20, K1, X30 // 62025d018df2
|
||||
VPERMB X19, X20, K1, X30 // 62225d018df3
|
||||
VPERMB X0, X20, K1, X30 // 62625d018df0
|
||||
VPERMB 7(SI)(DI*4), X20, K1, X30 // 62625d018db4be07000000
|
||||
VPERMB -7(DI)(R8*2), X20, K1, X30 // 62225d018db447f9ffffff
|
||||
VPERMB X26, X2, K1, X30 // 62026d098df2
|
||||
VPERMB X19, X2, K1, X30 // 62226d098df3
|
||||
VPERMB X0, X2, K1, X30 // 62626d098df0
|
||||
VPERMB 7(SI)(DI*4), X2, K1, X30 // 62626d098db4be07000000
|
||||
VPERMB -7(DI)(R8*2), X2, K1, X30 // 62226d098db447f9ffffff
|
||||
VPERMB X26, X9, K1, X30 // 620235098df2
|
||||
VPERMB X19, X9, K1, X30 // 622235098df3
|
||||
VPERMB X0, X9, K1, X30 // 626235098df0
|
||||
VPERMB 7(SI)(DI*4), X9, K1, X30 // 626235098db4be07000000
|
||||
VPERMB -7(DI)(R8*2), X9, K1, X30 // 622235098db447f9ffffff
|
||||
VPERMB X26, X20, K1, X8 // 62125d018dc2
|
||||
VPERMB X19, X20, K1, X8 // 62325d018dc3
|
||||
VPERMB X0, X20, K1, X8 // 62725d018dc0
|
||||
VPERMB 7(SI)(DI*4), X20, K1, X8 // 62725d018d84be07000000
|
||||
VPERMB -7(DI)(R8*2), X20, K1, X8 // 62325d018d8447f9ffffff
|
||||
VPERMB X26, X2, K1, X8 // 62126d098dc2
|
||||
VPERMB X19, X2, K1, X8 // 62326d098dc3
|
||||
VPERMB X0, X2, K1, X8 // 62726d098dc0
|
||||
VPERMB 7(SI)(DI*4), X2, K1, X8 // 62726d098d84be07000000
|
||||
VPERMB -7(DI)(R8*2), X2, K1, X8 // 62326d098d8447f9ffffff
|
||||
VPERMB X26, X9, K1, X8 // 621235098dc2
|
||||
VPERMB X19, X9, K1, X8 // 623235098dc3
|
||||
VPERMB X0, X9, K1, X8 // 627235098dc0
|
||||
VPERMB 7(SI)(DI*4), X9, K1, X8 // 627235098d84be07000000
|
||||
VPERMB -7(DI)(R8*2), X9, K1, X8 // 623235098d8447f9ffffff
|
||||
VPERMB Y5, Y31, K7, Y22 // 62e205278df5
|
||||
VPERMB Y19, Y31, K7, Y22 // 62a205278df3
|
||||
VPERMB Y31, Y31, K7, Y22 // 628205278df7
|
||||
VPERMB 17(SP)(BP*1), Y31, K7, Y22 // 62e205278db42c11000000
|
||||
VPERMB -7(CX)(DX*8), Y31, K7, Y22 // 62e205278db4d1f9ffffff
|
||||
VPERMB Y5, Y5, K7, Y22 // 62e2552f8df5
|
||||
VPERMB Y19, Y5, K7, Y22 // 62a2552f8df3
|
||||
VPERMB Y31, Y5, K7, Y22 // 6282552f8df7
|
||||
VPERMB 17(SP)(BP*1), Y5, K7, Y22 // 62e2552f8db42c11000000
|
||||
VPERMB -7(CX)(DX*8), Y5, K7, Y22 // 62e2552f8db4d1f9ffffff
|
||||
VPERMB Y5, Y0, K7, Y22 // 62e27d2f8df5
|
||||
VPERMB Y19, Y0, K7, Y22 // 62a27d2f8df3
|
||||
VPERMB Y31, Y0, K7, Y22 // 62827d2f8df7
|
||||
VPERMB 17(SP)(BP*1), Y0, K7, Y22 // 62e27d2f8db42c11000000
|
||||
VPERMB -7(CX)(DX*8), Y0, K7, Y22 // 62e27d2f8db4d1f9ffffff
|
||||
VPERMB Y5, Y31, K7, Y9 // 627205278dcd
|
||||
VPERMB Y19, Y31, K7, Y9 // 623205278dcb
|
||||
VPERMB Y31, Y31, K7, Y9 // 621205278dcf
|
||||
VPERMB 17(SP)(BP*1), Y31, K7, Y9 // 627205278d8c2c11000000
|
||||
VPERMB -7(CX)(DX*8), Y31, K7, Y9 // 627205278d8cd1f9ffffff
|
||||
VPERMB Y5, Y5, K7, Y9 // 6272552f8dcd
|
||||
VPERMB Y19, Y5, K7, Y9 // 6232552f8dcb
|
||||
VPERMB Y31, Y5, K7, Y9 // 6212552f8dcf
|
||||
VPERMB 17(SP)(BP*1), Y5, K7, Y9 // 6272552f8d8c2c11000000
|
||||
VPERMB -7(CX)(DX*8), Y5, K7, Y9 // 6272552f8d8cd1f9ffffff
|
||||
VPERMB Y5, Y0, K7, Y9 // 62727d2f8dcd
|
||||
VPERMB Y19, Y0, K7, Y9 // 62327d2f8dcb
|
||||
VPERMB Y31, Y0, K7, Y9 // 62127d2f8dcf
|
||||
VPERMB 17(SP)(BP*1), Y0, K7, Y9 // 62727d2f8d8c2c11000000
|
||||
VPERMB -7(CX)(DX*8), Y0, K7, Y9 // 62727d2f8d8cd1f9ffffff
|
||||
VPERMB Y5, Y31, K7, Y23 // 62e205278dfd
|
||||
VPERMB Y19, Y31, K7, Y23 // 62a205278dfb
|
||||
VPERMB Y31, Y31, K7, Y23 // 628205278dff
|
||||
VPERMB 17(SP)(BP*1), Y31, K7, Y23 // 62e205278dbc2c11000000
|
||||
VPERMB -7(CX)(DX*8), Y31, K7, Y23 // 62e205278dbcd1f9ffffff
|
||||
VPERMB Y5, Y5, K7, Y23 // 62e2552f8dfd
|
||||
VPERMB Y19, Y5, K7, Y23 // 62a2552f8dfb
|
||||
VPERMB Y31, Y5, K7, Y23 // 6282552f8dff
|
||||
VPERMB 17(SP)(BP*1), Y5, K7, Y23 // 62e2552f8dbc2c11000000
|
||||
VPERMB -7(CX)(DX*8), Y5, K7, Y23 // 62e2552f8dbcd1f9ffffff
|
||||
VPERMB Y5, Y0, K7, Y23 // 62e27d2f8dfd
|
||||
VPERMB Y19, Y0, K7, Y23 // 62a27d2f8dfb
|
||||
VPERMB Y31, Y0, K7, Y23 // 62827d2f8dff
|
||||
VPERMB 17(SP)(BP*1), Y0, K7, Y23 // 62e27d2f8dbc2c11000000
|
||||
VPERMB -7(CX)(DX*8), Y0, K7, Y23 // 62e27d2f8dbcd1f9ffffff
|
||||
VPERMB Z3, Z8, K1, Z3 // 62f23d498ddb
|
||||
VPERMB Z27, Z8, K1, Z3 // 62923d498ddb
|
||||
VPERMB 7(AX), Z8, K1, Z3 // 62f23d498d9807000000
|
||||
VPERMB (DI), Z8, K1, Z3 // 62f23d498d1f
|
||||
VPERMB Z3, Z2, K1, Z3 // 62f26d498ddb
|
||||
VPERMB Z27, Z2, K1, Z3 // 62926d498ddb
|
||||
VPERMB 7(AX), Z2, K1, Z3 // 62f26d498d9807000000
|
||||
VPERMB (DI), Z2, K1, Z3 // 62f26d498d1f
|
||||
VPERMB Z3, Z8, K1, Z21 // 62e23d498deb
|
||||
VPERMB Z27, Z8, K1, Z21 // 62823d498deb
|
||||
VPERMB 7(AX), Z8, K1, Z21 // 62e23d498da807000000
|
||||
VPERMB (DI), Z8, K1, Z21 // 62e23d498d2f
|
||||
VPERMB Z3, Z2, K1, Z21 // 62e26d498deb
|
||||
VPERMB Z27, Z2, K1, Z21 // 62826d498deb
|
||||
VPERMB 7(AX), Z2, K1, Z21 // 62e26d498da807000000
|
||||
VPERMB (DI), Z2, K1, Z21 // 62e26d498d2f
|
||||
VPERMI2B X15, X8, K7, X31 // 62423d0f75ff
|
||||
VPERMI2B X0, X8, K7, X31 // 62623d0f75f8
|
||||
VPERMI2B X16, X8, K7, X31 // 62223d0f75f8
|
||||
VPERMI2B 17(SP), X8, K7, X31 // 62623d0f75bc2411000000
|
||||
VPERMI2B -17(BP)(SI*4), X8, K7, X31 // 62623d0f75bcb5efffffff
|
||||
VPERMI2B X15, X1, K7, X31 // 6242750f75ff
|
||||
VPERMI2B X0, X1, K7, X31 // 6262750f75f8
|
||||
VPERMI2B X16, X1, K7, X31 // 6222750f75f8
|
||||
VPERMI2B 17(SP), X1, K7, X31 // 6262750f75bc2411000000
|
||||
VPERMI2B -17(BP)(SI*4), X1, K7, X31 // 6262750f75bcb5efffffff
|
||||
VPERMI2B X15, X0, K7, X31 // 62427d0f75ff
|
||||
VPERMI2B X0, X0, K7, X31 // 62627d0f75f8
|
||||
VPERMI2B X16, X0, K7, X31 // 62227d0f75f8
|
||||
VPERMI2B 17(SP), X0, K7, X31 // 62627d0f75bc2411000000
|
||||
VPERMI2B -17(BP)(SI*4), X0, K7, X31 // 62627d0f75bcb5efffffff
|
||||
VPERMI2B X15, X8, K7, X16 // 62c23d0f75c7
|
||||
VPERMI2B X0, X8, K7, X16 // 62e23d0f75c0
|
||||
VPERMI2B X16, X8, K7, X16 // 62a23d0f75c0
|
||||
VPERMI2B 17(SP), X8, K7, X16 // 62e23d0f75842411000000
|
||||
VPERMI2B -17(BP)(SI*4), X8, K7, X16 // 62e23d0f7584b5efffffff
|
||||
VPERMI2B X15, X1, K7, X16 // 62c2750f75c7
|
||||
VPERMI2B X0, X1, K7, X16 // 62e2750f75c0
|
||||
VPERMI2B X16, X1, K7, X16 // 62a2750f75c0
|
||||
VPERMI2B 17(SP), X1, K7, X16 // 62e2750f75842411000000
|
||||
VPERMI2B -17(BP)(SI*4), X1, K7, X16 // 62e2750f7584b5efffffff
|
||||
VPERMI2B X15, X0, K7, X16 // 62c27d0f75c7
|
||||
VPERMI2B X0, X0, K7, X16 // 62e27d0f75c0
|
||||
VPERMI2B X16, X0, K7, X16 // 62a27d0f75c0
|
||||
VPERMI2B 17(SP), X0, K7, X16 // 62e27d0f75842411000000
|
||||
VPERMI2B -17(BP)(SI*4), X0, K7, X16 // 62e27d0f7584b5efffffff
|
||||
VPERMI2B X15, X8, K7, X7 // 62d23d0f75ff
|
||||
VPERMI2B X0, X8, K7, X7 // 62f23d0f75f8
|
||||
VPERMI2B X16, X8, K7, X7 // 62b23d0f75f8
|
||||
VPERMI2B 17(SP), X8, K7, X7 // 62f23d0f75bc2411000000
|
||||
VPERMI2B -17(BP)(SI*4), X8, K7, X7 // 62f23d0f75bcb5efffffff
|
||||
VPERMI2B X15, X1, K7, X7 // 62d2750f75ff
|
||||
VPERMI2B X0, X1, K7, X7 // 62f2750f75f8
|
||||
VPERMI2B X16, X1, K7, X7 // 62b2750f75f8
|
||||
VPERMI2B 17(SP), X1, K7, X7 // 62f2750f75bc2411000000
|
||||
VPERMI2B -17(BP)(SI*4), X1, K7, X7 // 62f2750f75bcb5efffffff
|
||||
VPERMI2B X15, X0, K7, X7 // 62d27d0f75ff
|
||||
VPERMI2B X0, X0, K7, X7 // 62f27d0f75f8
|
||||
VPERMI2B X16, X0, K7, X7 // 62b27d0f75f8
|
||||
VPERMI2B 17(SP), X0, K7, X7 // 62f27d0f75bc2411000000
|
||||
VPERMI2B -17(BP)(SI*4), X0, K7, X7 // 62f27d0f75bcb5efffffff
|
||||
VPERMI2B Y18, Y15, K2, Y2 // 62b2052a75d2
|
||||
VPERMI2B Y24, Y15, K2, Y2 // 6292052a75d0
|
||||
VPERMI2B Y9, Y15, K2, Y2 // 62d2052a75d1
|
||||
VPERMI2B 15(R8)(R14*1), Y15, K2, Y2 // 6292052a7594300f000000
|
||||
VPERMI2B 15(R8)(R14*2), Y15, K2, Y2 // 6292052a7594700f000000
|
||||
VPERMI2B Y18, Y22, K2, Y2 // 62b24d2275d2
|
||||
VPERMI2B Y24, Y22, K2, Y2 // 62924d2275d0
|
||||
VPERMI2B Y9, Y22, K2, Y2 // 62d24d2275d1
|
||||
VPERMI2B 15(R8)(R14*1), Y22, K2, Y2 // 62924d227594300f000000
|
||||
VPERMI2B 15(R8)(R14*2), Y22, K2, Y2 // 62924d227594700f000000
|
||||
VPERMI2B Y18, Y20, K2, Y2 // 62b25d2275d2
|
||||
VPERMI2B Y24, Y20, K2, Y2 // 62925d2275d0
|
||||
VPERMI2B Y9, Y20, K2, Y2 // 62d25d2275d1
|
||||
VPERMI2B 15(R8)(R14*1), Y20, K2, Y2 // 62925d227594300f000000
|
||||
VPERMI2B 15(R8)(R14*2), Y20, K2, Y2 // 62925d227594700f000000
|
||||
VPERMI2B Y18, Y15, K2, Y13 // 6232052a75ea
|
||||
VPERMI2B Y24, Y15, K2, Y13 // 6212052a75e8
|
||||
VPERMI2B Y9, Y15, K2, Y13 // 6252052a75e9
|
||||
VPERMI2B 15(R8)(R14*1), Y15, K2, Y13 // 6212052a75ac300f000000
|
||||
VPERMI2B 15(R8)(R14*2), Y15, K2, Y13 // 6212052a75ac700f000000
|
||||
VPERMI2B Y18, Y22, K2, Y13 // 62324d2275ea
|
||||
VPERMI2B Y24, Y22, K2, Y13 // 62124d2275e8
|
||||
VPERMI2B Y9, Y22, K2, Y13 // 62524d2275e9
|
||||
VPERMI2B 15(R8)(R14*1), Y22, K2, Y13 // 62124d2275ac300f000000
|
||||
VPERMI2B 15(R8)(R14*2), Y22, K2, Y13 // 62124d2275ac700f000000
|
||||
VPERMI2B Y18, Y20, K2, Y13 // 62325d2275ea
|
||||
VPERMI2B Y24, Y20, K2, Y13 // 62125d2275e8
|
||||
VPERMI2B Y9, Y20, K2, Y13 // 62525d2275e9
|
||||
VPERMI2B 15(R8)(R14*1), Y20, K2, Y13 // 62125d2275ac300f000000
|
||||
VPERMI2B 15(R8)(R14*2), Y20, K2, Y13 // 62125d2275ac700f000000
|
||||
VPERMI2B Y18, Y15, K2, Y27 // 6222052a75da
|
||||
VPERMI2B Y24, Y15, K2, Y27 // 6202052a75d8
|
||||
VPERMI2B Y9, Y15, K2, Y27 // 6242052a75d9
|
||||
VPERMI2B 15(R8)(R14*1), Y15, K2, Y27 // 6202052a759c300f000000
|
||||
VPERMI2B 15(R8)(R14*2), Y15, K2, Y27 // 6202052a759c700f000000
|
||||
VPERMI2B Y18, Y22, K2, Y27 // 62224d2275da
|
||||
VPERMI2B Y24, Y22, K2, Y27 // 62024d2275d8
|
||||
VPERMI2B Y9, Y22, K2, Y27 // 62424d2275d9
|
||||
VPERMI2B 15(R8)(R14*1), Y22, K2, Y27 // 62024d22759c300f000000
|
||||
VPERMI2B 15(R8)(R14*2), Y22, K2, Y27 // 62024d22759c700f000000
|
||||
VPERMI2B Y18, Y20, K2, Y27 // 62225d2275da
|
||||
VPERMI2B Y24, Y20, K2, Y27 // 62025d2275d8
|
||||
VPERMI2B Y9, Y20, K2, Y27 // 62425d2275d9
|
||||
VPERMI2B 15(R8)(R14*1), Y20, K2, Y27 // 62025d22759c300f000000
|
||||
VPERMI2B 15(R8)(R14*2), Y20, K2, Y27 // 62025d22759c700f000000
|
||||
VPERMI2B Z12, Z9, K4, Z3 // 62d2354c75dc
|
||||
VPERMI2B Z22, Z9, K4, Z3 // 62b2354c75de
|
||||
VPERMI2B -17(BP)(SI*8), Z9, K4, Z3 // 62f2354c759cf5efffffff
|
||||
VPERMI2B (R15), Z9, K4, Z3 // 62d2354c751f
|
||||
VPERMI2B Z12, Z19, K4, Z3 // 62d2654475dc
|
||||
VPERMI2B Z22, Z19, K4, Z3 // 62b2654475de
|
||||
VPERMI2B -17(BP)(SI*8), Z19, K4, Z3 // 62f26544759cf5efffffff
|
||||
VPERMI2B (R15), Z19, K4, Z3 // 62d26544751f
|
||||
VPERMI2B Z12, Z9, K4, Z30 // 6242354c75f4
|
||||
VPERMI2B Z22, Z9, K4, Z30 // 6222354c75f6
|
||||
VPERMI2B -17(BP)(SI*8), Z9, K4, Z30 // 6262354c75b4f5efffffff
|
||||
VPERMI2B (R15), Z9, K4, Z30 // 6242354c7537
|
||||
VPERMI2B Z12, Z19, K4, Z30 // 6242654475f4
|
||||
VPERMI2B Z22, Z19, K4, Z30 // 6222654475f6
|
||||
VPERMI2B -17(BP)(SI*8), Z19, K4, Z30 // 6262654475b4f5efffffff
|
||||
VPERMI2B (R15), Z19, K4, Z30 // 624265447537
|
||||
VPERMT2B X2, X0, K7, X20 // 62e27d0f7de2
|
||||
VPERMT2B X8, X0, K7, X20 // 62c27d0f7de0
|
||||
VPERMT2B X9, X0, K7, X20 // 62c27d0f7de1
|
||||
VPERMT2B (BX), X0, K7, X20 // 62e27d0f7d23
|
||||
VPERMT2B -17(BP)(SI*1), X0, K7, X20 // 62e27d0f7da435efffffff
|
||||
VPERMT2B X2, X9, K7, X20 // 62e2350f7de2
|
||||
VPERMT2B X8, X9, K7, X20 // 62c2350f7de0
|
||||
VPERMT2B X9, X9, K7, X20 // 62c2350f7de1
|
||||
VPERMT2B (BX), X9, K7, X20 // 62e2350f7d23
|
||||
VPERMT2B -17(BP)(SI*1), X9, K7, X20 // 62e2350f7da435efffffff
|
||||
VPERMT2B X2, X13, K7, X20 // 62e2150f7de2
|
||||
VPERMT2B X8, X13, K7, X20 // 62c2150f7de0
|
||||
VPERMT2B X9, X13, K7, X20 // 62c2150f7de1
|
||||
VPERMT2B (BX), X13, K7, X20 // 62e2150f7d23
|
||||
VPERMT2B -17(BP)(SI*1), X13, K7, X20 // 62e2150f7da435efffffff
|
||||
VPERMT2B X2, X0, K7, X5 // 62f27d0f7dea
|
||||
VPERMT2B X8, X0, K7, X5 // 62d27d0f7de8
|
||||
VPERMT2B X9, X0, K7, X5 // 62d27d0f7de9
|
||||
VPERMT2B (BX), X0, K7, X5 // 62f27d0f7d2b
|
||||
VPERMT2B -17(BP)(SI*1), X0, K7, X5 // 62f27d0f7dac35efffffff
|
||||
VPERMT2B X2, X9, K7, X5 // 62f2350f7dea
|
||||
VPERMT2B X8, X9, K7, X5 // 62d2350f7de8
|
||||
VPERMT2B X9, X9, K7, X5 // 62d2350f7de9
|
||||
VPERMT2B (BX), X9, K7, X5 // 62f2350f7d2b
|
||||
VPERMT2B -17(BP)(SI*1), X9, K7, X5 // 62f2350f7dac35efffffff
|
||||
VPERMT2B X2, X13, K7, X5 // 62f2150f7dea
|
||||
VPERMT2B X8, X13, K7, X5 // 62d2150f7de8
|
||||
VPERMT2B X9, X13, K7, X5 // 62d2150f7de9
|
||||
VPERMT2B (BX), X13, K7, X5 // 62f2150f7d2b
|
||||
VPERMT2B -17(BP)(SI*1), X13, K7, X5 // 62f2150f7dac35efffffff
|
||||
VPERMT2B X2, X0, K7, X25 // 62627d0f7dca
|
||||
VPERMT2B X8, X0, K7, X25 // 62427d0f7dc8
|
||||
VPERMT2B X9, X0, K7, X25 // 62427d0f7dc9
|
||||
VPERMT2B (BX), X0, K7, X25 // 62627d0f7d0b
|
||||
VPERMT2B -17(BP)(SI*1), X0, K7, X25 // 62627d0f7d8c35efffffff
|
||||
VPERMT2B X2, X9, K7, X25 // 6262350f7dca
|
||||
VPERMT2B X8, X9, K7, X25 // 6242350f7dc8
|
||||
VPERMT2B X9, X9, K7, X25 // 6242350f7dc9
|
||||
VPERMT2B (BX), X9, K7, X25 // 6262350f7d0b
|
||||
VPERMT2B -17(BP)(SI*1), X9, K7, X25 // 6262350f7d8c35efffffff
|
||||
VPERMT2B X2, X13, K7, X25 // 6262150f7dca
|
||||
VPERMT2B X8, X13, K7, X25 // 6242150f7dc8
|
||||
VPERMT2B X9, X13, K7, X25 // 6242150f7dc9
|
||||
VPERMT2B (BX), X13, K7, X25 // 6262150f7d0b
|
||||
VPERMT2B -17(BP)(SI*1), X13, K7, X25 // 6262150f7d8c35efffffff
|
||||
VPERMT2B Y14, Y2, K6, Y18 // 62c26d2e7dd6
|
||||
VPERMT2B Y8, Y2, K6, Y18 // 62c26d2e7dd0
|
||||
VPERMT2B Y20, Y2, K6, Y18 // 62a26d2e7dd4
|
||||
VPERMT2B 7(SI)(DI*4), Y2, K6, Y18 // 62e26d2e7d94be07000000
|
||||
VPERMT2B -7(DI)(R8*2), Y2, K6, Y18 // 62a26d2e7d9447f9ffffff
|
||||
VPERMT2B Y14, Y7, K6, Y18 // 62c2452e7dd6
|
||||
VPERMT2B Y8, Y7, K6, Y18 // 62c2452e7dd0
|
||||
VPERMT2B Y20, Y7, K6, Y18 // 62a2452e7dd4
|
||||
VPERMT2B 7(SI)(DI*4), Y7, K6, Y18 // 62e2452e7d94be07000000
|
||||
VPERMT2B -7(DI)(R8*2), Y7, K6, Y18 // 62a2452e7d9447f9ffffff
|
||||
VPERMT2B Y14, Y21, K6, Y18 // 62c255267dd6
|
||||
VPERMT2B Y8, Y21, K6, Y18 // 62c255267dd0
|
||||
VPERMT2B Y20, Y21, K6, Y18 // 62a255267dd4
|
||||
VPERMT2B 7(SI)(DI*4), Y21, K6, Y18 // 62e255267d94be07000000
|
||||
VPERMT2B -7(DI)(R8*2), Y21, K6, Y18 // 62a255267d9447f9ffffff
|
||||
VPERMT2B Y14, Y2, K6, Y3 // 62d26d2e7dde
|
||||
VPERMT2B Y8, Y2, K6, Y3 // 62d26d2e7dd8
|
||||
VPERMT2B Y20, Y2, K6, Y3 // 62b26d2e7ddc
|
||||
VPERMT2B 7(SI)(DI*4), Y2, K6, Y3 // 62f26d2e7d9cbe07000000
|
||||
VPERMT2B -7(DI)(R8*2), Y2, K6, Y3 // 62b26d2e7d9c47f9ffffff
|
||||
VPERMT2B Y14, Y7, K6, Y3 // 62d2452e7dde
|
||||
VPERMT2B Y8, Y7, K6, Y3 // 62d2452e7dd8
|
||||
VPERMT2B Y20, Y7, K6, Y3 // 62b2452e7ddc
|
||||
VPERMT2B 7(SI)(DI*4), Y7, K6, Y3 // 62f2452e7d9cbe07000000
|
||||
VPERMT2B -7(DI)(R8*2), Y7, K6, Y3 // 62b2452e7d9c47f9ffffff
|
||||
VPERMT2B Y14, Y21, K6, Y3 // 62d255267dde
|
||||
VPERMT2B Y8, Y21, K6, Y3 // 62d255267dd8
|
||||
VPERMT2B Y20, Y21, K6, Y3 // 62b255267ddc
|
||||
VPERMT2B 7(SI)(DI*4), Y21, K6, Y3 // 62f255267d9cbe07000000
|
||||
VPERMT2B -7(DI)(R8*2), Y21, K6, Y3 // 62b255267d9c47f9ffffff
|
||||
VPERMT2B Y14, Y2, K6, Y24 // 62426d2e7dc6
|
||||
VPERMT2B Y8, Y2, K6, Y24 // 62426d2e7dc0
|
||||
VPERMT2B Y20, Y2, K6, Y24 // 62226d2e7dc4
|
||||
VPERMT2B 7(SI)(DI*4), Y2, K6, Y24 // 62626d2e7d84be07000000
|
||||
VPERMT2B -7(DI)(R8*2), Y2, K6, Y24 // 62226d2e7d8447f9ffffff
|
||||
VPERMT2B Y14, Y7, K6, Y24 // 6242452e7dc6
|
||||
VPERMT2B Y8, Y7, K6, Y24 // 6242452e7dc0
|
||||
VPERMT2B Y20, Y7, K6, Y24 // 6222452e7dc4
|
||||
VPERMT2B 7(SI)(DI*4), Y7, K6, Y24 // 6262452e7d84be07000000
|
||||
VPERMT2B -7(DI)(R8*2), Y7, K6, Y24 // 6222452e7d8447f9ffffff
|
||||
VPERMT2B Y14, Y21, K6, Y24 // 624255267dc6
|
||||
VPERMT2B Y8, Y21, K6, Y24 // 624255267dc0
|
||||
VPERMT2B Y20, Y21, K6, Y24 // 622255267dc4
|
||||
VPERMT2B 7(SI)(DI*4), Y21, K6, Y24 // 626255267d84be07000000
|
||||
VPERMT2B -7(DI)(R8*2), Y21, K6, Y24 // 622255267d8447f9ffffff
|
||||
VPERMT2B Z20, Z1, K3, Z6 // 62b2754b7df4
|
||||
VPERMT2B Z9, Z1, K3, Z6 // 62d2754b7df1
|
||||
VPERMT2B (CX), Z1, K3, Z6 // 62f2754b7d31
|
||||
VPERMT2B 99(R15), Z1, K3, Z6 // 62d2754b7db763000000
|
||||
VPERMT2B Z20, Z9, K3, Z6 // 62b2354b7df4
|
||||
VPERMT2B Z9, Z9, K3, Z6 // 62d2354b7df1
|
||||
VPERMT2B (CX), Z9, K3, Z6 // 62f2354b7d31
|
||||
VPERMT2B 99(R15), Z9, K3, Z6 // 62d2354b7db763000000
|
||||
VPERMT2B Z20, Z1, K3, Z9 // 6232754b7dcc
|
||||
VPERMT2B Z9, Z1, K3, Z9 // 6252754b7dc9
|
||||
VPERMT2B (CX), Z1, K3, Z9 // 6272754b7d09
|
||||
VPERMT2B 99(R15), Z1, K3, Z9 // 6252754b7d8f63000000
|
||||
VPERMT2B Z20, Z9, K3, Z9 // 6232354b7dcc
|
||||
VPERMT2B Z9, Z9, K3, Z9 // 6252354b7dc9
|
||||
VPERMT2B (CX), Z9, K3, Z9 // 6272354b7d09
|
||||
VPERMT2B 99(R15), Z9, K3, Z9 // 6252354b7d8f63000000
|
||||
VPMULTISHIFTQB X9, X24, K5, X7 // 62d2bd0583f9
|
||||
VPMULTISHIFTQB X7, X24, K5, X7 // 62f2bd0583ff
|
||||
VPMULTISHIFTQB X14, X24, K5, X7 // 62d2bd0583fe
|
||||
VPMULTISHIFTQB 17(SP)(BP*1), X24, K5, X7 // 62f2bd0583bc2c11000000
|
||||
VPMULTISHIFTQB -7(CX)(DX*8), X24, K5, X7 // 62f2bd0583bcd1f9ffffff
|
||||
VPMULTISHIFTQB X9, X20, K5, X7 // 62d2dd0583f9
|
||||
VPMULTISHIFTQB X7, X20, K5, X7 // 62f2dd0583ff
|
||||
VPMULTISHIFTQB X14, X20, K5, X7 // 62d2dd0583fe
|
||||
VPMULTISHIFTQB 17(SP)(BP*1), X20, K5, X7 // 62f2dd0583bc2c11000000
|
||||
VPMULTISHIFTQB -7(CX)(DX*8), X20, K5, X7 // 62f2dd0583bcd1f9ffffff
|
||||
VPMULTISHIFTQB X9, X7, K5, X7 // 62d2c50d83f9
|
||||
VPMULTISHIFTQB X7, X7, K5, X7 // 62f2c50d83ff
|
||||
VPMULTISHIFTQB X14, X7, K5, X7 // 62d2c50d83fe
|
||||
VPMULTISHIFTQB 17(SP)(BP*1), X7, K5, X7 // 62f2c50d83bc2c11000000
|
||||
VPMULTISHIFTQB -7(CX)(DX*8), X7, K5, X7 // 62f2c50d83bcd1f9ffffff
|
||||
VPMULTISHIFTQB X9, X24, K5, X0 // 62d2bd0583c1
|
||||
VPMULTISHIFTQB X7, X24, K5, X0 // 62f2bd0583c7
|
||||
VPMULTISHIFTQB X14, X24, K5, X0 // 62d2bd0583c6
|
||||
VPMULTISHIFTQB 17(SP)(BP*1), X24, K5, X0 // 62f2bd0583842c11000000
|
||||
VPMULTISHIFTQB -7(CX)(DX*8), X24, K5, X0 // 62f2bd058384d1f9ffffff
|
||||
VPMULTISHIFTQB X9, X20, K5, X0 // 62d2dd0583c1
|
||||
VPMULTISHIFTQB X7, X20, K5, X0 // 62f2dd0583c7
|
||||
VPMULTISHIFTQB X14, X20, K5, X0 // 62d2dd0583c6
|
||||
VPMULTISHIFTQB 17(SP)(BP*1), X20, K5, X0 // 62f2dd0583842c11000000
|
||||
VPMULTISHIFTQB -7(CX)(DX*8), X20, K5, X0 // 62f2dd058384d1f9ffffff
|
||||
VPMULTISHIFTQB X9, X7, K5, X0 // 62d2c50d83c1
|
||||
VPMULTISHIFTQB X7, X7, K5, X0 // 62f2c50d83c7
|
||||
VPMULTISHIFTQB X14, X7, K5, X0 // 62d2c50d83c6
|
||||
VPMULTISHIFTQB 17(SP)(BP*1), X7, K5, X0 // 62f2c50d83842c11000000
|
||||
VPMULTISHIFTQB -7(CX)(DX*8), X7, K5, X0 // 62f2c50d8384d1f9ffffff
|
||||
VPMULTISHIFTQB Y16, Y30, K7, Y12 // 62328d2783e0
|
||||
VPMULTISHIFTQB Y1, Y30, K7, Y12 // 62728d2783e1
|
||||
VPMULTISHIFTQB Y30, Y30, K7, Y12 // 62128d2783e6
|
||||
VPMULTISHIFTQB 17(SP)(BP*2), Y30, K7, Y12 // 62728d2783a46c11000000
|
||||
VPMULTISHIFTQB -7(DI)(R8*4), Y30, K7, Y12 // 62328d2783a487f9ffffff
|
||||
VPMULTISHIFTQB Y16, Y26, K7, Y12 // 6232ad2783e0
|
||||
VPMULTISHIFTQB Y1, Y26, K7, Y12 // 6272ad2783e1
|
||||
VPMULTISHIFTQB Y30, Y26, K7, Y12 // 6212ad2783e6
|
||||
VPMULTISHIFTQB 17(SP)(BP*2), Y26, K7, Y12 // 6272ad2783a46c11000000
|
||||
VPMULTISHIFTQB -7(DI)(R8*4), Y26, K7, Y12 // 6232ad2783a487f9ffffff
|
||||
VPMULTISHIFTQB Y16, Y7, K7, Y12 // 6232c52f83e0
|
||||
VPMULTISHIFTQB Y1, Y7, K7, Y12 // 6272c52f83e1
|
||||
VPMULTISHIFTQB Y30, Y7, K7, Y12 // 6212c52f83e6
|
||||
VPMULTISHIFTQB 17(SP)(BP*2), Y7, K7, Y12 // 6272c52f83a46c11000000
|
||||
VPMULTISHIFTQB -7(DI)(R8*4), Y7, K7, Y12 // 6232c52f83a487f9ffffff
|
||||
VPMULTISHIFTQB Y16, Y30, K7, Y21 // 62a28d2783e8
|
||||
VPMULTISHIFTQB Y1, Y30, K7, Y21 // 62e28d2783e9
|
||||
VPMULTISHIFTQB Y30, Y30, K7, Y21 // 62828d2783ee
|
||||
VPMULTISHIFTQB 17(SP)(BP*2), Y30, K7, Y21 // 62e28d2783ac6c11000000
|
||||
VPMULTISHIFTQB -7(DI)(R8*4), Y30, K7, Y21 // 62a28d2783ac87f9ffffff
|
||||
VPMULTISHIFTQB Y16, Y26, K7, Y21 // 62a2ad2783e8
|
||||
VPMULTISHIFTQB Y1, Y26, K7, Y21 // 62e2ad2783e9
|
||||
VPMULTISHIFTQB Y30, Y26, K7, Y21 // 6282ad2783ee
|
||||
VPMULTISHIFTQB 17(SP)(BP*2), Y26, K7, Y21 // 62e2ad2783ac6c11000000
|
||||
VPMULTISHIFTQB -7(DI)(R8*4), Y26, K7, Y21 // 62a2ad2783ac87f9ffffff
|
||||
VPMULTISHIFTQB Y16, Y7, K7, Y21 // 62a2c52f83e8
|
||||
VPMULTISHIFTQB Y1, Y7, K7, Y21 // 62e2c52f83e9
|
||||
VPMULTISHIFTQB Y30, Y7, K7, Y21 // 6282c52f83ee
|
||||
VPMULTISHIFTQB 17(SP)(BP*2), Y7, K7, Y21 // 62e2c52f83ac6c11000000
|
||||
VPMULTISHIFTQB -7(DI)(R8*4), Y7, K7, Y21 // 62a2c52f83ac87f9ffffff
|
||||
VPMULTISHIFTQB Y16, Y30, K7, Y14 // 62328d2783f0
|
||||
VPMULTISHIFTQB Y1, Y30, K7, Y14 // 62728d2783f1
|
||||
VPMULTISHIFTQB Y30, Y30, K7, Y14 // 62128d2783f6
|
||||
VPMULTISHIFTQB 17(SP)(BP*2), Y30, K7, Y14 // 62728d2783b46c11000000
|
||||
VPMULTISHIFTQB -7(DI)(R8*4), Y30, K7, Y14 // 62328d2783b487f9ffffff
|
||||
VPMULTISHIFTQB Y16, Y26, K7, Y14 // 6232ad2783f0
|
||||
VPMULTISHIFTQB Y1, Y26, K7, Y14 // 6272ad2783f1
|
||||
VPMULTISHIFTQB Y30, Y26, K7, Y14 // 6212ad2783f6
|
||||
VPMULTISHIFTQB 17(SP)(BP*2), Y26, K7, Y14 // 6272ad2783b46c11000000
|
||||
VPMULTISHIFTQB -7(DI)(R8*4), Y26, K7, Y14 // 6232ad2783b487f9ffffff
|
||||
VPMULTISHIFTQB Y16, Y7, K7, Y14 // 6232c52f83f0
|
||||
VPMULTISHIFTQB Y1, Y7, K7, Y14 // 6272c52f83f1
|
||||
VPMULTISHIFTQB Y30, Y7, K7, Y14 // 6212c52f83f6
|
||||
VPMULTISHIFTQB 17(SP)(BP*2), Y7, K7, Y14 // 6272c52f83b46c11000000
|
||||
VPMULTISHIFTQB -7(DI)(R8*4), Y7, K7, Y14 // 6232c52f83b487f9ffffff
|
||||
VPMULTISHIFTQB Z7, Z2, K7, Z18 // 62e2ed4f83d7
|
||||
VPMULTISHIFTQB Z13, Z2, K7, Z18 // 62c2ed4f83d5
|
||||
VPMULTISHIFTQB 7(AX)(CX*4), Z2, K7, Z18 // 62e2ed4f83948807000000
|
||||
VPMULTISHIFTQB 7(AX)(CX*1), Z2, K7, Z18 // 62e2ed4f83940807000000
|
||||
VPMULTISHIFTQB Z7, Z21, K7, Z18 // 62e2d54783d7
|
||||
VPMULTISHIFTQB Z13, Z21, K7, Z18 // 62c2d54783d5
|
||||
VPMULTISHIFTQB 7(AX)(CX*4), Z21, K7, Z18 // 62e2d54783948807000000
|
||||
VPMULTISHIFTQB 7(AX)(CX*1), Z21, K7, Z18 // 62e2d54783940807000000
|
||||
VPMULTISHIFTQB Z7, Z2, K7, Z24 // 6262ed4f83c7
|
||||
VPMULTISHIFTQB Z13, Z2, K7, Z24 // 6242ed4f83c5
|
||||
VPMULTISHIFTQB 7(AX)(CX*4), Z2, K7, Z24 // 6262ed4f83848807000000
|
||||
VPMULTISHIFTQB 7(AX)(CX*1), Z2, K7, Z24 // 6262ed4f83840807000000
|
||||
VPMULTISHIFTQB Z7, Z21, K7, Z24 // 6262d54783c7
|
||||
VPMULTISHIFTQB Z13, Z21, K7, Z24 // 6242d54783c5
|
||||
VPMULTISHIFTQB 7(AX)(CX*4), Z21, K7, Z24 // 6262d54783848807000000
|
||||
VPMULTISHIFTQB 7(AX)(CX*1), Z21, K7, Z24 // 6262d54783840807000000
|
||||
RET
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -3,398 +3,398 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512_vnni(SB), NOSPLIT, $0
|
||||
//TODO: VPDPBUSD X15, X16, K2, X6 // 62d27d0250f7
|
||||
//TODO: VPDPBUSD X11, X16, K2, X6 // 62d27d0250f3
|
||||
//TODO: VPDPBUSD X1, X16, K2, X6 // 62f27d0250f1
|
||||
//TODO: VPDPBUSD -15(R14)(R15*1), X16, K2, X6 // 62927d0250b43ef1ffffff
|
||||
//TODO: VPDPBUSD -15(BX), X16, K2, X6 // 62f27d0250b3f1ffffff
|
||||
//TODO: VPDPBUSD X15, X28, K2, X6 // 62d21d0250f7
|
||||
//TODO: VPDPBUSD X11, X28, K2, X6 // 62d21d0250f3
|
||||
//TODO: VPDPBUSD X1, X28, K2, X6 // 62f21d0250f1
|
||||
//TODO: VPDPBUSD -15(R14)(R15*1), X28, K2, X6 // 62921d0250b43ef1ffffff
|
||||
//TODO: VPDPBUSD -15(BX), X28, K2, X6 // 62f21d0250b3f1ffffff
|
||||
//TODO: VPDPBUSD X15, X8, K2, X6 // 62d23d0a50f7
|
||||
//TODO: VPDPBUSD X11, X8, K2, X6 // 62d23d0a50f3
|
||||
//TODO: VPDPBUSD X1, X8, K2, X6 // 62f23d0a50f1
|
||||
//TODO: VPDPBUSD -15(R14)(R15*1), X8, K2, X6 // 62923d0a50b43ef1ffffff
|
||||
//TODO: VPDPBUSD -15(BX), X8, K2, X6 // 62f23d0a50b3f1ffffff
|
||||
//TODO: VPDPBUSD X15, X16, K2, X22 // 62c27d0250f7
|
||||
//TODO: VPDPBUSD X11, X16, K2, X22 // 62c27d0250f3
|
||||
//TODO: VPDPBUSD X1, X16, K2, X22 // 62e27d0250f1
|
||||
//TODO: VPDPBUSD -15(R14)(R15*1), X16, K2, X22 // 62827d0250b43ef1ffffff
|
||||
//TODO: VPDPBUSD -15(BX), X16, K2, X22 // 62e27d0250b3f1ffffff
|
||||
//TODO: VPDPBUSD X15, X28, K2, X22 // 62c21d0250f7
|
||||
//TODO: VPDPBUSD X11, X28, K2, X22 // 62c21d0250f3
|
||||
//TODO: VPDPBUSD X1, X28, K2, X22 // 62e21d0250f1
|
||||
//TODO: VPDPBUSD -15(R14)(R15*1), X28, K2, X22 // 62821d0250b43ef1ffffff
|
||||
//TODO: VPDPBUSD -15(BX), X28, K2, X22 // 62e21d0250b3f1ffffff
|
||||
//TODO: VPDPBUSD X15, X8, K2, X22 // 62c23d0a50f7
|
||||
//TODO: VPDPBUSD X11, X8, K2, X22 // 62c23d0a50f3
|
||||
//TODO: VPDPBUSD X1, X8, K2, X22 // 62e23d0a50f1
|
||||
//TODO: VPDPBUSD -15(R14)(R15*1), X8, K2, X22 // 62823d0a50b43ef1ffffff
|
||||
//TODO: VPDPBUSD -15(BX), X8, K2, X22 // 62e23d0a50b3f1ffffff
|
||||
//TODO: VPDPBUSD X15, X16, K2, X12 // 62527d0250e7
|
||||
//TODO: VPDPBUSD X11, X16, K2, X12 // 62527d0250e3
|
||||
//TODO: VPDPBUSD X1, X16, K2, X12 // 62727d0250e1
|
||||
//TODO: VPDPBUSD -15(R14)(R15*1), X16, K2, X12 // 62127d0250a43ef1ffffff
|
||||
//TODO: VPDPBUSD -15(BX), X16, K2, X12 // 62727d0250a3f1ffffff
|
||||
//TODO: VPDPBUSD X15, X28, K2, X12 // 62521d0250e7
|
||||
//TODO: VPDPBUSD X11, X28, K2, X12 // 62521d0250e3
|
||||
//TODO: VPDPBUSD X1, X28, K2, X12 // 62721d0250e1
|
||||
//TODO: VPDPBUSD -15(R14)(R15*1), X28, K2, X12 // 62121d0250a43ef1ffffff
|
||||
//TODO: VPDPBUSD -15(BX), X28, K2, X12 // 62721d0250a3f1ffffff
|
||||
//TODO: VPDPBUSD X15, X8, K2, X12 // 62523d0a50e7
|
||||
//TODO: VPDPBUSD X11, X8, K2, X12 // 62523d0a50e3
|
||||
//TODO: VPDPBUSD X1, X8, K2, X12 // 62723d0a50e1
|
||||
//TODO: VPDPBUSD -15(R14)(R15*1), X8, K2, X12 // 62123d0a50a43ef1ffffff
|
||||
//TODO: VPDPBUSD -15(BX), X8, K2, X12 // 62723d0a50a3f1ffffff
|
||||
//TODO: VPDPBUSD Y11, Y28, K5, Y20 // 62c21d2550e3
|
||||
//TODO: VPDPBUSD Y27, Y28, K5, Y20 // 62821d2550e3
|
||||
//TODO: VPDPBUSD Y17, Y28, K5, Y20 // 62a21d2550e1
|
||||
//TODO: VPDPBUSD (AX), Y28, K5, Y20 // 62e21d255020
|
||||
//TODO: VPDPBUSD 7(SI), Y28, K5, Y20 // 62e21d2550a607000000
|
||||
//TODO: VPDPBUSD Y11, Y1, K5, Y20 // 62c2752d50e3
|
||||
//TODO: VPDPBUSD Y27, Y1, K5, Y20 // 6282752d50e3
|
||||
//TODO: VPDPBUSD Y17, Y1, K5, Y20 // 62a2752d50e1
|
||||
//TODO: VPDPBUSD (AX), Y1, K5, Y20 // 62e2752d5020
|
||||
//TODO: VPDPBUSD 7(SI), Y1, K5, Y20 // 62e2752d50a607000000
|
||||
//TODO: VPDPBUSD Y11, Y8, K5, Y20 // 62c23d2d50e3
|
||||
//TODO: VPDPBUSD Y27, Y8, K5, Y20 // 62823d2d50e3
|
||||
//TODO: VPDPBUSD Y17, Y8, K5, Y20 // 62a23d2d50e1
|
||||
//TODO: VPDPBUSD (AX), Y8, K5, Y20 // 62e23d2d5020
|
||||
//TODO: VPDPBUSD 7(SI), Y8, K5, Y20 // 62e23d2d50a607000000
|
||||
//TODO: VPDPBUSD Y11, Y28, K5, Y9 // 62521d2550cb
|
||||
//TODO: VPDPBUSD Y27, Y28, K5, Y9 // 62121d2550cb
|
||||
//TODO: VPDPBUSD Y17, Y28, K5, Y9 // 62321d2550c9
|
||||
//TODO: VPDPBUSD (AX), Y28, K5, Y9 // 62721d255008
|
||||
//TODO: VPDPBUSD 7(SI), Y28, K5, Y9 // 62721d25508e07000000
|
||||
//TODO: VPDPBUSD Y11, Y1, K5, Y9 // 6252752d50cb
|
||||
//TODO: VPDPBUSD Y27, Y1, K5, Y9 // 6212752d50cb
|
||||
//TODO: VPDPBUSD Y17, Y1, K5, Y9 // 6232752d50c9
|
||||
//TODO: VPDPBUSD (AX), Y1, K5, Y9 // 6272752d5008
|
||||
//TODO: VPDPBUSD 7(SI), Y1, K5, Y9 // 6272752d508e07000000
|
||||
//TODO: VPDPBUSD Y11, Y8, K5, Y9 // 62523d2d50cb
|
||||
//TODO: VPDPBUSD Y27, Y8, K5, Y9 // 62123d2d50cb
|
||||
//TODO: VPDPBUSD Y17, Y8, K5, Y9 // 62323d2d50c9
|
||||
//TODO: VPDPBUSD (AX), Y8, K5, Y9 // 62723d2d5008
|
||||
//TODO: VPDPBUSD 7(SI), Y8, K5, Y9 // 62723d2d508e07000000
|
||||
//TODO: VPDPBUSD Y11, Y28, K5, Y28 // 62421d2550e3
|
||||
//TODO: VPDPBUSD Y27, Y28, K5, Y28 // 62021d2550e3
|
||||
//TODO: VPDPBUSD Y17, Y28, K5, Y28 // 62221d2550e1
|
||||
//TODO: VPDPBUSD (AX), Y28, K5, Y28 // 62621d255020
|
||||
//TODO: VPDPBUSD 7(SI), Y28, K5, Y28 // 62621d2550a607000000
|
||||
//TODO: VPDPBUSD Y11, Y1, K5, Y28 // 6242752d50e3
|
||||
//TODO: VPDPBUSD Y27, Y1, K5, Y28 // 6202752d50e3
|
||||
//TODO: VPDPBUSD Y17, Y1, K5, Y28 // 6222752d50e1
|
||||
//TODO: VPDPBUSD (AX), Y1, K5, Y28 // 6262752d5020
|
||||
//TODO: VPDPBUSD 7(SI), Y1, K5, Y28 // 6262752d50a607000000
|
||||
//TODO: VPDPBUSD Y11, Y8, K5, Y28 // 62423d2d50e3
|
||||
//TODO: VPDPBUSD Y27, Y8, K5, Y28 // 62023d2d50e3
|
||||
//TODO: VPDPBUSD Y17, Y8, K5, Y28 // 62223d2d50e1
|
||||
//TODO: VPDPBUSD (AX), Y8, K5, Y28 // 62623d2d5020
|
||||
//TODO: VPDPBUSD 7(SI), Y8, K5, Y28 // 62623d2d50a607000000
|
||||
//TODO: VPDPBUSD Z8, Z23, K3, Z23 // 62c2454350f8
|
||||
//TODO: VPDPBUSD Z28, Z23, K3, Z23 // 6282454350fc
|
||||
//TODO: VPDPBUSD (SI), Z23, K3, Z23 // 62e24543503e
|
||||
//TODO: VPDPBUSD 7(SI)(DI*2), Z23, K3, Z23 // 62e2454350bc7e07000000
|
||||
//TODO: VPDPBUSD Z8, Z6, K3, Z23 // 62c24d4b50f8
|
||||
//TODO: VPDPBUSD Z28, Z6, K3, Z23 // 62824d4b50fc
|
||||
//TODO: VPDPBUSD (SI), Z6, K3, Z23 // 62e24d4b503e
|
||||
//TODO: VPDPBUSD 7(SI)(DI*2), Z6, K3, Z23 // 62e24d4b50bc7e07000000
|
||||
//TODO: VPDPBUSD Z8, Z23, K3, Z5 // 62d2454350e8
|
||||
//TODO: VPDPBUSD Z28, Z23, K3, Z5 // 6292454350ec
|
||||
//TODO: VPDPBUSD (SI), Z23, K3, Z5 // 62f24543502e
|
||||
//TODO: VPDPBUSD 7(SI)(DI*2), Z23, K3, Z5 // 62f2454350ac7e07000000
|
||||
//TODO: VPDPBUSD Z8, Z6, K3, Z5 // 62d24d4b50e8
|
||||
//TODO: VPDPBUSD Z28, Z6, K3, Z5 // 62924d4b50ec
|
||||
//TODO: VPDPBUSD (SI), Z6, K3, Z5 // 62f24d4b502e
|
||||
//TODO: VPDPBUSD 7(SI)(DI*2), Z6, K3, Z5 // 62f24d4b50ac7e07000000
|
||||
//TODO: VPDPBUSDS X25, X14, K4, X19 // 62820d0c51d9
|
||||
//TODO: VPDPBUSDS X11, X14, K4, X19 // 62c20d0c51db
|
||||
//TODO: VPDPBUSDS X17, X14, K4, X19 // 62a20d0c51d9
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*4), X14, K4, X19 // 62e20d0c519c8807000000
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*1), X14, K4, X19 // 62e20d0c519c0807000000
|
||||
//TODO: VPDPBUSDS X25, X0, K4, X19 // 62827d0c51d9
|
||||
//TODO: VPDPBUSDS X11, X0, K4, X19 // 62c27d0c51db
|
||||
//TODO: VPDPBUSDS X17, X0, K4, X19 // 62a27d0c51d9
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*4), X0, K4, X19 // 62e27d0c519c8807000000
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*1), X0, K4, X19 // 62e27d0c519c0807000000
|
||||
//TODO: VPDPBUSDS X25, X14, K4, X13 // 62120d0c51e9
|
||||
//TODO: VPDPBUSDS X11, X14, K4, X13 // 62520d0c51eb
|
||||
//TODO: VPDPBUSDS X17, X14, K4, X13 // 62320d0c51e9
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*4), X14, K4, X13 // 62720d0c51ac8807000000
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*1), X14, K4, X13 // 62720d0c51ac0807000000
|
||||
//TODO: VPDPBUSDS X25, X0, K4, X13 // 62127d0c51e9
|
||||
//TODO: VPDPBUSDS X11, X0, K4, X13 // 62527d0c51eb
|
||||
//TODO: VPDPBUSDS X17, X0, K4, X13 // 62327d0c51e9
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*4), X0, K4, X13 // 62727d0c51ac8807000000
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*1), X0, K4, X13 // 62727d0c51ac0807000000
|
||||
//TODO: VPDPBUSDS X25, X14, K4, X2 // 62920d0c51d1
|
||||
//TODO: VPDPBUSDS X11, X14, K4, X2 // 62d20d0c51d3
|
||||
//TODO: VPDPBUSDS X17, X14, K4, X2 // 62b20d0c51d1
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*4), X14, K4, X2 // 62f20d0c51948807000000
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*1), X14, K4, X2 // 62f20d0c51940807000000
|
||||
//TODO: VPDPBUSDS X25, X0, K4, X2 // 62927d0c51d1
|
||||
//TODO: VPDPBUSDS X11, X0, K4, X2 // 62d27d0c51d3
|
||||
//TODO: VPDPBUSDS X17, X0, K4, X2 // 62b27d0c51d1
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*4), X0, K4, X2 // 62f27d0c51948807000000
|
||||
//TODO: VPDPBUSDS 7(AX)(CX*1), X0, K4, X2 // 62f27d0c51940807000000
|
||||
//TODO: VPDPBUSDS Y28, Y26, K2, Y16 // 62822d2251c4
|
||||
//TODO: VPDPBUSDS Y1, Y26, K2, Y16 // 62e22d2251c1
|
||||
//TODO: VPDPBUSDS Y23, Y26, K2, Y16 // 62a22d2251c7
|
||||
//TODO: VPDPBUSDS (BX), Y26, K2, Y16 // 62e22d225103
|
||||
//TODO: VPDPBUSDS -17(BP)(SI*1), Y26, K2, Y16 // 62e22d22518435efffffff
|
||||
//TODO: VPDPBUSDS Y28, Y3, K2, Y16 // 6282652a51c4
|
||||
//TODO: VPDPBUSDS Y1, Y3, K2, Y16 // 62e2652a51c1
|
||||
//TODO: VPDPBUSDS Y23, Y3, K2, Y16 // 62a2652a51c7
|
||||
//TODO: VPDPBUSDS (BX), Y3, K2, Y16 // 62e2652a5103
|
||||
//TODO: VPDPBUSDS -17(BP)(SI*1), Y3, K2, Y16 // 62e2652a518435efffffff
|
||||
//TODO: VPDPBUSDS Y28, Y8, K2, Y16 // 62823d2a51c4
|
||||
//TODO: VPDPBUSDS Y1, Y8, K2, Y16 // 62e23d2a51c1
|
||||
//TODO: VPDPBUSDS Y23, Y8, K2, Y16 // 62a23d2a51c7
|
||||
//TODO: VPDPBUSDS (BX), Y8, K2, Y16 // 62e23d2a5103
|
||||
//TODO: VPDPBUSDS -17(BP)(SI*1), Y8, K2, Y16 // 62e23d2a518435efffffff
|
||||
//TODO: VPDPBUSDS Y28, Y26, K2, Y12 // 62122d2251e4
|
||||
//TODO: VPDPBUSDS Y1, Y26, K2, Y12 // 62722d2251e1
|
||||
//TODO: VPDPBUSDS Y23, Y26, K2, Y12 // 62322d2251e7
|
||||
//TODO: VPDPBUSDS (BX), Y26, K2, Y12 // 62722d225123
|
||||
//TODO: VPDPBUSDS -17(BP)(SI*1), Y26, K2, Y12 // 62722d2251a435efffffff
|
||||
//TODO: VPDPBUSDS Y28, Y3, K2, Y12 // 6212652a51e4
|
||||
//TODO: VPDPBUSDS Y1, Y3, K2, Y12 // 6272652a51e1
|
||||
//TODO: VPDPBUSDS Y23, Y3, K2, Y12 // 6232652a51e7
|
||||
//TODO: VPDPBUSDS (BX), Y3, K2, Y12 // 6272652a5123
|
||||
//TODO: VPDPBUSDS -17(BP)(SI*1), Y3, K2, Y12 // 6272652a51a435efffffff
|
||||
//TODO: VPDPBUSDS Y28, Y8, K2, Y12 // 62123d2a51e4
|
||||
//TODO: VPDPBUSDS Y1, Y8, K2, Y12 // 62723d2a51e1
|
||||
//TODO: VPDPBUSDS Y23, Y8, K2, Y12 // 62323d2a51e7
|
||||
//TODO: VPDPBUSDS (BX), Y8, K2, Y12 // 62723d2a5123
|
||||
//TODO: VPDPBUSDS -17(BP)(SI*1), Y8, K2, Y12 // 62723d2a51a435efffffff
|
||||
//TODO: VPDPBUSDS Y28, Y26, K2, Y6 // 62922d2251f4
|
||||
//TODO: VPDPBUSDS Y1, Y26, K2, Y6 // 62f22d2251f1
|
||||
//TODO: VPDPBUSDS Y23, Y26, K2, Y6 // 62b22d2251f7
|
||||
//TODO: VPDPBUSDS (BX), Y26, K2, Y6 // 62f22d225133
|
||||
//TODO: VPDPBUSDS -17(BP)(SI*1), Y26, K2, Y6 // 62f22d2251b435efffffff
|
||||
//TODO: VPDPBUSDS Y28, Y3, K2, Y6 // 6292652a51f4
|
||||
//TODO: VPDPBUSDS Y1, Y3, K2, Y6 // 62f2652a51f1
|
||||
//TODO: VPDPBUSDS Y23, Y3, K2, Y6 // 62b2652a51f7
|
||||
//TODO: VPDPBUSDS (BX), Y3, K2, Y6 // 62f2652a5133
|
||||
//TODO: VPDPBUSDS -17(BP)(SI*1), Y3, K2, Y6 // 62f2652a51b435efffffff
|
||||
//TODO: VPDPBUSDS Y28, Y8, K2, Y6 // 62923d2a51f4
|
||||
//TODO: VPDPBUSDS Y1, Y8, K2, Y6 // 62f23d2a51f1
|
||||
//TODO: VPDPBUSDS Y23, Y8, K2, Y6 // 62b23d2a51f7
|
||||
//TODO: VPDPBUSDS (BX), Y8, K2, Y6 // 62f23d2a5133
|
||||
//TODO: VPDPBUSDS -17(BP)(SI*1), Y8, K2, Y6 // 62f23d2a51b435efffffff
|
||||
//TODO: VPDPBUSDS Z12, Z16, K2, Z21 // 62c27d4251ec
|
||||
//TODO: VPDPBUSDS Z27, Z16, K2, Z21 // 62827d4251eb
|
||||
//TODO: VPDPBUSDS 17(SP)(BP*8), Z16, K2, Z21 // 62e27d4251acec11000000
|
||||
//TODO: VPDPBUSDS 17(SP)(BP*4), Z16, K2, Z21 // 62e27d4251acac11000000
|
||||
//TODO: VPDPBUSDS Z12, Z13, K2, Z21 // 62c2154a51ec
|
||||
//TODO: VPDPBUSDS Z27, Z13, K2, Z21 // 6282154a51eb
|
||||
//TODO: VPDPBUSDS 17(SP)(BP*8), Z13, K2, Z21 // 62e2154a51acec11000000
|
||||
//TODO: VPDPBUSDS 17(SP)(BP*4), Z13, K2, Z21 // 62e2154a51acac11000000
|
||||
//TODO: VPDPBUSDS Z12, Z16, K2, Z5 // 62d27d4251ec
|
||||
//TODO: VPDPBUSDS Z27, Z16, K2, Z5 // 62927d4251eb
|
||||
//TODO: VPDPBUSDS 17(SP)(BP*8), Z16, K2, Z5 // 62f27d4251acec11000000
|
||||
//TODO: VPDPBUSDS 17(SP)(BP*4), Z16, K2, Z5 // 62f27d4251acac11000000
|
||||
//TODO: VPDPBUSDS Z12, Z13, K2, Z5 // 62d2154a51ec
|
||||
//TODO: VPDPBUSDS Z27, Z13, K2, Z5 // 6292154a51eb
|
||||
//TODO: VPDPBUSDS 17(SP)(BP*8), Z13, K2, Z5 // 62f2154a51acec11000000
|
||||
//TODO: VPDPBUSDS 17(SP)(BP*4), Z13, K2, Z5 // 62f2154a51acac11000000
|
||||
//TODO: VPDPWSSD X2, X2, K3, X18 // 62e26d0b52d2
|
||||
//TODO: VPDPWSSD X27, X2, K3, X18 // 62826d0b52d3
|
||||
//TODO: VPDPWSSD X26, X2, K3, X18 // 62826d0b52d2
|
||||
//TODO: VPDPWSSD (SI), X2, K3, X18 // 62e26d0b5216
|
||||
//TODO: VPDPWSSD 7(SI)(DI*2), X2, K3, X18 // 62e26d0b52947e07000000
|
||||
//TODO: VPDPWSSD X2, X24, K3, X18 // 62e23d0352d2
|
||||
//TODO: VPDPWSSD X27, X24, K3, X18 // 62823d0352d3
|
||||
//TODO: VPDPWSSD X26, X24, K3, X18 // 62823d0352d2
|
||||
//TODO: VPDPWSSD (SI), X24, K3, X18 // 62e23d035216
|
||||
//TODO: VPDPWSSD 7(SI)(DI*2), X24, K3, X18 // 62e23d0352947e07000000
|
||||
//TODO: VPDPWSSD X2, X2, K3, X11 // 62726d0b52da
|
||||
//TODO: VPDPWSSD X27, X2, K3, X11 // 62126d0b52db
|
||||
//TODO: VPDPWSSD X26, X2, K3, X11 // 62126d0b52da
|
||||
//TODO: VPDPWSSD (SI), X2, K3, X11 // 62726d0b521e
|
||||
//TODO: VPDPWSSD 7(SI)(DI*2), X2, K3, X11 // 62726d0b529c7e07000000
|
||||
//TODO: VPDPWSSD X2, X24, K3, X11 // 62723d0352da
|
||||
//TODO: VPDPWSSD X27, X24, K3, X11 // 62123d0352db
|
||||
//TODO: VPDPWSSD X26, X24, K3, X11 // 62123d0352da
|
||||
//TODO: VPDPWSSD (SI), X24, K3, X11 // 62723d03521e
|
||||
//TODO: VPDPWSSD 7(SI)(DI*2), X24, K3, X11 // 62723d03529c7e07000000
|
||||
//TODO: VPDPWSSD X2, X2, K3, X9 // 62726d0b52ca
|
||||
//TODO: VPDPWSSD X27, X2, K3, X9 // 62126d0b52cb
|
||||
//TODO: VPDPWSSD X26, X2, K3, X9 // 62126d0b52ca
|
||||
//TODO: VPDPWSSD (SI), X2, K3, X9 // 62726d0b520e
|
||||
//TODO: VPDPWSSD 7(SI)(DI*2), X2, K3, X9 // 62726d0b528c7e07000000
|
||||
//TODO: VPDPWSSD X2, X24, K3, X9 // 62723d0352ca
|
||||
//TODO: VPDPWSSD X27, X24, K3, X9 // 62123d0352cb
|
||||
//TODO: VPDPWSSD X26, X24, K3, X9 // 62123d0352ca
|
||||
//TODO: VPDPWSSD (SI), X24, K3, X9 // 62723d03520e
|
||||
//TODO: VPDPWSSD 7(SI)(DI*2), X24, K3, X9 // 62723d03528c7e07000000
|
||||
//TODO: VPDPWSSD Y8, Y2, K3, Y14 // 62526d2b52f0
|
||||
//TODO: VPDPWSSD Y9, Y2, K3, Y14 // 62526d2b52f1
|
||||
//TODO: VPDPWSSD Y22, Y2, K3, Y14 // 62326d2b52f6
|
||||
//TODO: VPDPWSSD 15(R8)(R14*4), Y2, K3, Y14 // 62126d2b52b4b00f000000
|
||||
//TODO: VPDPWSSD -7(CX)(DX*4), Y2, K3, Y14 // 62726d2b52b491f9ffffff
|
||||
//TODO: VPDPWSSD Y8, Y22, K3, Y14 // 62524d2352f0
|
||||
//TODO: VPDPWSSD Y9, Y22, K3, Y14 // 62524d2352f1
|
||||
//TODO: VPDPWSSD Y22, Y22, K3, Y14 // 62324d2352f6
|
||||
//TODO: VPDPWSSD 15(R8)(R14*4), Y22, K3, Y14 // 62124d2352b4b00f000000
|
||||
//TODO: VPDPWSSD -7(CX)(DX*4), Y22, K3, Y14 // 62724d2352b491f9ffffff
|
||||
//TODO: VPDPWSSD Y8, Y27, K3, Y14 // 6252252352f0
|
||||
//TODO: VPDPWSSD Y9, Y27, K3, Y14 // 6252252352f1
|
||||
//TODO: VPDPWSSD Y22, Y27, K3, Y14 // 6232252352f6
|
||||
//TODO: VPDPWSSD 15(R8)(R14*4), Y27, K3, Y14 // 6212252352b4b00f000000
|
||||
//TODO: VPDPWSSD -7(CX)(DX*4), Y27, K3, Y14 // 6272252352b491f9ffffff
|
||||
//TODO: VPDPWSSD Y8, Y2, K3, Y31 // 62426d2b52f8
|
||||
//TODO: VPDPWSSD Y9, Y2, K3, Y31 // 62426d2b52f9
|
||||
//TODO: VPDPWSSD Y22, Y2, K3, Y31 // 62226d2b52fe
|
||||
//TODO: VPDPWSSD 15(R8)(R14*4), Y2, K3, Y31 // 62026d2b52bcb00f000000
|
||||
//TODO: VPDPWSSD -7(CX)(DX*4), Y2, K3, Y31 // 62626d2b52bc91f9ffffff
|
||||
//TODO: VPDPWSSD Y8, Y22, K3, Y31 // 62424d2352f8
|
||||
//TODO: VPDPWSSD Y9, Y22, K3, Y31 // 62424d2352f9
|
||||
//TODO: VPDPWSSD Y22, Y22, K3, Y31 // 62224d2352fe
|
||||
//TODO: VPDPWSSD 15(R8)(R14*4), Y22, K3, Y31 // 62024d2352bcb00f000000
|
||||
//TODO: VPDPWSSD -7(CX)(DX*4), Y22, K3, Y31 // 62624d2352bc91f9ffffff
|
||||
//TODO: VPDPWSSD Y8, Y27, K3, Y31 // 6242252352f8
|
||||
//TODO: VPDPWSSD Y9, Y27, K3, Y31 // 6242252352f9
|
||||
//TODO: VPDPWSSD Y22, Y27, K3, Y31 // 6222252352fe
|
||||
//TODO: VPDPWSSD 15(R8)(R14*4), Y27, K3, Y31 // 6202252352bcb00f000000
|
||||
//TODO: VPDPWSSD -7(CX)(DX*4), Y27, K3, Y31 // 6262252352bc91f9ffffff
|
||||
//TODO: VPDPWSSD Y8, Y2, K3, Y25 // 62426d2b52c8
|
||||
//TODO: VPDPWSSD Y9, Y2, K3, Y25 // 62426d2b52c9
|
||||
//TODO: VPDPWSSD Y22, Y2, K3, Y25 // 62226d2b52ce
|
||||
//TODO: VPDPWSSD 15(R8)(R14*4), Y2, K3, Y25 // 62026d2b528cb00f000000
|
||||
//TODO: VPDPWSSD -7(CX)(DX*4), Y2, K3, Y25 // 62626d2b528c91f9ffffff
|
||||
//TODO: VPDPWSSD Y8, Y22, K3, Y25 // 62424d2352c8
|
||||
//TODO: VPDPWSSD Y9, Y22, K3, Y25 // 62424d2352c9
|
||||
//TODO: VPDPWSSD Y22, Y22, K3, Y25 // 62224d2352ce
|
||||
//TODO: VPDPWSSD 15(R8)(R14*4), Y22, K3, Y25 // 62024d23528cb00f000000
|
||||
//TODO: VPDPWSSD -7(CX)(DX*4), Y22, K3, Y25 // 62624d23528c91f9ffffff
|
||||
//TODO: VPDPWSSD Y8, Y27, K3, Y25 // 6242252352c8
|
||||
//TODO: VPDPWSSD Y9, Y27, K3, Y25 // 6242252352c9
|
||||
//TODO: VPDPWSSD Y22, Y27, K3, Y25 // 6222252352ce
|
||||
//TODO: VPDPWSSD 15(R8)(R14*4), Y27, K3, Y25 // 62022523528cb00f000000
|
||||
//TODO: VPDPWSSD -7(CX)(DX*4), Y27, K3, Y25 // 62622523528c91f9ffffff
|
||||
//TODO: VPDPWSSD Z25, Z6, K3, Z22 // 62824d4b52f1
|
||||
//TODO: VPDPWSSD Z12, Z6, K3, Z22 // 62c24d4b52f4
|
||||
//TODO: VPDPWSSD 7(SI)(DI*4), Z6, K3, Z22 // 62e24d4b52b4be07000000
|
||||
//TODO: VPDPWSSD -7(DI)(R8*2), Z6, K3, Z22 // 62a24d4b52b447f9ffffff
|
||||
//TODO: VPDPWSSD Z25, Z8, K3, Z22 // 62823d4b52f1
|
||||
//TODO: VPDPWSSD Z12, Z8, K3, Z22 // 62c23d4b52f4
|
||||
//TODO: VPDPWSSD 7(SI)(DI*4), Z8, K3, Z22 // 62e23d4b52b4be07000000
|
||||
//TODO: VPDPWSSD -7(DI)(R8*2), Z8, K3, Z22 // 62a23d4b52b447f9ffffff
|
||||
//TODO: VPDPWSSD Z25, Z6, K3, Z11 // 62124d4b52d9
|
||||
//TODO: VPDPWSSD Z12, Z6, K3, Z11 // 62524d4b52dc
|
||||
//TODO: VPDPWSSD 7(SI)(DI*4), Z6, K3, Z11 // 62724d4b529cbe07000000
|
||||
//TODO: VPDPWSSD -7(DI)(R8*2), Z6, K3, Z11 // 62324d4b529c47f9ffffff
|
||||
//TODO: VPDPWSSD Z25, Z8, K3, Z11 // 62123d4b52d9
|
||||
//TODO: VPDPWSSD Z12, Z8, K3, Z11 // 62523d4b52dc
|
||||
//TODO: VPDPWSSD 7(SI)(DI*4), Z8, K3, Z11 // 62723d4b529cbe07000000
|
||||
//TODO: VPDPWSSD -7(DI)(R8*2), Z8, K3, Z11 // 62323d4b529c47f9ffffff
|
||||
//TODO: VPDPWSSDS X13, X11, K2, X22 // 62c2250a53f5
|
||||
//TODO: VPDPWSSDS X6, X11, K2, X22 // 62e2250a53f6
|
||||
//TODO: VPDPWSSDS X12, X11, K2, X22 // 62c2250a53f4
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*8), X11, K2, X22 // 62e2250a53b4ec11000000
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*4), X11, K2, X22 // 62e2250a53b4ac11000000
|
||||
//TODO: VPDPWSSDS X13, X15, K2, X22 // 62c2050a53f5
|
||||
//TODO: VPDPWSSDS X6, X15, K2, X22 // 62e2050a53f6
|
||||
//TODO: VPDPWSSDS X12, X15, K2, X22 // 62c2050a53f4
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*8), X15, K2, X22 // 62e2050a53b4ec11000000
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*4), X15, K2, X22 // 62e2050a53b4ac11000000
|
||||
//TODO: VPDPWSSDS X13, X30, K2, X22 // 62c20d0253f5
|
||||
//TODO: VPDPWSSDS X6, X30, K2, X22 // 62e20d0253f6
|
||||
//TODO: VPDPWSSDS X12, X30, K2, X22 // 62c20d0253f4
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*8), X30, K2, X22 // 62e20d0253b4ec11000000
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*4), X30, K2, X22 // 62e20d0253b4ac11000000
|
||||
//TODO: VPDPWSSDS X13, X11, K2, X30 // 6242250a53f5
|
||||
//TODO: VPDPWSSDS X6, X11, K2, X30 // 6262250a53f6
|
||||
//TODO: VPDPWSSDS X12, X11, K2, X30 // 6242250a53f4
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*8), X11, K2, X30 // 6262250a53b4ec11000000
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*4), X11, K2, X30 // 6262250a53b4ac11000000
|
||||
//TODO: VPDPWSSDS X13, X15, K2, X30 // 6242050a53f5
|
||||
//TODO: VPDPWSSDS X6, X15, K2, X30 // 6262050a53f6
|
||||
//TODO: VPDPWSSDS X12, X15, K2, X30 // 6242050a53f4
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*8), X15, K2, X30 // 6262050a53b4ec11000000
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*4), X15, K2, X30 // 6262050a53b4ac11000000
|
||||
//TODO: VPDPWSSDS X13, X30, K2, X30 // 62420d0253f5
|
||||
//TODO: VPDPWSSDS X6, X30, K2, X30 // 62620d0253f6
|
||||
//TODO: VPDPWSSDS X12, X30, K2, X30 // 62420d0253f4
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*8), X30, K2, X30 // 62620d0253b4ec11000000
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*4), X30, K2, X30 // 62620d0253b4ac11000000
|
||||
//TODO: VPDPWSSDS X13, X11, K2, X3 // 62d2250a53dd
|
||||
//TODO: VPDPWSSDS X6, X11, K2, X3 // 62f2250a53de
|
||||
//TODO: VPDPWSSDS X12, X11, K2, X3 // 62d2250a53dc
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*8), X11, K2, X3 // 62f2250a539cec11000000
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*4), X11, K2, X3 // 62f2250a539cac11000000
|
||||
//TODO: VPDPWSSDS X13, X15, K2, X3 // 62d2050a53dd
|
||||
//TODO: VPDPWSSDS X6, X15, K2, X3 // 62f2050a53de
|
||||
//TODO: VPDPWSSDS X12, X15, K2, X3 // 62d2050a53dc
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*8), X15, K2, X3 // 62f2050a539cec11000000
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*4), X15, K2, X3 // 62f2050a539cac11000000
|
||||
//TODO: VPDPWSSDS X13, X30, K2, X3 // 62d20d0253dd
|
||||
//TODO: VPDPWSSDS X6, X30, K2, X3 // 62f20d0253de
|
||||
//TODO: VPDPWSSDS X12, X30, K2, X3 // 62d20d0253dc
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*8), X30, K2, X3 // 62f20d02539cec11000000
|
||||
//TODO: VPDPWSSDS 17(SP)(BP*4), X30, K2, X3 // 62f20d02539cac11000000
|
||||
//TODO: VPDPWSSDS Y0, Y6, K1, Y9 // 62724d2953c8
|
||||
//TODO: VPDPWSSDS Y19, Y6, K1, Y9 // 62324d2953cb
|
||||
//TODO: VPDPWSSDS Y31, Y6, K1, Y9 // 62124d2953cf
|
||||
//TODO: VPDPWSSDS (R8), Y6, K1, Y9 // 62524d295308
|
||||
//TODO: VPDPWSSDS 15(DX)(BX*2), Y6, K1, Y9 // 62724d29538c5a0f000000
|
||||
//TODO: VPDPWSSDS Y0, Y1, K1, Y9 // 6272752953c8
|
||||
//TODO: VPDPWSSDS Y19, Y1, K1, Y9 // 6232752953cb
|
||||
//TODO: VPDPWSSDS Y31, Y1, K1, Y9 // 6212752953cf
|
||||
//TODO: VPDPWSSDS (R8), Y1, K1, Y9 // 625275295308
|
||||
//TODO: VPDPWSSDS 15(DX)(BX*2), Y1, K1, Y9 // 62727529538c5a0f000000
|
||||
//TODO: VPDPWSSDS Y0, Y9, K1, Y9 // 6272352953c8
|
||||
//TODO: VPDPWSSDS Y19, Y9, K1, Y9 // 6232352953cb
|
||||
//TODO: VPDPWSSDS Y31, Y9, K1, Y9 // 6212352953cf
|
||||
//TODO: VPDPWSSDS (R8), Y9, K1, Y9 // 625235295308
|
||||
//TODO: VPDPWSSDS 15(DX)(BX*2), Y9, K1, Y9 // 62723529538c5a0f000000
|
||||
//TODO: VPDPWSSDS Y0, Y6, K1, Y14 // 62724d2953f0
|
||||
//TODO: VPDPWSSDS Y19, Y6, K1, Y14 // 62324d2953f3
|
||||
//TODO: VPDPWSSDS Y31, Y6, K1, Y14 // 62124d2953f7
|
||||
//TODO: VPDPWSSDS (R8), Y6, K1, Y14 // 62524d295330
|
||||
//TODO: VPDPWSSDS 15(DX)(BX*2), Y6, K1, Y14 // 62724d2953b45a0f000000
|
||||
//TODO: VPDPWSSDS Y0, Y1, K1, Y14 // 6272752953f0
|
||||
//TODO: VPDPWSSDS Y19, Y1, K1, Y14 // 6232752953f3
|
||||
//TODO: VPDPWSSDS Y31, Y1, K1, Y14 // 6212752953f7
|
||||
//TODO: VPDPWSSDS (R8), Y1, K1, Y14 // 625275295330
|
||||
//TODO: VPDPWSSDS 15(DX)(BX*2), Y1, K1, Y14 // 6272752953b45a0f000000
|
||||
//TODO: VPDPWSSDS Y0, Y9, K1, Y14 // 6272352953f0
|
||||
//TODO: VPDPWSSDS Y19, Y9, K1, Y14 // 6232352953f3
|
||||
//TODO: VPDPWSSDS Y31, Y9, K1, Y14 // 6212352953f7
|
||||
//TODO: VPDPWSSDS (R8), Y9, K1, Y14 // 625235295330
|
||||
//TODO: VPDPWSSDS 15(DX)(BX*2), Y9, K1, Y14 // 6272352953b45a0f000000
|
||||
//TODO: VPDPWSSDS Y0, Y6, K1, Y1 // 62f24d2953c8
|
||||
//TODO: VPDPWSSDS Y19, Y6, K1, Y1 // 62b24d2953cb
|
||||
//TODO: VPDPWSSDS Y31, Y6, K1, Y1 // 62924d2953cf
|
||||
//TODO: VPDPWSSDS (R8), Y6, K1, Y1 // 62d24d295308
|
||||
//TODO: VPDPWSSDS 15(DX)(BX*2), Y6, K1, Y1 // 62f24d29538c5a0f000000
|
||||
//TODO: VPDPWSSDS Y0, Y1, K1, Y1 // 62f2752953c8
|
||||
//TODO: VPDPWSSDS Y19, Y1, K1, Y1 // 62b2752953cb
|
||||
//TODO: VPDPWSSDS Y31, Y1, K1, Y1 // 6292752953cf
|
||||
//TODO: VPDPWSSDS (R8), Y1, K1, Y1 // 62d275295308
|
||||
//TODO: VPDPWSSDS 15(DX)(BX*2), Y1, K1, Y1 // 62f27529538c5a0f000000
|
||||
//TODO: VPDPWSSDS Y0, Y9, K1, Y1 // 62f2352953c8
|
||||
//TODO: VPDPWSSDS Y19, Y9, K1, Y1 // 62b2352953cb
|
||||
//TODO: VPDPWSSDS Y31, Y9, K1, Y1 // 6292352953cf
|
||||
//TODO: VPDPWSSDS (R8), Y9, K1, Y1 // 62d235295308
|
||||
//TODO: VPDPWSSDS 15(DX)(BX*2), Y9, K1, Y1 // 62f23529538c5a0f000000
|
||||
//TODO: VPDPWSSDS Z6, Z9, K2, Z12 // 6272354a53e6
|
||||
//TODO: VPDPWSSDS Z25, Z9, K2, Z12 // 6212354a53e1
|
||||
//TODO: VPDPWSSDS 17(SP), Z9, K2, Z12 // 6272354a53a42411000000
|
||||
//TODO: VPDPWSSDS -17(BP)(SI*4), Z9, K2, Z12 // 6272354a53a4b5efffffff
|
||||
//TODO: VPDPWSSDS Z6, Z12, K2, Z12 // 62721d4a53e6
|
||||
//TODO: VPDPWSSDS Z25, Z12, K2, Z12 // 62121d4a53e1
|
||||
//TODO: VPDPWSSDS 17(SP), Z12, K2, Z12 // 62721d4a53a42411000000
|
||||
//TODO: VPDPWSSDS -17(BP)(SI*4), Z12, K2, Z12 // 62721d4a53a4b5efffffff
|
||||
//TODO: VPDPWSSDS Z6, Z9, K2, Z17 // 62e2354a53ce
|
||||
//TODO: VPDPWSSDS Z25, Z9, K2, Z17 // 6282354a53c9
|
||||
//TODO: VPDPWSSDS 17(SP), Z9, K2, Z17 // 62e2354a538c2411000000
|
||||
//TODO: VPDPWSSDS -17(BP)(SI*4), Z9, K2, Z17 // 62e2354a538cb5efffffff
|
||||
//TODO: VPDPWSSDS Z6, Z12, K2, Z17 // 62e21d4a53ce
|
||||
//TODO: VPDPWSSDS Z25, Z12, K2, Z17 // 62821d4a53c9
|
||||
//TODO: VPDPWSSDS 17(SP), Z12, K2, Z17 // 62e21d4a538c2411000000
|
||||
//TODO: VPDPWSSDS -17(BP)(SI*4), Z12, K2, Z17 // 62e21d4a538cb5efffffff
|
||||
VPDPBUSD X15, X16, K2, X6 // 62d27d0250f7
|
||||
VPDPBUSD X11, X16, K2, X6 // 62d27d0250f3
|
||||
VPDPBUSD X1, X16, K2, X6 // 62f27d0250f1
|
||||
VPDPBUSD -15(R14)(R15*1), X16, K2, X6 // 62927d0250b43ef1ffffff
|
||||
VPDPBUSD -15(BX), X16, K2, X6 // 62f27d0250b3f1ffffff
|
||||
VPDPBUSD X15, X28, K2, X6 // 62d21d0250f7
|
||||
VPDPBUSD X11, X28, K2, X6 // 62d21d0250f3
|
||||
VPDPBUSD X1, X28, K2, X6 // 62f21d0250f1
|
||||
VPDPBUSD -15(R14)(R15*1), X28, K2, X6 // 62921d0250b43ef1ffffff
|
||||
VPDPBUSD -15(BX), X28, K2, X6 // 62f21d0250b3f1ffffff
|
||||
VPDPBUSD X15, X8, K2, X6 // 62d23d0a50f7
|
||||
VPDPBUSD X11, X8, K2, X6 // 62d23d0a50f3
|
||||
VPDPBUSD X1, X8, K2, X6 // 62f23d0a50f1
|
||||
VPDPBUSD -15(R14)(R15*1), X8, K2, X6 // 62923d0a50b43ef1ffffff
|
||||
VPDPBUSD -15(BX), X8, K2, X6 // 62f23d0a50b3f1ffffff
|
||||
VPDPBUSD X15, X16, K2, X22 // 62c27d0250f7
|
||||
VPDPBUSD X11, X16, K2, X22 // 62c27d0250f3
|
||||
VPDPBUSD X1, X16, K2, X22 // 62e27d0250f1
|
||||
VPDPBUSD -15(R14)(R15*1), X16, K2, X22 // 62827d0250b43ef1ffffff
|
||||
VPDPBUSD -15(BX), X16, K2, X22 // 62e27d0250b3f1ffffff
|
||||
VPDPBUSD X15, X28, K2, X22 // 62c21d0250f7
|
||||
VPDPBUSD X11, X28, K2, X22 // 62c21d0250f3
|
||||
VPDPBUSD X1, X28, K2, X22 // 62e21d0250f1
|
||||
VPDPBUSD -15(R14)(R15*1), X28, K2, X22 // 62821d0250b43ef1ffffff
|
||||
VPDPBUSD -15(BX), X28, K2, X22 // 62e21d0250b3f1ffffff
|
||||
VPDPBUSD X15, X8, K2, X22 // 62c23d0a50f7
|
||||
VPDPBUSD X11, X8, K2, X22 // 62c23d0a50f3
|
||||
VPDPBUSD X1, X8, K2, X22 // 62e23d0a50f1
|
||||
VPDPBUSD -15(R14)(R15*1), X8, K2, X22 // 62823d0a50b43ef1ffffff
|
||||
VPDPBUSD -15(BX), X8, K2, X22 // 62e23d0a50b3f1ffffff
|
||||
VPDPBUSD X15, X16, K2, X12 // 62527d0250e7
|
||||
VPDPBUSD X11, X16, K2, X12 // 62527d0250e3
|
||||
VPDPBUSD X1, X16, K2, X12 // 62727d0250e1
|
||||
VPDPBUSD -15(R14)(R15*1), X16, K2, X12 // 62127d0250a43ef1ffffff
|
||||
VPDPBUSD -15(BX), X16, K2, X12 // 62727d0250a3f1ffffff
|
||||
VPDPBUSD X15, X28, K2, X12 // 62521d0250e7
|
||||
VPDPBUSD X11, X28, K2, X12 // 62521d0250e3
|
||||
VPDPBUSD X1, X28, K2, X12 // 62721d0250e1
|
||||
VPDPBUSD -15(R14)(R15*1), X28, K2, X12 // 62121d0250a43ef1ffffff
|
||||
VPDPBUSD -15(BX), X28, K2, X12 // 62721d0250a3f1ffffff
|
||||
VPDPBUSD X15, X8, K2, X12 // 62523d0a50e7
|
||||
VPDPBUSD X11, X8, K2, X12 // 62523d0a50e3
|
||||
VPDPBUSD X1, X8, K2, X12 // 62723d0a50e1
|
||||
VPDPBUSD -15(R14)(R15*1), X8, K2, X12 // 62123d0a50a43ef1ffffff
|
||||
VPDPBUSD -15(BX), X8, K2, X12 // 62723d0a50a3f1ffffff
|
||||
VPDPBUSD Y11, Y28, K5, Y20 // 62c21d2550e3
|
||||
VPDPBUSD Y27, Y28, K5, Y20 // 62821d2550e3
|
||||
VPDPBUSD Y17, Y28, K5, Y20 // 62a21d2550e1
|
||||
VPDPBUSD (AX), Y28, K5, Y20 // 62e21d255020
|
||||
VPDPBUSD 7(SI), Y28, K5, Y20 // 62e21d2550a607000000
|
||||
VPDPBUSD Y11, Y1, K5, Y20 // 62c2752d50e3
|
||||
VPDPBUSD Y27, Y1, K5, Y20 // 6282752d50e3
|
||||
VPDPBUSD Y17, Y1, K5, Y20 // 62a2752d50e1
|
||||
VPDPBUSD (AX), Y1, K5, Y20 // 62e2752d5020
|
||||
VPDPBUSD 7(SI), Y1, K5, Y20 // 62e2752d50a607000000
|
||||
VPDPBUSD Y11, Y8, K5, Y20 // 62c23d2d50e3
|
||||
VPDPBUSD Y27, Y8, K5, Y20 // 62823d2d50e3
|
||||
VPDPBUSD Y17, Y8, K5, Y20 // 62a23d2d50e1
|
||||
VPDPBUSD (AX), Y8, K5, Y20 // 62e23d2d5020
|
||||
VPDPBUSD 7(SI), Y8, K5, Y20 // 62e23d2d50a607000000
|
||||
VPDPBUSD Y11, Y28, K5, Y9 // 62521d2550cb
|
||||
VPDPBUSD Y27, Y28, K5, Y9 // 62121d2550cb
|
||||
VPDPBUSD Y17, Y28, K5, Y9 // 62321d2550c9
|
||||
VPDPBUSD (AX), Y28, K5, Y9 // 62721d255008
|
||||
VPDPBUSD 7(SI), Y28, K5, Y9 // 62721d25508e07000000
|
||||
VPDPBUSD Y11, Y1, K5, Y9 // 6252752d50cb
|
||||
VPDPBUSD Y27, Y1, K5, Y9 // 6212752d50cb
|
||||
VPDPBUSD Y17, Y1, K5, Y9 // 6232752d50c9
|
||||
VPDPBUSD (AX), Y1, K5, Y9 // 6272752d5008
|
||||
VPDPBUSD 7(SI), Y1, K5, Y9 // 6272752d508e07000000
|
||||
VPDPBUSD Y11, Y8, K5, Y9 // 62523d2d50cb
|
||||
VPDPBUSD Y27, Y8, K5, Y9 // 62123d2d50cb
|
||||
VPDPBUSD Y17, Y8, K5, Y9 // 62323d2d50c9
|
||||
VPDPBUSD (AX), Y8, K5, Y9 // 62723d2d5008
|
||||
VPDPBUSD 7(SI), Y8, K5, Y9 // 62723d2d508e07000000
|
||||
VPDPBUSD Y11, Y28, K5, Y28 // 62421d2550e3
|
||||
VPDPBUSD Y27, Y28, K5, Y28 // 62021d2550e3
|
||||
VPDPBUSD Y17, Y28, K5, Y28 // 62221d2550e1
|
||||
VPDPBUSD (AX), Y28, K5, Y28 // 62621d255020
|
||||
VPDPBUSD 7(SI), Y28, K5, Y28 // 62621d2550a607000000
|
||||
VPDPBUSD Y11, Y1, K5, Y28 // 6242752d50e3
|
||||
VPDPBUSD Y27, Y1, K5, Y28 // 6202752d50e3
|
||||
VPDPBUSD Y17, Y1, K5, Y28 // 6222752d50e1
|
||||
VPDPBUSD (AX), Y1, K5, Y28 // 6262752d5020
|
||||
VPDPBUSD 7(SI), Y1, K5, Y28 // 6262752d50a607000000
|
||||
VPDPBUSD Y11, Y8, K5, Y28 // 62423d2d50e3
|
||||
VPDPBUSD Y27, Y8, K5, Y28 // 62023d2d50e3
|
||||
VPDPBUSD Y17, Y8, K5, Y28 // 62223d2d50e1
|
||||
VPDPBUSD (AX), Y8, K5, Y28 // 62623d2d5020
|
||||
VPDPBUSD 7(SI), Y8, K5, Y28 // 62623d2d50a607000000
|
||||
VPDPBUSD Z8, Z23, K3, Z23 // 62c2454350f8
|
||||
VPDPBUSD Z28, Z23, K3, Z23 // 6282454350fc
|
||||
VPDPBUSD (SI), Z23, K3, Z23 // 62e24543503e
|
||||
VPDPBUSD 7(SI)(DI*2), Z23, K3, Z23 // 62e2454350bc7e07000000
|
||||
VPDPBUSD Z8, Z6, K3, Z23 // 62c24d4b50f8
|
||||
VPDPBUSD Z28, Z6, K3, Z23 // 62824d4b50fc
|
||||
VPDPBUSD (SI), Z6, K3, Z23 // 62e24d4b503e
|
||||
VPDPBUSD 7(SI)(DI*2), Z6, K3, Z23 // 62e24d4b50bc7e07000000
|
||||
VPDPBUSD Z8, Z23, K3, Z5 // 62d2454350e8
|
||||
VPDPBUSD Z28, Z23, K3, Z5 // 6292454350ec
|
||||
VPDPBUSD (SI), Z23, K3, Z5 // 62f24543502e
|
||||
VPDPBUSD 7(SI)(DI*2), Z23, K3, Z5 // 62f2454350ac7e07000000
|
||||
VPDPBUSD Z8, Z6, K3, Z5 // 62d24d4b50e8
|
||||
VPDPBUSD Z28, Z6, K3, Z5 // 62924d4b50ec
|
||||
VPDPBUSD (SI), Z6, K3, Z5 // 62f24d4b502e
|
||||
VPDPBUSD 7(SI)(DI*2), Z6, K3, Z5 // 62f24d4b50ac7e07000000
|
||||
VPDPBUSDS X25, X14, K4, X19 // 62820d0c51d9
|
||||
VPDPBUSDS X11, X14, K4, X19 // 62c20d0c51db
|
||||
VPDPBUSDS X17, X14, K4, X19 // 62a20d0c51d9
|
||||
VPDPBUSDS 7(AX)(CX*4), X14, K4, X19 // 62e20d0c519c8807000000
|
||||
VPDPBUSDS 7(AX)(CX*1), X14, K4, X19 // 62e20d0c519c0807000000
|
||||
VPDPBUSDS X25, X0, K4, X19 // 62827d0c51d9
|
||||
VPDPBUSDS X11, X0, K4, X19 // 62c27d0c51db
|
||||
VPDPBUSDS X17, X0, K4, X19 // 62a27d0c51d9
|
||||
VPDPBUSDS 7(AX)(CX*4), X0, K4, X19 // 62e27d0c519c8807000000
|
||||
VPDPBUSDS 7(AX)(CX*1), X0, K4, X19 // 62e27d0c519c0807000000
|
||||
VPDPBUSDS X25, X14, K4, X13 // 62120d0c51e9
|
||||
VPDPBUSDS X11, X14, K4, X13 // 62520d0c51eb
|
||||
VPDPBUSDS X17, X14, K4, X13 // 62320d0c51e9
|
||||
VPDPBUSDS 7(AX)(CX*4), X14, K4, X13 // 62720d0c51ac8807000000
|
||||
VPDPBUSDS 7(AX)(CX*1), X14, K4, X13 // 62720d0c51ac0807000000
|
||||
VPDPBUSDS X25, X0, K4, X13 // 62127d0c51e9
|
||||
VPDPBUSDS X11, X0, K4, X13 // 62527d0c51eb
|
||||
VPDPBUSDS X17, X0, K4, X13 // 62327d0c51e9
|
||||
VPDPBUSDS 7(AX)(CX*4), X0, K4, X13 // 62727d0c51ac8807000000
|
||||
VPDPBUSDS 7(AX)(CX*1), X0, K4, X13 // 62727d0c51ac0807000000
|
||||
VPDPBUSDS X25, X14, K4, X2 // 62920d0c51d1
|
||||
VPDPBUSDS X11, X14, K4, X2 // 62d20d0c51d3
|
||||
VPDPBUSDS X17, X14, K4, X2 // 62b20d0c51d1
|
||||
VPDPBUSDS 7(AX)(CX*4), X14, K4, X2 // 62f20d0c51948807000000
|
||||
VPDPBUSDS 7(AX)(CX*1), X14, K4, X2 // 62f20d0c51940807000000
|
||||
VPDPBUSDS X25, X0, K4, X2 // 62927d0c51d1
|
||||
VPDPBUSDS X11, X0, K4, X2 // 62d27d0c51d3
|
||||
VPDPBUSDS X17, X0, K4, X2 // 62b27d0c51d1
|
||||
VPDPBUSDS 7(AX)(CX*4), X0, K4, X2 // 62f27d0c51948807000000
|
||||
VPDPBUSDS 7(AX)(CX*1), X0, K4, X2 // 62f27d0c51940807000000
|
||||
VPDPBUSDS Y28, Y26, K2, Y16 // 62822d2251c4
|
||||
VPDPBUSDS Y1, Y26, K2, Y16 // 62e22d2251c1
|
||||
VPDPBUSDS Y23, Y26, K2, Y16 // 62a22d2251c7
|
||||
VPDPBUSDS (BX), Y26, K2, Y16 // 62e22d225103
|
||||
VPDPBUSDS -17(BP)(SI*1), Y26, K2, Y16 // 62e22d22518435efffffff
|
||||
VPDPBUSDS Y28, Y3, K2, Y16 // 6282652a51c4
|
||||
VPDPBUSDS Y1, Y3, K2, Y16 // 62e2652a51c1
|
||||
VPDPBUSDS Y23, Y3, K2, Y16 // 62a2652a51c7
|
||||
VPDPBUSDS (BX), Y3, K2, Y16 // 62e2652a5103
|
||||
VPDPBUSDS -17(BP)(SI*1), Y3, K2, Y16 // 62e2652a518435efffffff
|
||||
VPDPBUSDS Y28, Y8, K2, Y16 // 62823d2a51c4
|
||||
VPDPBUSDS Y1, Y8, K2, Y16 // 62e23d2a51c1
|
||||
VPDPBUSDS Y23, Y8, K2, Y16 // 62a23d2a51c7
|
||||
VPDPBUSDS (BX), Y8, K2, Y16 // 62e23d2a5103
|
||||
VPDPBUSDS -17(BP)(SI*1), Y8, K2, Y16 // 62e23d2a518435efffffff
|
||||
VPDPBUSDS Y28, Y26, K2, Y12 // 62122d2251e4
|
||||
VPDPBUSDS Y1, Y26, K2, Y12 // 62722d2251e1
|
||||
VPDPBUSDS Y23, Y26, K2, Y12 // 62322d2251e7
|
||||
VPDPBUSDS (BX), Y26, K2, Y12 // 62722d225123
|
||||
VPDPBUSDS -17(BP)(SI*1), Y26, K2, Y12 // 62722d2251a435efffffff
|
||||
VPDPBUSDS Y28, Y3, K2, Y12 // 6212652a51e4
|
||||
VPDPBUSDS Y1, Y3, K2, Y12 // 6272652a51e1
|
||||
VPDPBUSDS Y23, Y3, K2, Y12 // 6232652a51e7
|
||||
VPDPBUSDS (BX), Y3, K2, Y12 // 6272652a5123
|
||||
VPDPBUSDS -17(BP)(SI*1), Y3, K2, Y12 // 6272652a51a435efffffff
|
||||
VPDPBUSDS Y28, Y8, K2, Y12 // 62123d2a51e4
|
||||
VPDPBUSDS Y1, Y8, K2, Y12 // 62723d2a51e1
|
||||
VPDPBUSDS Y23, Y8, K2, Y12 // 62323d2a51e7
|
||||
VPDPBUSDS (BX), Y8, K2, Y12 // 62723d2a5123
|
||||
VPDPBUSDS -17(BP)(SI*1), Y8, K2, Y12 // 62723d2a51a435efffffff
|
||||
VPDPBUSDS Y28, Y26, K2, Y6 // 62922d2251f4
|
||||
VPDPBUSDS Y1, Y26, K2, Y6 // 62f22d2251f1
|
||||
VPDPBUSDS Y23, Y26, K2, Y6 // 62b22d2251f7
|
||||
VPDPBUSDS (BX), Y26, K2, Y6 // 62f22d225133
|
||||
VPDPBUSDS -17(BP)(SI*1), Y26, K2, Y6 // 62f22d2251b435efffffff
|
||||
VPDPBUSDS Y28, Y3, K2, Y6 // 6292652a51f4
|
||||
VPDPBUSDS Y1, Y3, K2, Y6 // 62f2652a51f1
|
||||
VPDPBUSDS Y23, Y3, K2, Y6 // 62b2652a51f7
|
||||
VPDPBUSDS (BX), Y3, K2, Y6 // 62f2652a5133
|
||||
VPDPBUSDS -17(BP)(SI*1), Y3, K2, Y6 // 62f2652a51b435efffffff
|
||||
VPDPBUSDS Y28, Y8, K2, Y6 // 62923d2a51f4
|
||||
VPDPBUSDS Y1, Y8, K2, Y6 // 62f23d2a51f1
|
||||
VPDPBUSDS Y23, Y8, K2, Y6 // 62b23d2a51f7
|
||||
VPDPBUSDS (BX), Y8, K2, Y6 // 62f23d2a5133
|
||||
VPDPBUSDS -17(BP)(SI*1), Y8, K2, Y6 // 62f23d2a51b435efffffff
|
||||
VPDPBUSDS Z12, Z16, K2, Z21 // 62c27d4251ec
|
||||
VPDPBUSDS Z27, Z16, K2, Z21 // 62827d4251eb
|
||||
VPDPBUSDS 17(SP)(BP*8), Z16, K2, Z21 // 62e27d4251acec11000000
|
||||
VPDPBUSDS 17(SP)(BP*4), Z16, K2, Z21 // 62e27d4251acac11000000
|
||||
VPDPBUSDS Z12, Z13, K2, Z21 // 62c2154a51ec
|
||||
VPDPBUSDS Z27, Z13, K2, Z21 // 6282154a51eb
|
||||
VPDPBUSDS 17(SP)(BP*8), Z13, K2, Z21 // 62e2154a51acec11000000
|
||||
VPDPBUSDS 17(SP)(BP*4), Z13, K2, Z21 // 62e2154a51acac11000000
|
||||
VPDPBUSDS Z12, Z16, K2, Z5 // 62d27d4251ec
|
||||
VPDPBUSDS Z27, Z16, K2, Z5 // 62927d4251eb
|
||||
VPDPBUSDS 17(SP)(BP*8), Z16, K2, Z5 // 62f27d4251acec11000000
|
||||
VPDPBUSDS 17(SP)(BP*4), Z16, K2, Z5 // 62f27d4251acac11000000
|
||||
VPDPBUSDS Z12, Z13, K2, Z5 // 62d2154a51ec
|
||||
VPDPBUSDS Z27, Z13, K2, Z5 // 6292154a51eb
|
||||
VPDPBUSDS 17(SP)(BP*8), Z13, K2, Z5 // 62f2154a51acec11000000
|
||||
VPDPBUSDS 17(SP)(BP*4), Z13, K2, Z5 // 62f2154a51acac11000000
|
||||
VPDPWSSD X2, X2, K3, X18 // 62e26d0b52d2
|
||||
VPDPWSSD X27, X2, K3, X18 // 62826d0b52d3
|
||||
VPDPWSSD X26, X2, K3, X18 // 62826d0b52d2
|
||||
VPDPWSSD (SI), X2, K3, X18 // 62e26d0b5216
|
||||
VPDPWSSD 7(SI)(DI*2), X2, K3, X18 // 62e26d0b52947e07000000
|
||||
VPDPWSSD X2, X24, K3, X18 // 62e23d0352d2
|
||||
VPDPWSSD X27, X24, K3, X18 // 62823d0352d3
|
||||
VPDPWSSD X26, X24, K3, X18 // 62823d0352d2
|
||||
VPDPWSSD (SI), X24, K3, X18 // 62e23d035216
|
||||
VPDPWSSD 7(SI)(DI*2), X24, K3, X18 // 62e23d0352947e07000000
|
||||
VPDPWSSD X2, X2, K3, X11 // 62726d0b52da
|
||||
VPDPWSSD X27, X2, K3, X11 // 62126d0b52db
|
||||
VPDPWSSD X26, X2, K3, X11 // 62126d0b52da
|
||||
VPDPWSSD (SI), X2, K3, X11 // 62726d0b521e
|
||||
VPDPWSSD 7(SI)(DI*2), X2, K3, X11 // 62726d0b529c7e07000000
|
||||
VPDPWSSD X2, X24, K3, X11 // 62723d0352da
|
||||
VPDPWSSD X27, X24, K3, X11 // 62123d0352db
|
||||
VPDPWSSD X26, X24, K3, X11 // 62123d0352da
|
||||
VPDPWSSD (SI), X24, K3, X11 // 62723d03521e
|
||||
VPDPWSSD 7(SI)(DI*2), X24, K3, X11 // 62723d03529c7e07000000
|
||||
VPDPWSSD X2, X2, K3, X9 // 62726d0b52ca
|
||||
VPDPWSSD X27, X2, K3, X9 // 62126d0b52cb
|
||||
VPDPWSSD X26, X2, K3, X9 // 62126d0b52ca
|
||||
VPDPWSSD (SI), X2, K3, X9 // 62726d0b520e
|
||||
VPDPWSSD 7(SI)(DI*2), X2, K3, X9 // 62726d0b528c7e07000000
|
||||
VPDPWSSD X2, X24, K3, X9 // 62723d0352ca
|
||||
VPDPWSSD X27, X24, K3, X9 // 62123d0352cb
|
||||
VPDPWSSD X26, X24, K3, X9 // 62123d0352ca
|
||||
VPDPWSSD (SI), X24, K3, X9 // 62723d03520e
|
||||
VPDPWSSD 7(SI)(DI*2), X24, K3, X9 // 62723d03528c7e07000000
|
||||
VPDPWSSD Y8, Y2, K3, Y14 // 62526d2b52f0
|
||||
VPDPWSSD Y9, Y2, K3, Y14 // 62526d2b52f1
|
||||
VPDPWSSD Y22, Y2, K3, Y14 // 62326d2b52f6
|
||||
VPDPWSSD 15(R8)(R14*4), Y2, K3, Y14 // 62126d2b52b4b00f000000
|
||||
VPDPWSSD -7(CX)(DX*4), Y2, K3, Y14 // 62726d2b52b491f9ffffff
|
||||
VPDPWSSD Y8, Y22, K3, Y14 // 62524d2352f0
|
||||
VPDPWSSD Y9, Y22, K3, Y14 // 62524d2352f1
|
||||
VPDPWSSD Y22, Y22, K3, Y14 // 62324d2352f6
|
||||
VPDPWSSD 15(R8)(R14*4), Y22, K3, Y14 // 62124d2352b4b00f000000
|
||||
VPDPWSSD -7(CX)(DX*4), Y22, K3, Y14 // 62724d2352b491f9ffffff
|
||||
VPDPWSSD Y8, Y27, K3, Y14 // 6252252352f0
|
||||
VPDPWSSD Y9, Y27, K3, Y14 // 6252252352f1
|
||||
VPDPWSSD Y22, Y27, K3, Y14 // 6232252352f6
|
||||
VPDPWSSD 15(R8)(R14*4), Y27, K3, Y14 // 6212252352b4b00f000000
|
||||
VPDPWSSD -7(CX)(DX*4), Y27, K3, Y14 // 6272252352b491f9ffffff
|
||||
VPDPWSSD Y8, Y2, K3, Y31 // 62426d2b52f8
|
||||
VPDPWSSD Y9, Y2, K3, Y31 // 62426d2b52f9
|
||||
VPDPWSSD Y22, Y2, K3, Y31 // 62226d2b52fe
|
||||
VPDPWSSD 15(R8)(R14*4), Y2, K3, Y31 // 62026d2b52bcb00f000000
|
||||
VPDPWSSD -7(CX)(DX*4), Y2, K3, Y31 // 62626d2b52bc91f9ffffff
|
||||
VPDPWSSD Y8, Y22, K3, Y31 // 62424d2352f8
|
||||
VPDPWSSD Y9, Y22, K3, Y31 // 62424d2352f9
|
||||
VPDPWSSD Y22, Y22, K3, Y31 // 62224d2352fe
|
||||
VPDPWSSD 15(R8)(R14*4), Y22, K3, Y31 // 62024d2352bcb00f000000
|
||||
VPDPWSSD -7(CX)(DX*4), Y22, K3, Y31 // 62624d2352bc91f9ffffff
|
||||
VPDPWSSD Y8, Y27, K3, Y31 // 6242252352f8
|
||||
VPDPWSSD Y9, Y27, K3, Y31 // 6242252352f9
|
||||
VPDPWSSD Y22, Y27, K3, Y31 // 6222252352fe
|
||||
VPDPWSSD 15(R8)(R14*4), Y27, K3, Y31 // 6202252352bcb00f000000
|
||||
VPDPWSSD -7(CX)(DX*4), Y27, K3, Y31 // 6262252352bc91f9ffffff
|
||||
VPDPWSSD Y8, Y2, K3, Y25 // 62426d2b52c8
|
||||
VPDPWSSD Y9, Y2, K3, Y25 // 62426d2b52c9
|
||||
VPDPWSSD Y22, Y2, K3, Y25 // 62226d2b52ce
|
||||
VPDPWSSD 15(R8)(R14*4), Y2, K3, Y25 // 62026d2b528cb00f000000
|
||||
VPDPWSSD -7(CX)(DX*4), Y2, K3, Y25 // 62626d2b528c91f9ffffff
|
||||
VPDPWSSD Y8, Y22, K3, Y25 // 62424d2352c8
|
||||
VPDPWSSD Y9, Y22, K3, Y25 // 62424d2352c9
|
||||
VPDPWSSD Y22, Y22, K3, Y25 // 62224d2352ce
|
||||
VPDPWSSD 15(R8)(R14*4), Y22, K3, Y25 // 62024d23528cb00f000000
|
||||
VPDPWSSD -7(CX)(DX*4), Y22, K3, Y25 // 62624d23528c91f9ffffff
|
||||
VPDPWSSD Y8, Y27, K3, Y25 // 6242252352c8
|
||||
VPDPWSSD Y9, Y27, K3, Y25 // 6242252352c9
|
||||
VPDPWSSD Y22, Y27, K3, Y25 // 6222252352ce
|
||||
VPDPWSSD 15(R8)(R14*4), Y27, K3, Y25 // 62022523528cb00f000000
|
||||
VPDPWSSD -7(CX)(DX*4), Y27, K3, Y25 // 62622523528c91f9ffffff
|
||||
VPDPWSSD Z25, Z6, K3, Z22 // 62824d4b52f1
|
||||
VPDPWSSD Z12, Z6, K3, Z22 // 62c24d4b52f4
|
||||
VPDPWSSD 7(SI)(DI*4), Z6, K3, Z22 // 62e24d4b52b4be07000000
|
||||
VPDPWSSD -7(DI)(R8*2), Z6, K3, Z22 // 62a24d4b52b447f9ffffff
|
||||
VPDPWSSD Z25, Z8, K3, Z22 // 62823d4b52f1
|
||||
VPDPWSSD Z12, Z8, K3, Z22 // 62c23d4b52f4
|
||||
VPDPWSSD 7(SI)(DI*4), Z8, K3, Z22 // 62e23d4b52b4be07000000
|
||||
VPDPWSSD -7(DI)(R8*2), Z8, K3, Z22 // 62a23d4b52b447f9ffffff
|
||||
VPDPWSSD Z25, Z6, K3, Z11 // 62124d4b52d9
|
||||
VPDPWSSD Z12, Z6, K3, Z11 // 62524d4b52dc
|
||||
VPDPWSSD 7(SI)(DI*4), Z6, K3, Z11 // 62724d4b529cbe07000000
|
||||
VPDPWSSD -7(DI)(R8*2), Z6, K3, Z11 // 62324d4b529c47f9ffffff
|
||||
VPDPWSSD Z25, Z8, K3, Z11 // 62123d4b52d9
|
||||
VPDPWSSD Z12, Z8, K3, Z11 // 62523d4b52dc
|
||||
VPDPWSSD 7(SI)(DI*4), Z8, K3, Z11 // 62723d4b529cbe07000000
|
||||
VPDPWSSD -7(DI)(R8*2), Z8, K3, Z11 // 62323d4b529c47f9ffffff
|
||||
VPDPWSSDS X13, X11, K2, X22 // 62c2250a53f5
|
||||
VPDPWSSDS X6, X11, K2, X22 // 62e2250a53f6
|
||||
VPDPWSSDS X12, X11, K2, X22 // 62c2250a53f4
|
||||
VPDPWSSDS 17(SP)(BP*8), X11, K2, X22 // 62e2250a53b4ec11000000
|
||||
VPDPWSSDS 17(SP)(BP*4), X11, K2, X22 // 62e2250a53b4ac11000000
|
||||
VPDPWSSDS X13, X15, K2, X22 // 62c2050a53f5
|
||||
VPDPWSSDS X6, X15, K2, X22 // 62e2050a53f6
|
||||
VPDPWSSDS X12, X15, K2, X22 // 62c2050a53f4
|
||||
VPDPWSSDS 17(SP)(BP*8), X15, K2, X22 // 62e2050a53b4ec11000000
|
||||
VPDPWSSDS 17(SP)(BP*4), X15, K2, X22 // 62e2050a53b4ac11000000
|
||||
VPDPWSSDS X13, X30, K2, X22 // 62c20d0253f5
|
||||
VPDPWSSDS X6, X30, K2, X22 // 62e20d0253f6
|
||||
VPDPWSSDS X12, X30, K2, X22 // 62c20d0253f4
|
||||
VPDPWSSDS 17(SP)(BP*8), X30, K2, X22 // 62e20d0253b4ec11000000
|
||||
VPDPWSSDS 17(SP)(BP*4), X30, K2, X22 // 62e20d0253b4ac11000000
|
||||
VPDPWSSDS X13, X11, K2, X30 // 6242250a53f5
|
||||
VPDPWSSDS X6, X11, K2, X30 // 6262250a53f6
|
||||
VPDPWSSDS X12, X11, K2, X30 // 6242250a53f4
|
||||
VPDPWSSDS 17(SP)(BP*8), X11, K2, X30 // 6262250a53b4ec11000000
|
||||
VPDPWSSDS 17(SP)(BP*4), X11, K2, X30 // 6262250a53b4ac11000000
|
||||
VPDPWSSDS X13, X15, K2, X30 // 6242050a53f5
|
||||
VPDPWSSDS X6, X15, K2, X30 // 6262050a53f6
|
||||
VPDPWSSDS X12, X15, K2, X30 // 6242050a53f4
|
||||
VPDPWSSDS 17(SP)(BP*8), X15, K2, X30 // 6262050a53b4ec11000000
|
||||
VPDPWSSDS 17(SP)(BP*4), X15, K2, X30 // 6262050a53b4ac11000000
|
||||
VPDPWSSDS X13, X30, K2, X30 // 62420d0253f5
|
||||
VPDPWSSDS X6, X30, K2, X30 // 62620d0253f6
|
||||
VPDPWSSDS X12, X30, K2, X30 // 62420d0253f4
|
||||
VPDPWSSDS 17(SP)(BP*8), X30, K2, X30 // 62620d0253b4ec11000000
|
||||
VPDPWSSDS 17(SP)(BP*4), X30, K2, X30 // 62620d0253b4ac11000000
|
||||
VPDPWSSDS X13, X11, K2, X3 // 62d2250a53dd
|
||||
VPDPWSSDS X6, X11, K2, X3 // 62f2250a53de
|
||||
VPDPWSSDS X12, X11, K2, X3 // 62d2250a53dc
|
||||
VPDPWSSDS 17(SP)(BP*8), X11, K2, X3 // 62f2250a539cec11000000
|
||||
VPDPWSSDS 17(SP)(BP*4), X11, K2, X3 // 62f2250a539cac11000000
|
||||
VPDPWSSDS X13, X15, K2, X3 // 62d2050a53dd
|
||||
VPDPWSSDS X6, X15, K2, X3 // 62f2050a53de
|
||||
VPDPWSSDS X12, X15, K2, X3 // 62d2050a53dc
|
||||
VPDPWSSDS 17(SP)(BP*8), X15, K2, X3 // 62f2050a539cec11000000
|
||||
VPDPWSSDS 17(SP)(BP*4), X15, K2, X3 // 62f2050a539cac11000000
|
||||
VPDPWSSDS X13, X30, K2, X3 // 62d20d0253dd
|
||||
VPDPWSSDS X6, X30, K2, X3 // 62f20d0253de
|
||||
VPDPWSSDS X12, X30, K2, X3 // 62d20d0253dc
|
||||
VPDPWSSDS 17(SP)(BP*8), X30, K2, X3 // 62f20d02539cec11000000
|
||||
VPDPWSSDS 17(SP)(BP*4), X30, K2, X3 // 62f20d02539cac11000000
|
||||
VPDPWSSDS Y0, Y6, K1, Y9 // 62724d2953c8
|
||||
VPDPWSSDS Y19, Y6, K1, Y9 // 62324d2953cb
|
||||
VPDPWSSDS Y31, Y6, K1, Y9 // 62124d2953cf
|
||||
VPDPWSSDS (R8), Y6, K1, Y9 // 62524d295308
|
||||
VPDPWSSDS 15(DX)(BX*2), Y6, K1, Y9 // 62724d29538c5a0f000000
|
||||
VPDPWSSDS Y0, Y1, K1, Y9 // 6272752953c8
|
||||
VPDPWSSDS Y19, Y1, K1, Y9 // 6232752953cb
|
||||
VPDPWSSDS Y31, Y1, K1, Y9 // 6212752953cf
|
||||
VPDPWSSDS (R8), Y1, K1, Y9 // 625275295308
|
||||
VPDPWSSDS 15(DX)(BX*2), Y1, K1, Y9 // 62727529538c5a0f000000
|
||||
VPDPWSSDS Y0, Y9, K1, Y9 // 6272352953c8
|
||||
VPDPWSSDS Y19, Y9, K1, Y9 // 6232352953cb
|
||||
VPDPWSSDS Y31, Y9, K1, Y9 // 6212352953cf
|
||||
VPDPWSSDS (R8), Y9, K1, Y9 // 625235295308
|
||||
VPDPWSSDS 15(DX)(BX*2), Y9, K1, Y9 // 62723529538c5a0f000000
|
||||
VPDPWSSDS Y0, Y6, K1, Y14 // 62724d2953f0
|
||||
VPDPWSSDS Y19, Y6, K1, Y14 // 62324d2953f3
|
||||
VPDPWSSDS Y31, Y6, K1, Y14 // 62124d2953f7
|
||||
VPDPWSSDS (R8), Y6, K1, Y14 // 62524d295330
|
||||
VPDPWSSDS 15(DX)(BX*2), Y6, K1, Y14 // 62724d2953b45a0f000000
|
||||
VPDPWSSDS Y0, Y1, K1, Y14 // 6272752953f0
|
||||
VPDPWSSDS Y19, Y1, K1, Y14 // 6232752953f3
|
||||
VPDPWSSDS Y31, Y1, K1, Y14 // 6212752953f7
|
||||
VPDPWSSDS (R8), Y1, K1, Y14 // 625275295330
|
||||
VPDPWSSDS 15(DX)(BX*2), Y1, K1, Y14 // 6272752953b45a0f000000
|
||||
VPDPWSSDS Y0, Y9, K1, Y14 // 6272352953f0
|
||||
VPDPWSSDS Y19, Y9, K1, Y14 // 6232352953f3
|
||||
VPDPWSSDS Y31, Y9, K1, Y14 // 6212352953f7
|
||||
VPDPWSSDS (R8), Y9, K1, Y14 // 625235295330
|
||||
VPDPWSSDS 15(DX)(BX*2), Y9, K1, Y14 // 6272352953b45a0f000000
|
||||
VPDPWSSDS Y0, Y6, K1, Y1 // 62f24d2953c8
|
||||
VPDPWSSDS Y19, Y6, K1, Y1 // 62b24d2953cb
|
||||
VPDPWSSDS Y31, Y6, K1, Y1 // 62924d2953cf
|
||||
VPDPWSSDS (R8), Y6, K1, Y1 // 62d24d295308
|
||||
VPDPWSSDS 15(DX)(BX*2), Y6, K1, Y1 // 62f24d29538c5a0f000000
|
||||
VPDPWSSDS Y0, Y1, K1, Y1 // 62f2752953c8
|
||||
VPDPWSSDS Y19, Y1, K1, Y1 // 62b2752953cb
|
||||
VPDPWSSDS Y31, Y1, K1, Y1 // 6292752953cf
|
||||
VPDPWSSDS (R8), Y1, K1, Y1 // 62d275295308
|
||||
VPDPWSSDS 15(DX)(BX*2), Y1, K1, Y1 // 62f27529538c5a0f000000
|
||||
VPDPWSSDS Y0, Y9, K1, Y1 // 62f2352953c8
|
||||
VPDPWSSDS Y19, Y9, K1, Y1 // 62b2352953cb
|
||||
VPDPWSSDS Y31, Y9, K1, Y1 // 6292352953cf
|
||||
VPDPWSSDS (R8), Y9, K1, Y1 // 62d235295308
|
||||
VPDPWSSDS 15(DX)(BX*2), Y9, K1, Y1 // 62f23529538c5a0f000000
|
||||
VPDPWSSDS Z6, Z9, K2, Z12 // 6272354a53e6
|
||||
VPDPWSSDS Z25, Z9, K2, Z12 // 6212354a53e1
|
||||
VPDPWSSDS 17(SP), Z9, K2, Z12 // 6272354a53a42411000000
|
||||
VPDPWSSDS -17(BP)(SI*4), Z9, K2, Z12 // 6272354a53a4b5efffffff
|
||||
VPDPWSSDS Z6, Z12, K2, Z12 // 62721d4a53e6
|
||||
VPDPWSSDS Z25, Z12, K2, Z12 // 62121d4a53e1
|
||||
VPDPWSSDS 17(SP), Z12, K2, Z12 // 62721d4a53a42411000000
|
||||
VPDPWSSDS -17(BP)(SI*4), Z12, K2, Z12 // 62721d4a53a4b5efffffff
|
||||
VPDPWSSDS Z6, Z9, K2, Z17 // 62e2354a53ce
|
||||
VPDPWSSDS Z25, Z9, K2, Z17 // 6282354a53c9
|
||||
VPDPWSSDS 17(SP), Z9, K2, Z17 // 62e2354a538c2411000000
|
||||
VPDPWSSDS -17(BP)(SI*4), Z9, K2, Z17 // 62e2354a538cb5efffffff
|
||||
VPDPWSSDS Z6, Z12, K2, Z17 // 62e21d4a53ce
|
||||
VPDPWSSDS Z25, Z12, K2, Z17 // 62821d4a53c9
|
||||
VPDPWSSDS 17(SP), Z12, K2, Z17 // 62e21d4a538c2411000000
|
||||
VPDPWSSDS -17(BP)(SI*4), Z12, K2, Z17 // 62e21d4a538cb5efffffff
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -3,80 +3,80 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512_vpopcntdq(SB), NOSPLIT, $0
|
||||
//TODO: VPOPCNTD X12, K2, X8 // 62527d0a55c4
|
||||
//TODO: VPOPCNTD X16, K2, X8 // 62327d0a55c0
|
||||
//TODO: VPOPCNTD X23, K2, X8 // 62327d0a55c7
|
||||
//TODO: VPOPCNTD (R14), K2, X8 // 62527d0a5506
|
||||
//TODO: VPOPCNTD -7(DI)(R8*8), K2, X8 // 62327d0a5584c7f9ffffff
|
||||
//TODO: VPOPCNTD X12, K2, X26 // 62427d0a55d4
|
||||
//TODO: VPOPCNTD X16, K2, X26 // 62227d0a55d0
|
||||
//TODO: VPOPCNTD X23, K2, X26 // 62227d0a55d7
|
||||
//TODO: VPOPCNTD (R14), K2, X26 // 62427d0a5516
|
||||
//TODO: VPOPCNTD -7(DI)(R8*8), K2, X26 // 62227d0a5594c7f9ffffff
|
||||
//TODO: VPOPCNTD X12, K2, X23 // 62c27d0a55fc
|
||||
//TODO: VPOPCNTD X16, K2, X23 // 62a27d0a55f8
|
||||
//TODO: VPOPCNTD X23, K2, X23 // 62a27d0a55ff
|
||||
//TODO: VPOPCNTD (R14), K2, X23 // 62c27d0a553e
|
||||
//TODO: VPOPCNTD -7(DI)(R8*8), K2, X23 // 62a27d0a55bcc7f9ffffff
|
||||
//TODO: VPOPCNTD Y22, K5, Y26 // 62227d2d55d6
|
||||
//TODO: VPOPCNTD Y3, K5, Y26 // 62627d2d55d3
|
||||
//TODO: VPOPCNTD Y15, K5, Y26 // 62427d2d55d7
|
||||
//TODO: VPOPCNTD -15(R14)(R15*1), K5, Y26 // 62027d2d55943ef1ffffff
|
||||
//TODO: VPOPCNTD -15(BX), K5, Y26 // 62627d2d5593f1ffffff
|
||||
//TODO: VPOPCNTD Y22, K5, Y30 // 62227d2d55f6
|
||||
//TODO: VPOPCNTD Y3, K5, Y30 // 62627d2d55f3
|
||||
//TODO: VPOPCNTD Y15, K5, Y30 // 62427d2d55f7
|
||||
//TODO: VPOPCNTD -15(R14)(R15*1), K5, Y30 // 62027d2d55b43ef1ffffff
|
||||
//TODO: VPOPCNTD -15(BX), K5, Y30 // 62627d2d55b3f1ffffff
|
||||
//TODO: VPOPCNTD Y22, K5, Y12 // 62327d2d55e6
|
||||
//TODO: VPOPCNTD Y3, K5, Y12 // 62727d2d55e3
|
||||
//TODO: VPOPCNTD Y15, K5, Y12 // 62527d2d55e7
|
||||
//TODO: VPOPCNTD -15(R14)(R15*1), K5, Y12 // 62127d2d55a43ef1ffffff
|
||||
//TODO: VPOPCNTD -15(BX), K5, Y12 // 62727d2d55a3f1ffffff
|
||||
//TODO: VPOPCNTD Z2, K3, Z22 // 62e27d4b55f2
|
||||
//TODO: VPOPCNTD Z31, K3, Z22 // 62827d4b55f7
|
||||
//TODO: VPOPCNTD 7(SI)(DI*4), K3, Z22 // 62e27d4b55b4be07000000
|
||||
//TODO: VPOPCNTD -7(DI)(R8*2), K3, Z22 // 62a27d4b55b447f9ffffff
|
||||
//TODO: VPOPCNTD Z2, K3, Z7 // 62f27d4b55fa
|
||||
//TODO: VPOPCNTD Z31, K3, Z7 // 62927d4b55ff
|
||||
//TODO: VPOPCNTD 7(SI)(DI*4), K3, Z7 // 62f27d4b55bcbe07000000
|
||||
//TODO: VPOPCNTD -7(DI)(R8*2), K3, Z7 // 62b27d4b55bc47f9ffffff
|
||||
//TODO: VPOPCNTQ X24, K4, X23 // 6282fd0c55f8
|
||||
//TODO: VPOPCNTQ X14, K4, X23 // 62c2fd0c55fe
|
||||
//TODO: VPOPCNTQ X0, K4, X23 // 62e2fd0c55f8
|
||||
//TODO: VPOPCNTQ 99(R15)(R15*4), K4, X23 // 6282fd0c55bcbf63000000
|
||||
//TODO: VPOPCNTQ 15(DX), K4, X23 // 62e2fd0c55ba0f000000
|
||||
//TODO: VPOPCNTQ X24, K4, X11 // 6212fd0c55d8
|
||||
//TODO: VPOPCNTQ X14, K4, X11 // 6252fd0c55de
|
||||
//TODO: VPOPCNTQ X0, K4, X11 // 6272fd0c55d8
|
||||
//TODO: VPOPCNTQ 99(R15)(R15*4), K4, X11 // 6212fd0c559cbf63000000
|
||||
//TODO: VPOPCNTQ 15(DX), K4, X11 // 6272fd0c559a0f000000
|
||||
//TODO: VPOPCNTQ X24, K4, X31 // 6202fd0c55f8
|
||||
//TODO: VPOPCNTQ X14, K4, X31 // 6242fd0c55fe
|
||||
//TODO: VPOPCNTQ X0, K4, X31 // 6262fd0c55f8
|
||||
//TODO: VPOPCNTQ 99(R15)(R15*4), K4, X31 // 6202fd0c55bcbf63000000
|
||||
//TODO: VPOPCNTQ 15(DX), K4, X31 // 6262fd0c55ba0f000000
|
||||
//TODO: VPOPCNTQ Y5, K2, Y1 // 62f2fd2a55cd
|
||||
//TODO: VPOPCNTQ Y17, K2, Y1 // 62b2fd2a55c9
|
||||
//TODO: VPOPCNTQ Y13, K2, Y1 // 62d2fd2a55cd
|
||||
//TODO: VPOPCNTQ 7(AX)(CX*4), K2, Y1 // 62f2fd2a558c8807000000
|
||||
//TODO: VPOPCNTQ 7(AX)(CX*1), K2, Y1 // 62f2fd2a558c0807000000
|
||||
//TODO: VPOPCNTQ Y5, K2, Y27 // 6262fd2a55dd
|
||||
//TODO: VPOPCNTQ Y17, K2, Y27 // 6222fd2a55d9
|
||||
//TODO: VPOPCNTQ Y13, K2, Y27 // 6242fd2a55dd
|
||||
//TODO: VPOPCNTQ 7(AX)(CX*4), K2, Y27 // 6262fd2a559c8807000000
|
||||
//TODO: VPOPCNTQ 7(AX)(CX*1), K2, Y27 // 6262fd2a559c0807000000
|
||||
//TODO: VPOPCNTQ Y5, K2, Y19 // 62e2fd2a55dd
|
||||
//TODO: VPOPCNTQ Y17, K2, Y19 // 62a2fd2a55d9
|
||||
//TODO: VPOPCNTQ Y13, K2, Y19 // 62c2fd2a55dd
|
||||
//TODO: VPOPCNTQ 7(AX)(CX*4), K2, Y19 // 62e2fd2a559c8807000000
|
||||
//TODO: VPOPCNTQ 7(AX)(CX*1), K2, Y19 // 62e2fd2a559c0807000000
|
||||
//TODO: VPOPCNTQ Z1, K2, Z20 // 62e2fd4a55e1
|
||||
//TODO: VPOPCNTQ Z3, K2, Z20 // 62e2fd4a55e3
|
||||
//TODO: VPOPCNTQ 17(SP), K2, Z20 // 62e2fd4a55a42411000000
|
||||
//TODO: VPOPCNTQ -17(BP)(SI*4), K2, Z20 // 62e2fd4a55a4b5efffffff
|
||||
//TODO: VPOPCNTQ Z1, K2, Z9 // 6272fd4a55c9
|
||||
//TODO: VPOPCNTQ Z3, K2, Z9 // 6272fd4a55cb
|
||||
//TODO: VPOPCNTQ 17(SP), K2, Z9 // 6272fd4a558c2411000000
|
||||
//TODO: VPOPCNTQ -17(BP)(SI*4), K2, Z9 // 6272fd4a558cb5efffffff
|
||||
VPOPCNTD X12, K2, X8 // 62527d0a55c4
|
||||
VPOPCNTD X16, K2, X8 // 62327d0a55c0
|
||||
VPOPCNTD X23, K2, X8 // 62327d0a55c7
|
||||
VPOPCNTD (R14), K2, X8 // 62527d0a5506
|
||||
VPOPCNTD -7(DI)(R8*8), K2, X8 // 62327d0a5584c7f9ffffff
|
||||
VPOPCNTD X12, K2, X26 // 62427d0a55d4
|
||||
VPOPCNTD X16, K2, X26 // 62227d0a55d0
|
||||
VPOPCNTD X23, K2, X26 // 62227d0a55d7
|
||||
VPOPCNTD (R14), K2, X26 // 62427d0a5516
|
||||
VPOPCNTD -7(DI)(R8*8), K2, X26 // 62227d0a5594c7f9ffffff
|
||||
VPOPCNTD X12, K2, X23 // 62c27d0a55fc
|
||||
VPOPCNTD X16, K2, X23 // 62a27d0a55f8
|
||||
VPOPCNTD X23, K2, X23 // 62a27d0a55ff
|
||||
VPOPCNTD (R14), K2, X23 // 62c27d0a553e
|
||||
VPOPCNTD -7(DI)(R8*8), K2, X23 // 62a27d0a55bcc7f9ffffff
|
||||
VPOPCNTD Y22, K5, Y26 // 62227d2d55d6
|
||||
VPOPCNTD Y3, K5, Y26 // 62627d2d55d3
|
||||
VPOPCNTD Y15, K5, Y26 // 62427d2d55d7
|
||||
VPOPCNTD -15(R14)(R15*1), K5, Y26 // 62027d2d55943ef1ffffff
|
||||
VPOPCNTD -15(BX), K5, Y26 // 62627d2d5593f1ffffff
|
||||
VPOPCNTD Y22, K5, Y30 // 62227d2d55f6
|
||||
VPOPCNTD Y3, K5, Y30 // 62627d2d55f3
|
||||
VPOPCNTD Y15, K5, Y30 // 62427d2d55f7
|
||||
VPOPCNTD -15(R14)(R15*1), K5, Y30 // 62027d2d55b43ef1ffffff
|
||||
VPOPCNTD -15(BX), K5, Y30 // 62627d2d55b3f1ffffff
|
||||
VPOPCNTD Y22, K5, Y12 // 62327d2d55e6
|
||||
VPOPCNTD Y3, K5, Y12 // 62727d2d55e3
|
||||
VPOPCNTD Y15, K5, Y12 // 62527d2d55e7
|
||||
VPOPCNTD -15(R14)(R15*1), K5, Y12 // 62127d2d55a43ef1ffffff
|
||||
VPOPCNTD -15(BX), K5, Y12 // 62727d2d55a3f1ffffff
|
||||
VPOPCNTD Z2, K3, Z22 // 62e27d4b55f2
|
||||
VPOPCNTD Z31, K3, Z22 // 62827d4b55f7
|
||||
VPOPCNTD 7(SI)(DI*4), K3, Z22 // 62e27d4b55b4be07000000
|
||||
VPOPCNTD -7(DI)(R8*2), K3, Z22 // 62a27d4b55b447f9ffffff
|
||||
VPOPCNTD Z2, K3, Z7 // 62f27d4b55fa
|
||||
VPOPCNTD Z31, K3, Z7 // 62927d4b55ff
|
||||
VPOPCNTD 7(SI)(DI*4), K3, Z7 // 62f27d4b55bcbe07000000
|
||||
VPOPCNTD -7(DI)(R8*2), K3, Z7 // 62b27d4b55bc47f9ffffff
|
||||
VPOPCNTQ X24, K4, X23 // 6282fd0c55f8
|
||||
VPOPCNTQ X14, K4, X23 // 62c2fd0c55fe
|
||||
VPOPCNTQ X0, K4, X23 // 62e2fd0c55f8
|
||||
VPOPCNTQ 99(R15)(R15*4), K4, X23 // 6282fd0c55bcbf63000000
|
||||
VPOPCNTQ 15(DX), K4, X23 // 62e2fd0c55ba0f000000
|
||||
VPOPCNTQ X24, K4, X11 // 6212fd0c55d8
|
||||
VPOPCNTQ X14, K4, X11 // 6252fd0c55de
|
||||
VPOPCNTQ X0, K4, X11 // 6272fd0c55d8
|
||||
VPOPCNTQ 99(R15)(R15*4), K4, X11 // 6212fd0c559cbf63000000
|
||||
VPOPCNTQ 15(DX), K4, X11 // 6272fd0c559a0f000000
|
||||
VPOPCNTQ X24, K4, X31 // 6202fd0c55f8
|
||||
VPOPCNTQ X14, K4, X31 // 6242fd0c55fe
|
||||
VPOPCNTQ X0, K4, X31 // 6262fd0c55f8
|
||||
VPOPCNTQ 99(R15)(R15*4), K4, X31 // 6202fd0c55bcbf63000000
|
||||
VPOPCNTQ 15(DX), K4, X31 // 6262fd0c55ba0f000000
|
||||
VPOPCNTQ Y5, K2, Y1 // 62f2fd2a55cd
|
||||
VPOPCNTQ Y17, K2, Y1 // 62b2fd2a55c9
|
||||
VPOPCNTQ Y13, K2, Y1 // 62d2fd2a55cd
|
||||
VPOPCNTQ 7(AX)(CX*4), K2, Y1 // 62f2fd2a558c8807000000
|
||||
VPOPCNTQ 7(AX)(CX*1), K2, Y1 // 62f2fd2a558c0807000000
|
||||
VPOPCNTQ Y5, K2, Y27 // 6262fd2a55dd
|
||||
VPOPCNTQ Y17, K2, Y27 // 6222fd2a55d9
|
||||
VPOPCNTQ Y13, K2, Y27 // 6242fd2a55dd
|
||||
VPOPCNTQ 7(AX)(CX*4), K2, Y27 // 6262fd2a559c8807000000
|
||||
VPOPCNTQ 7(AX)(CX*1), K2, Y27 // 6262fd2a559c0807000000
|
||||
VPOPCNTQ Y5, K2, Y19 // 62e2fd2a55dd
|
||||
VPOPCNTQ Y17, K2, Y19 // 62a2fd2a55d9
|
||||
VPOPCNTQ Y13, K2, Y19 // 62c2fd2a55dd
|
||||
VPOPCNTQ 7(AX)(CX*4), K2, Y19 // 62e2fd2a559c8807000000
|
||||
VPOPCNTQ 7(AX)(CX*1), K2, Y19 // 62e2fd2a559c0807000000
|
||||
VPOPCNTQ Z1, K2, Z20 // 62e2fd4a55e1
|
||||
VPOPCNTQ Z3, K2, Z20 // 62e2fd4a55e3
|
||||
VPOPCNTQ 17(SP), K2, Z20 // 62e2fd4a55a42411000000
|
||||
VPOPCNTQ -17(BP)(SI*4), K2, Z20 // 62e2fd4a55a4b5efffffff
|
||||
VPOPCNTQ Z1, K2, Z9 // 6272fd4a55c9
|
||||
VPOPCNTQ Z3, K2, Z9 // 6272fd4a55cb
|
||||
VPOPCNTQ 17(SP), K2, Z9 // 6272fd4a558c2411000000
|
||||
VPOPCNTQ -17(BP)(SI*4), K2, Z9 // 6272fd4a558cb5efffffff
|
||||
RET
|
||||
|
|
|
|||
3866
src/cmd/asm/internal/asm/testdata/avx512enc/avx512bw.s
vendored
3866
src/cmd/asm/internal/asm/testdata/avx512enc/avx512bw.s
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -3,188 +3,188 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512cd(SB), NOSPLIT, $0
|
||||
//TODO: VPBROADCASTMB2Q K1, X25 // 6262fe082ac9
|
||||
//TODO: VPBROADCASTMB2Q K5, X25 // 6262fe082acd
|
||||
//TODO: VPBROADCASTMB2Q K1, X11 // 6272fe082ad9
|
||||
//TODO: VPBROADCASTMB2Q K5, X11 // 6272fe082add
|
||||
//TODO: VPBROADCASTMB2Q K1, X17 // 62e2fe082ac9
|
||||
//TODO: VPBROADCASTMB2Q K5, X17 // 62e2fe082acd
|
||||
//TODO: VPBROADCASTMB2Q K3, Y0 // 62f2fe282ac3
|
||||
//TODO: VPBROADCASTMB2Q K1, Y0 // 62f2fe282ac1
|
||||
//TODO: VPBROADCASTMB2Q K3, Y19 // 62e2fe282adb
|
||||
//TODO: VPBROADCASTMB2Q K1, Y19 // 62e2fe282ad9
|
||||
//TODO: VPBROADCASTMB2Q K3, Y31 // 6262fe282afb
|
||||
//TODO: VPBROADCASTMB2Q K1, Y31 // 6262fe282af9
|
||||
//TODO: VPBROADCASTMB2Q K5, Z21 // 62e2fe482aed
|
||||
//TODO: VPBROADCASTMB2Q K4, Z21 // 62e2fe482aec
|
||||
//TODO: VPBROADCASTMB2Q K5, Z8 // 6272fe482ac5
|
||||
//TODO: VPBROADCASTMB2Q K4, Z8 // 6272fe482ac4
|
||||
//TODO: VPBROADCASTMW2D K7, X18 // 62e27e083ad7
|
||||
//TODO: VPBROADCASTMW2D K6, X18 // 62e27e083ad6
|
||||
//TODO: VPBROADCASTMW2D K7, X11 // 62727e083adf
|
||||
//TODO: VPBROADCASTMW2D K6, X11 // 62727e083ade
|
||||
//TODO: VPBROADCASTMW2D K7, X9 // 62727e083acf
|
||||
//TODO: VPBROADCASTMW2D K6, X9 // 62727e083ace
|
||||
//TODO: VPBROADCASTMW2D K4, Y22 // 62e27e283af4
|
||||
//TODO: VPBROADCASTMW2D K6, Y22 // 62e27e283af6
|
||||
//TODO: VPBROADCASTMW2D K4, Y9 // 62727e283acc
|
||||
//TODO: VPBROADCASTMW2D K6, Y9 // 62727e283ace
|
||||
//TODO: VPBROADCASTMW2D K4, Y23 // 62e27e283afc
|
||||
//TODO: VPBROADCASTMW2D K6, Y23 // 62e27e283afe
|
||||
//TODO: VPBROADCASTMW2D K0, Z16 // 62e27e483ac0
|
||||
//TODO: VPBROADCASTMW2D K7, Z16 // 62e27e483ac7
|
||||
//TODO: VPBROADCASTMW2D K0, Z9 // 62727e483ac8
|
||||
//TODO: VPBROADCASTMW2D K7, Z9 // 62727e483acf
|
||||
//TODO: VPCONFLICTD X6, K6, X6 // 62f27d0ec4f6
|
||||
//TODO: VPCONFLICTD X1, K6, X6 // 62f27d0ec4f1
|
||||
//TODO: VPCONFLICTD X8, K6, X6 // 62d27d0ec4f0
|
||||
//TODO: VPCONFLICTD 15(R8), K6, X6 // 62d27d0ec4b00f000000
|
||||
//TODO: VPCONFLICTD (BP), K6, X6 // 62f27d0ec47500
|
||||
//TODO: VPCONFLICTD X6, K6, X17 // 62e27d0ec4ce
|
||||
//TODO: VPCONFLICTD X1, K6, X17 // 62e27d0ec4c9
|
||||
//TODO: VPCONFLICTD X8, K6, X17 // 62c27d0ec4c8
|
||||
//TODO: VPCONFLICTD 15(R8), K6, X17 // 62c27d0ec4880f000000
|
||||
//TODO: VPCONFLICTD (BP), K6, X17 // 62e27d0ec44d00
|
||||
//TODO: VPCONFLICTD X6, K6, X28 // 62627d0ec4e6
|
||||
//TODO: VPCONFLICTD X1, K6, X28 // 62627d0ec4e1
|
||||
//TODO: VPCONFLICTD X8, K6, X28 // 62427d0ec4e0
|
||||
//TODO: VPCONFLICTD 15(R8), K6, X28 // 62427d0ec4a00f000000
|
||||
//TODO: VPCONFLICTD (BP), K6, X28 // 62627d0ec46500
|
||||
//TODO: VPCONFLICTD Y14, K3, Y2 // 62d27d2bc4d6
|
||||
//TODO: VPCONFLICTD Y8, K3, Y2 // 62d27d2bc4d0
|
||||
//TODO: VPCONFLICTD Y20, K3, Y2 // 62b27d2bc4d4
|
||||
//TODO: VPCONFLICTD -7(CX), K3, Y2 // 62f27d2bc491f9ffffff
|
||||
//TODO: VPCONFLICTD 15(DX)(BX*4), K3, Y2 // 62f27d2bc4949a0f000000
|
||||
//TODO: VPCONFLICTD Y14, K3, Y7 // 62d27d2bc4fe
|
||||
//TODO: VPCONFLICTD Y8, K3, Y7 // 62d27d2bc4f8
|
||||
//TODO: VPCONFLICTD Y20, K3, Y7 // 62b27d2bc4fc
|
||||
//TODO: VPCONFLICTD -7(CX), K3, Y7 // 62f27d2bc4b9f9ffffff
|
||||
//TODO: VPCONFLICTD 15(DX)(BX*4), K3, Y7 // 62f27d2bc4bc9a0f000000
|
||||
//TODO: VPCONFLICTD Y14, K3, Y21 // 62c27d2bc4ee
|
||||
//TODO: VPCONFLICTD Y8, K3, Y21 // 62c27d2bc4e8
|
||||
//TODO: VPCONFLICTD Y20, K3, Y21 // 62a27d2bc4ec
|
||||
//TODO: VPCONFLICTD -7(CX), K3, Y21 // 62e27d2bc4a9f9ffffff
|
||||
//TODO: VPCONFLICTD 15(DX)(BX*4), K3, Y21 // 62e27d2bc4ac9a0f000000
|
||||
//TODO: VPCONFLICTD Z11, K7, Z21 // 62c27d4fc4eb
|
||||
//TODO: VPCONFLICTD Z25, K7, Z21 // 62827d4fc4e9
|
||||
//TODO: VPCONFLICTD -15(R14)(R15*1), K7, Z21 // 62827d4fc4ac3ef1ffffff
|
||||
//TODO: VPCONFLICTD -15(BX), K7, Z21 // 62e27d4fc4abf1ffffff
|
||||
//TODO: VPCONFLICTD Z11, K7, Z13 // 62527d4fc4eb
|
||||
//TODO: VPCONFLICTD Z25, K7, Z13 // 62127d4fc4e9
|
||||
//TODO: VPCONFLICTD -15(R14)(R15*1), K7, Z13 // 62127d4fc4ac3ef1ffffff
|
||||
//TODO: VPCONFLICTD -15(BX), K7, Z13 // 62727d4fc4abf1ffffff
|
||||
//TODO: VPCONFLICTQ X11, K4, X8 // 6252fd0cc4c3
|
||||
//TODO: VPCONFLICTQ X16, K4, X8 // 6232fd0cc4c0
|
||||
//TODO: VPCONFLICTQ X6, K4, X8 // 6272fd0cc4c6
|
||||
//TODO: VPCONFLICTQ 15(R8)(R14*8), K4, X8 // 6212fd0cc484f00f000000
|
||||
//TODO: VPCONFLICTQ -15(R14)(R15*2), K4, X8 // 6212fd0cc4847ef1ffffff
|
||||
//TODO: VPCONFLICTQ X11, K4, X6 // 62d2fd0cc4f3
|
||||
//TODO: VPCONFLICTQ X16, K4, X6 // 62b2fd0cc4f0
|
||||
//TODO: VPCONFLICTQ X6, K4, X6 // 62f2fd0cc4f6
|
||||
//TODO: VPCONFLICTQ 15(R8)(R14*8), K4, X6 // 6292fd0cc4b4f00f000000
|
||||
//TODO: VPCONFLICTQ -15(R14)(R15*2), K4, X6 // 6292fd0cc4b47ef1ffffff
|
||||
//TODO: VPCONFLICTQ X11, K4, X0 // 62d2fd0cc4c3
|
||||
//TODO: VPCONFLICTQ X16, K4, X0 // 62b2fd0cc4c0
|
||||
//TODO: VPCONFLICTQ X6, K4, X0 // 62f2fd0cc4c6
|
||||
//TODO: VPCONFLICTQ 15(R8)(R14*8), K4, X0 // 6292fd0cc484f00f000000
|
||||
//TODO: VPCONFLICTQ -15(R14)(R15*2), K4, X0 // 6292fd0cc4847ef1ffffff
|
||||
//TODO: VPCONFLICTQ Y5, K4, Y11 // 6272fd2cc4dd
|
||||
//TODO: VPCONFLICTQ Y18, K4, Y11 // 6232fd2cc4da
|
||||
//TODO: VPCONFLICTQ Y20, K4, Y11 // 6232fd2cc4dc
|
||||
//TODO: VPCONFLICTQ 99(R15)(R15*8), K4, Y11 // 6212fd2cc49cff63000000
|
||||
//TODO: VPCONFLICTQ 7(AX)(CX*8), K4, Y11 // 6272fd2cc49cc807000000
|
||||
//TODO: VPCONFLICTQ Y5, K4, Y24 // 6262fd2cc4c5
|
||||
//TODO: VPCONFLICTQ Y18, K4, Y24 // 6222fd2cc4c2
|
||||
//TODO: VPCONFLICTQ Y20, K4, Y24 // 6222fd2cc4c4
|
||||
//TODO: VPCONFLICTQ 99(R15)(R15*8), K4, Y24 // 6202fd2cc484ff63000000
|
||||
//TODO: VPCONFLICTQ 7(AX)(CX*8), K4, Y24 // 6262fd2cc484c807000000
|
||||
//TODO: VPCONFLICTQ Y5, K4, Y1 // 62f2fd2cc4cd
|
||||
//TODO: VPCONFLICTQ Y18, K4, Y1 // 62b2fd2cc4ca
|
||||
//TODO: VPCONFLICTQ Y20, K4, Y1 // 62b2fd2cc4cc
|
||||
//TODO: VPCONFLICTQ 99(R15)(R15*8), K4, Y1 // 6292fd2cc48cff63000000
|
||||
//TODO: VPCONFLICTQ 7(AX)(CX*8), K4, Y1 // 62f2fd2cc48cc807000000
|
||||
//TODO: VPCONFLICTQ Z27, K7, Z3 // 6292fd4fc4db
|
||||
//TODO: VPCONFLICTQ Z15, K7, Z3 // 62d2fd4fc4df
|
||||
//TODO: VPCONFLICTQ 7(AX)(CX*4), K7, Z3 // 62f2fd4fc49c8807000000
|
||||
//TODO: VPCONFLICTQ 7(AX)(CX*1), K7, Z3 // 62f2fd4fc49c0807000000
|
||||
//TODO: VPCONFLICTQ Z27, K7, Z12 // 6212fd4fc4e3
|
||||
//TODO: VPCONFLICTQ Z15, K7, Z12 // 6252fd4fc4e7
|
||||
//TODO: VPCONFLICTQ 7(AX)(CX*4), K7, Z12 // 6272fd4fc4a48807000000
|
||||
//TODO: VPCONFLICTQ 7(AX)(CX*1), K7, Z12 // 6272fd4fc4a40807000000
|
||||
//TODO: VPLZCNTD X3, K3, X17 // 62e27d0b44cb
|
||||
//TODO: VPLZCNTD X26, K3, X17 // 62827d0b44ca
|
||||
//TODO: VPLZCNTD X23, K3, X17 // 62a27d0b44cf
|
||||
//TODO: VPLZCNTD 15(DX)(BX*1), K3, X17 // 62e27d0b448c1a0f000000
|
||||
//TODO: VPLZCNTD -7(CX)(DX*2), K3, X17 // 62e27d0b448c51f9ffffff
|
||||
//TODO: VPLZCNTD X3, K3, X15 // 62727d0b44fb
|
||||
//TODO: VPLZCNTD X26, K3, X15 // 62127d0b44fa
|
||||
//TODO: VPLZCNTD X23, K3, X15 // 62327d0b44ff
|
||||
//TODO: VPLZCNTD 15(DX)(BX*1), K3, X15 // 62727d0b44bc1a0f000000
|
||||
//TODO: VPLZCNTD -7(CX)(DX*2), K3, X15 // 62727d0b44bc51f9ffffff
|
||||
//TODO: VPLZCNTD X3, K3, X8 // 62727d0b44c3
|
||||
//TODO: VPLZCNTD X26, K3, X8 // 62127d0b44c2
|
||||
//TODO: VPLZCNTD X23, K3, X8 // 62327d0b44c7
|
||||
//TODO: VPLZCNTD 15(DX)(BX*1), K3, X8 // 62727d0b44841a0f000000
|
||||
//TODO: VPLZCNTD -7(CX)(DX*2), K3, X8 // 62727d0b448451f9ffffff
|
||||
//TODO: VPLZCNTD Y5, K3, Y20 // 62e27d2b44e5
|
||||
//TODO: VPLZCNTD Y28, K3, Y20 // 62827d2b44e4
|
||||
//TODO: VPLZCNTD Y7, K3, Y20 // 62e27d2b44e7
|
||||
//TODO: VPLZCNTD (BX), K3, Y20 // 62e27d2b4423
|
||||
//TODO: VPLZCNTD -17(BP)(SI*1), K3, Y20 // 62e27d2b44a435efffffff
|
||||
//TODO: VPLZCNTD Y5, K3, Y12 // 62727d2b44e5
|
||||
//TODO: VPLZCNTD Y28, K3, Y12 // 62127d2b44e4
|
||||
//TODO: VPLZCNTD Y7, K3, Y12 // 62727d2b44e7
|
||||
//TODO: VPLZCNTD (BX), K3, Y12 // 62727d2b4423
|
||||
//TODO: VPLZCNTD -17(BP)(SI*1), K3, Y12 // 62727d2b44a435efffffff
|
||||
//TODO: VPLZCNTD Y5, K3, Y3 // 62f27d2b44dd
|
||||
//TODO: VPLZCNTD Y28, K3, Y3 // 62927d2b44dc
|
||||
//TODO: VPLZCNTD Y7, K3, Y3 // 62f27d2b44df
|
||||
//TODO: VPLZCNTD (BX), K3, Y3 // 62f27d2b441b
|
||||
//TODO: VPLZCNTD -17(BP)(SI*1), K3, Y3 // 62f27d2b449c35efffffff
|
||||
//TODO: VPLZCNTD Z21, K3, Z3 // 62b27d4b44dd
|
||||
//TODO: VPLZCNTD Z13, K3, Z3 // 62d27d4b44dd
|
||||
//TODO: VPLZCNTD 17(SP)(BP*8), K3, Z3 // 62f27d4b449cec11000000
|
||||
//TODO: VPLZCNTD 17(SP)(BP*4), K3, Z3 // 62f27d4b449cac11000000
|
||||
//TODO: VPLZCNTD Z21, K3, Z0 // 62b27d4b44c5
|
||||
//TODO: VPLZCNTD Z13, K3, Z0 // 62d27d4b44c5
|
||||
//TODO: VPLZCNTD 17(SP)(BP*8), K3, Z0 // 62f27d4b4484ec11000000
|
||||
//TODO: VPLZCNTD 17(SP)(BP*4), K3, Z0 // 62f27d4b4484ac11000000
|
||||
//TODO: VPLZCNTQ X9, K2, X13 // 6252fd0a44e9
|
||||
//TODO: VPLZCNTQ X15, K2, X13 // 6252fd0a44ef
|
||||
//TODO: VPLZCNTQ X26, K2, X13 // 6212fd0a44ea
|
||||
//TODO: VPLZCNTQ -17(BP), K2, X13 // 6272fd0a44adefffffff
|
||||
//TODO: VPLZCNTQ -15(R14)(R15*8), K2, X13 // 6212fd0a44acfef1ffffff
|
||||
//TODO: VPLZCNTQ X9, K2, X28 // 6242fd0a44e1
|
||||
//TODO: VPLZCNTQ X15, K2, X28 // 6242fd0a44e7
|
||||
//TODO: VPLZCNTQ X26, K2, X28 // 6202fd0a44e2
|
||||
//TODO: VPLZCNTQ -17(BP), K2, X28 // 6262fd0a44a5efffffff
|
||||
//TODO: VPLZCNTQ -15(R14)(R15*8), K2, X28 // 6202fd0a44a4fef1ffffff
|
||||
//TODO: VPLZCNTQ X9, K2, X24 // 6242fd0a44c1
|
||||
//TODO: VPLZCNTQ X15, K2, X24 // 6242fd0a44c7
|
||||
//TODO: VPLZCNTQ X26, K2, X24 // 6202fd0a44c2
|
||||
//TODO: VPLZCNTQ -17(BP), K2, X24 // 6262fd0a4485efffffff
|
||||
//TODO: VPLZCNTQ -15(R14)(R15*8), K2, X24 // 6202fd0a4484fef1ffffff
|
||||
//TODO: VPLZCNTQ Y12, K1, Y0 // 62d2fd2944c4
|
||||
//TODO: VPLZCNTQ Y1, K1, Y0 // 62f2fd2944c1
|
||||
//TODO: VPLZCNTQ Y14, K1, Y0 // 62d2fd2944c6
|
||||
//TODO: VPLZCNTQ 15(R8)(R14*4), K1, Y0 // 6292fd294484b00f000000
|
||||
//TODO: VPLZCNTQ -7(CX)(DX*4), K1, Y0 // 62f2fd29448491f9ffffff
|
||||
//TODO: VPLZCNTQ Y12, K1, Y22 // 62c2fd2944f4
|
||||
//TODO: VPLZCNTQ Y1, K1, Y22 // 62e2fd2944f1
|
||||
//TODO: VPLZCNTQ Y14, K1, Y22 // 62c2fd2944f6
|
||||
//TODO: VPLZCNTQ 15(R8)(R14*4), K1, Y22 // 6282fd2944b4b00f000000
|
||||
//TODO: VPLZCNTQ -7(CX)(DX*4), K1, Y22 // 62e2fd2944b491f9ffffff
|
||||
//TODO: VPLZCNTQ Y12, K1, Y13 // 6252fd2944ec
|
||||
//TODO: VPLZCNTQ Y1, K1, Y13 // 6272fd2944e9
|
||||
//TODO: VPLZCNTQ Y14, K1, Y13 // 6252fd2944ee
|
||||
//TODO: VPLZCNTQ 15(R8)(R14*4), K1, Y13 // 6212fd2944acb00f000000
|
||||
//TODO: VPLZCNTQ -7(CX)(DX*4), K1, Y13 // 6272fd2944ac91f9ffffff
|
||||
//TODO: VPLZCNTQ Z3, K2, Z11 // 6272fd4a44db
|
||||
//TODO: VPLZCNTQ Z12, K2, Z11 // 6252fd4a44dc
|
||||
//TODO: VPLZCNTQ 7(SI)(DI*4), K2, Z11 // 6272fd4a449cbe07000000
|
||||
//TODO: VPLZCNTQ -7(DI)(R8*2), K2, Z11 // 6232fd4a449c47f9ffffff
|
||||
//TODO: VPLZCNTQ Z3, K2, Z25 // 6262fd4a44cb
|
||||
//TODO: VPLZCNTQ Z12, K2, Z25 // 6242fd4a44cc
|
||||
//TODO: VPLZCNTQ 7(SI)(DI*4), K2, Z25 // 6262fd4a448cbe07000000
|
||||
//TODO: VPLZCNTQ -7(DI)(R8*2), K2, Z25 // 6222fd4a448c47f9ffffff
|
||||
VPBROADCASTMB2Q K1, X25 // 6262fe082ac9
|
||||
VPBROADCASTMB2Q K5, X25 // 6262fe082acd
|
||||
VPBROADCASTMB2Q K1, X11 // 6272fe082ad9
|
||||
VPBROADCASTMB2Q K5, X11 // 6272fe082add
|
||||
VPBROADCASTMB2Q K1, X17 // 62e2fe082ac9
|
||||
VPBROADCASTMB2Q K5, X17 // 62e2fe082acd
|
||||
VPBROADCASTMB2Q K3, Y0 // 62f2fe282ac3
|
||||
VPBROADCASTMB2Q K1, Y0 // 62f2fe282ac1
|
||||
VPBROADCASTMB2Q K3, Y19 // 62e2fe282adb
|
||||
VPBROADCASTMB2Q K1, Y19 // 62e2fe282ad9
|
||||
VPBROADCASTMB2Q K3, Y31 // 6262fe282afb
|
||||
VPBROADCASTMB2Q K1, Y31 // 6262fe282af9
|
||||
VPBROADCASTMB2Q K5, Z21 // 62e2fe482aed
|
||||
VPBROADCASTMB2Q K4, Z21 // 62e2fe482aec
|
||||
VPBROADCASTMB2Q K5, Z8 // 6272fe482ac5
|
||||
VPBROADCASTMB2Q K4, Z8 // 6272fe482ac4
|
||||
VPBROADCASTMW2D K7, X18 // 62e27e083ad7
|
||||
VPBROADCASTMW2D K6, X18 // 62e27e083ad6
|
||||
VPBROADCASTMW2D K7, X11 // 62727e083adf
|
||||
VPBROADCASTMW2D K6, X11 // 62727e083ade
|
||||
VPBROADCASTMW2D K7, X9 // 62727e083acf
|
||||
VPBROADCASTMW2D K6, X9 // 62727e083ace
|
||||
VPBROADCASTMW2D K4, Y22 // 62e27e283af4
|
||||
VPBROADCASTMW2D K6, Y22 // 62e27e283af6
|
||||
VPBROADCASTMW2D K4, Y9 // 62727e283acc
|
||||
VPBROADCASTMW2D K6, Y9 // 62727e283ace
|
||||
VPBROADCASTMW2D K4, Y23 // 62e27e283afc
|
||||
VPBROADCASTMW2D K6, Y23 // 62e27e283afe
|
||||
VPBROADCASTMW2D K0, Z16 // 62e27e483ac0
|
||||
VPBROADCASTMW2D K7, Z16 // 62e27e483ac7
|
||||
VPBROADCASTMW2D K0, Z9 // 62727e483ac8
|
||||
VPBROADCASTMW2D K7, Z9 // 62727e483acf
|
||||
VPCONFLICTD X6, K6, X6 // 62f27d0ec4f6
|
||||
VPCONFLICTD X1, K6, X6 // 62f27d0ec4f1
|
||||
VPCONFLICTD X8, K6, X6 // 62d27d0ec4f0
|
||||
VPCONFLICTD 15(R8), K6, X6 // 62d27d0ec4b00f000000
|
||||
VPCONFLICTD (BP), K6, X6 // 62f27d0ec47500
|
||||
VPCONFLICTD X6, K6, X17 // 62e27d0ec4ce
|
||||
VPCONFLICTD X1, K6, X17 // 62e27d0ec4c9
|
||||
VPCONFLICTD X8, K6, X17 // 62c27d0ec4c8
|
||||
VPCONFLICTD 15(R8), K6, X17 // 62c27d0ec4880f000000
|
||||
VPCONFLICTD (BP), K6, X17 // 62e27d0ec44d00
|
||||
VPCONFLICTD X6, K6, X28 // 62627d0ec4e6
|
||||
VPCONFLICTD X1, K6, X28 // 62627d0ec4e1
|
||||
VPCONFLICTD X8, K6, X28 // 62427d0ec4e0
|
||||
VPCONFLICTD 15(R8), K6, X28 // 62427d0ec4a00f000000
|
||||
VPCONFLICTD (BP), K6, X28 // 62627d0ec46500
|
||||
VPCONFLICTD Y14, K3, Y2 // 62d27d2bc4d6
|
||||
VPCONFLICTD Y8, K3, Y2 // 62d27d2bc4d0
|
||||
VPCONFLICTD Y20, K3, Y2 // 62b27d2bc4d4
|
||||
VPCONFLICTD -7(CX), K3, Y2 // 62f27d2bc491f9ffffff
|
||||
VPCONFLICTD 15(DX)(BX*4), K3, Y2 // 62f27d2bc4949a0f000000
|
||||
VPCONFLICTD Y14, K3, Y7 // 62d27d2bc4fe
|
||||
VPCONFLICTD Y8, K3, Y7 // 62d27d2bc4f8
|
||||
VPCONFLICTD Y20, K3, Y7 // 62b27d2bc4fc
|
||||
VPCONFLICTD -7(CX), K3, Y7 // 62f27d2bc4b9f9ffffff
|
||||
VPCONFLICTD 15(DX)(BX*4), K3, Y7 // 62f27d2bc4bc9a0f000000
|
||||
VPCONFLICTD Y14, K3, Y21 // 62c27d2bc4ee
|
||||
VPCONFLICTD Y8, K3, Y21 // 62c27d2bc4e8
|
||||
VPCONFLICTD Y20, K3, Y21 // 62a27d2bc4ec
|
||||
VPCONFLICTD -7(CX), K3, Y21 // 62e27d2bc4a9f9ffffff
|
||||
VPCONFLICTD 15(DX)(BX*4), K3, Y21 // 62e27d2bc4ac9a0f000000
|
||||
VPCONFLICTD Z11, K7, Z21 // 62c27d4fc4eb
|
||||
VPCONFLICTD Z25, K7, Z21 // 62827d4fc4e9
|
||||
VPCONFLICTD -15(R14)(R15*1), K7, Z21 // 62827d4fc4ac3ef1ffffff
|
||||
VPCONFLICTD -15(BX), K7, Z21 // 62e27d4fc4abf1ffffff
|
||||
VPCONFLICTD Z11, K7, Z13 // 62527d4fc4eb
|
||||
VPCONFLICTD Z25, K7, Z13 // 62127d4fc4e9
|
||||
VPCONFLICTD -15(R14)(R15*1), K7, Z13 // 62127d4fc4ac3ef1ffffff
|
||||
VPCONFLICTD -15(BX), K7, Z13 // 62727d4fc4abf1ffffff
|
||||
VPCONFLICTQ X11, K4, X8 // 6252fd0cc4c3
|
||||
VPCONFLICTQ X16, K4, X8 // 6232fd0cc4c0
|
||||
VPCONFLICTQ X6, K4, X8 // 6272fd0cc4c6
|
||||
VPCONFLICTQ 15(R8)(R14*8), K4, X8 // 6212fd0cc484f00f000000
|
||||
VPCONFLICTQ -15(R14)(R15*2), K4, X8 // 6212fd0cc4847ef1ffffff
|
||||
VPCONFLICTQ X11, K4, X6 // 62d2fd0cc4f3
|
||||
VPCONFLICTQ X16, K4, X6 // 62b2fd0cc4f0
|
||||
VPCONFLICTQ X6, K4, X6 // 62f2fd0cc4f6
|
||||
VPCONFLICTQ 15(R8)(R14*8), K4, X6 // 6292fd0cc4b4f00f000000
|
||||
VPCONFLICTQ -15(R14)(R15*2), K4, X6 // 6292fd0cc4b47ef1ffffff
|
||||
VPCONFLICTQ X11, K4, X0 // 62d2fd0cc4c3
|
||||
VPCONFLICTQ X16, K4, X0 // 62b2fd0cc4c0
|
||||
VPCONFLICTQ X6, K4, X0 // 62f2fd0cc4c6
|
||||
VPCONFLICTQ 15(R8)(R14*8), K4, X0 // 6292fd0cc484f00f000000
|
||||
VPCONFLICTQ -15(R14)(R15*2), K4, X0 // 6292fd0cc4847ef1ffffff
|
||||
VPCONFLICTQ Y5, K4, Y11 // 6272fd2cc4dd
|
||||
VPCONFLICTQ Y18, K4, Y11 // 6232fd2cc4da
|
||||
VPCONFLICTQ Y20, K4, Y11 // 6232fd2cc4dc
|
||||
VPCONFLICTQ 99(R15)(R15*8), K4, Y11 // 6212fd2cc49cff63000000
|
||||
VPCONFLICTQ 7(AX)(CX*8), K4, Y11 // 6272fd2cc49cc807000000
|
||||
VPCONFLICTQ Y5, K4, Y24 // 6262fd2cc4c5
|
||||
VPCONFLICTQ Y18, K4, Y24 // 6222fd2cc4c2
|
||||
VPCONFLICTQ Y20, K4, Y24 // 6222fd2cc4c4
|
||||
VPCONFLICTQ 99(R15)(R15*8), K4, Y24 // 6202fd2cc484ff63000000
|
||||
VPCONFLICTQ 7(AX)(CX*8), K4, Y24 // 6262fd2cc484c807000000
|
||||
VPCONFLICTQ Y5, K4, Y1 // 62f2fd2cc4cd
|
||||
VPCONFLICTQ Y18, K4, Y1 // 62b2fd2cc4ca
|
||||
VPCONFLICTQ Y20, K4, Y1 // 62b2fd2cc4cc
|
||||
VPCONFLICTQ 99(R15)(R15*8), K4, Y1 // 6292fd2cc48cff63000000
|
||||
VPCONFLICTQ 7(AX)(CX*8), K4, Y1 // 62f2fd2cc48cc807000000
|
||||
VPCONFLICTQ Z27, K7, Z3 // 6292fd4fc4db
|
||||
VPCONFLICTQ Z15, K7, Z3 // 62d2fd4fc4df
|
||||
VPCONFLICTQ 7(AX)(CX*4), K7, Z3 // 62f2fd4fc49c8807000000
|
||||
VPCONFLICTQ 7(AX)(CX*1), K7, Z3 // 62f2fd4fc49c0807000000
|
||||
VPCONFLICTQ Z27, K7, Z12 // 6212fd4fc4e3
|
||||
VPCONFLICTQ Z15, K7, Z12 // 6252fd4fc4e7
|
||||
VPCONFLICTQ 7(AX)(CX*4), K7, Z12 // 6272fd4fc4a48807000000
|
||||
VPCONFLICTQ 7(AX)(CX*1), K7, Z12 // 6272fd4fc4a40807000000
|
||||
VPLZCNTD X3, K3, X17 // 62e27d0b44cb
|
||||
VPLZCNTD X26, K3, X17 // 62827d0b44ca
|
||||
VPLZCNTD X23, K3, X17 // 62a27d0b44cf
|
||||
VPLZCNTD 15(DX)(BX*1), K3, X17 // 62e27d0b448c1a0f000000
|
||||
VPLZCNTD -7(CX)(DX*2), K3, X17 // 62e27d0b448c51f9ffffff
|
||||
VPLZCNTD X3, K3, X15 // 62727d0b44fb
|
||||
VPLZCNTD X26, K3, X15 // 62127d0b44fa
|
||||
VPLZCNTD X23, K3, X15 // 62327d0b44ff
|
||||
VPLZCNTD 15(DX)(BX*1), K3, X15 // 62727d0b44bc1a0f000000
|
||||
VPLZCNTD -7(CX)(DX*2), K3, X15 // 62727d0b44bc51f9ffffff
|
||||
VPLZCNTD X3, K3, X8 // 62727d0b44c3
|
||||
VPLZCNTD X26, K3, X8 // 62127d0b44c2
|
||||
VPLZCNTD X23, K3, X8 // 62327d0b44c7
|
||||
VPLZCNTD 15(DX)(BX*1), K3, X8 // 62727d0b44841a0f000000
|
||||
VPLZCNTD -7(CX)(DX*2), K3, X8 // 62727d0b448451f9ffffff
|
||||
VPLZCNTD Y5, K3, Y20 // 62e27d2b44e5
|
||||
VPLZCNTD Y28, K3, Y20 // 62827d2b44e4
|
||||
VPLZCNTD Y7, K3, Y20 // 62e27d2b44e7
|
||||
VPLZCNTD (BX), K3, Y20 // 62e27d2b4423
|
||||
VPLZCNTD -17(BP)(SI*1), K3, Y20 // 62e27d2b44a435efffffff
|
||||
VPLZCNTD Y5, K3, Y12 // 62727d2b44e5
|
||||
VPLZCNTD Y28, K3, Y12 // 62127d2b44e4
|
||||
VPLZCNTD Y7, K3, Y12 // 62727d2b44e7
|
||||
VPLZCNTD (BX), K3, Y12 // 62727d2b4423
|
||||
VPLZCNTD -17(BP)(SI*1), K3, Y12 // 62727d2b44a435efffffff
|
||||
VPLZCNTD Y5, K3, Y3 // 62f27d2b44dd
|
||||
VPLZCNTD Y28, K3, Y3 // 62927d2b44dc
|
||||
VPLZCNTD Y7, K3, Y3 // 62f27d2b44df
|
||||
VPLZCNTD (BX), K3, Y3 // 62f27d2b441b
|
||||
VPLZCNTD -17(BP)(SI*1), K3, Y3 // 62f27d2b449c35efffffff
|
||||
VPLZCNTD Z21, K3, Z3 // 62b27d4b44dd
|
||||
VPLZCNTD Z13, K3, Z3 // 62d27d4b44dd
|
||||
VPLZCNTD 17(SP)(BP*8), K3, Z3 // 62f27d4b449cec11000000
|
||||
VPLZCNTD 17(SP)(BP*4), K3, Z3 // 62f27d4b449cac11000000
|
||||
VPLZCNTD Z21, K3, Z0 // 62b27d4b44c5
|
||||
VPLZCNTD Z13, K3, Z0 // 62d27d4b44c5
|
||||
VPLZCNTD 17(SP)(BP*8), K3, Z0 // 62f27d4b4484ec11000000
|
||||
VPLZCNTD 17(SP)(BP*4), K3, Z0 // 62f27d4b4484ac11000000
|
||||
VPLZCNTQ X9, K2, X13 // 6252fd0a44e9
|
||||
VPLZCNTQ X15, K2, X13 // 6252fd0a44ef
|
||||
VPLZCNTQ X26, K2, X13 // 6212fd0a44ea
|
||||
VPLZCNTQ -17(BP), K2, X13 // 6272fd0a44adefffffff
|
||||
VPLZCNTQ -15(R14)(R15*8), K2, X13 // 6212fd0a44acfef1ffffff
|
||||
VPLZCNTQ X9, K2, X28 // 6242fd0a44e1
|
||||
VPLZCNTQ X15, K2, X28 // 6242fd0a44e7
|
||||
VPLZCNTQ X26, K2, X28 // 6202fd0a44e2
|
||||
VPLZCNTQ -17(BP), K2, X28 // 6262fd0a44a5efffffff
|
||||
VPLZCNTQ -15(R14)(R15*8), K2, X28 // 6202fd0a44a4fef1ffffff
|
||||
VPLZCNTQ X9, K2, X24 // 6242fd0a44c1
|
||||
VPLZCNTQ X15, K2, X24 // 6242fd0a44c7
|
||||
VPLZCNTQ X26, K2, X24 // 6202fd0a44c2
|
||||
VPLZCNTQ -17(BP), K2, X24 // 6262fd0a4485efffffff
|
||||
VPLZCNTQ -15(R14)(R15*8), K2, X24 // 6202fd0a4484fef1ffffff
|
||||
VPLZCNTQ Y12, K1, Y0 // 62d2fd2944c4
|
||||
VPLZCNTQ Y1, K1, Y0 // 62f2fd2944c1
|
||||
VPLZCNTQ Y14, K1, Y0 // 62d2fd2944c6
|
||||
VPLZCNTQ 15(R8)(R14*4), K1, Y0 // 6292fd294484b00f000000
|
||||
VPLZCNTQ -7(CX)(DX*4), K1, Y0 // 62f2fd29448491f9ffffff
|
||||
VPLZCNTQ Y12, K1, Y22 // 62c2fd2944f4
|
||||
VPLZCNTQ Y1, K1, Y22 // 62e2fd2944f1
|
||||
VPLZCNTQ Y14, K1, Y22 // 62c2fd2944f6
|
||||
VPLZCNTQ 15(R8)(R14*4), K1, Y22 // 6282fd2944b4b00f000000
|
||||
VPLZCNTQ -7(CX)(DX*4), K1, Y22 // 62e2fd2944b491f9ffffff
|
||||
VPLZCNTQ Y12, K1, Y13 // 6252fd2944ec
|
||||
VPLZCNTQ Y1, K1, Y13 // 6272fd2944e9
|
||||
VPLZCNTQ Y14, K1, Y13 // 6252fd2944ee
|
||||
VPLZCNTQ 15(R8)(R14*4), K1, Y13 // 6212fd2944acb00f000000
|
||||
VPLZCNTQ -7(CX)(DX*4), K1, Y13 // 6272fd2944ac91f9ffffff
|
||||
VPLZCNTQ Z3, K2, Z11 // 6272fd4a44db
|
||||
VPLZCNTQ Z12, K2, Z11 // 6252fd4a44dc
|
||||
VPLZCNTQ 7(SI)(DI*4), K2, Z11 // 6272fd4a449cbe07000000
|
||||
VPLZCNTQ -7(DI)(R8*2), K2, Z11 // 6232fd4a449c47f9ffffff
|
||||
VPLZCNTQ Z3, K2, Z25 // 6262fd4a44cb
|
||||
VPLZCNTQ Z12, K2, Z25 // 6242fd4a44cc
|
||||
VPLZCNTQ 7(SI)(DI*4), K2, Z25 // 6262fd4a448cbe07000000
|
||||
VPLZCNTQ -7(DI)(R8*2), K2, Z25 // 6222fd4a448c47f9ffffff
|
||||
RET
|
||||
|
|
|
|||
5324
src/cmd/asm/internal/asm/testdata/avx512enc/avx512dq.s
vendored
5324
src/cmd/asm/internal/asm/testdata/avx512enc/avx512dq.s
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -3,329 +3,329 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512er(SB), NOSPLIT, $0
|
||||
//TODO: VEXP2PD Z17, K7, Z20 // 62a2fd4fc8e1
|
||||
//TODO: VEXP2PD Z0, K7, Z20 // 62e2fd4fc8e0
|
||||
//TODO: VEXP2PD Z17, K7, Z0 // 62b2fd4fc8c1
|
||||
//TODO: VEXP2PD Z0, K7, Z0 // 62f2fd4fc8c0
|
||||
//TODO: VEXP2PD Z31, K2, Z17 // 6282fd4ac8cf
|
||||
//TODO: VEXP2PD Z0, K2, Z17 // 62e2fd4ac8c8
|
||||
//TODO: VEXP2PD (R14), K2, Z17 // 62c2fd4ac80e
|
||||
//TODO: VEXP2PD -7(DI)(R8*8), K2, Z17 // 62a2fd4ac88cc7f9ffffff
|
||||
//TODO: VEXP2PD Z31, K2, Z23 // 6282fd4ac8ff
|
||||
//TODO: VEXP2PD Z0, K2, Z23 // 62e2fd4ac8f8
|
||||
//TODO: VEXP2PD (R14), K2, Z23 // 62c2fd4ac83e
|
||||
//TODO: VEXP2PD -7(DI)(R8*8), K2, Z23 // 62a2fd4ac8bcc7f9ffffff
|
||||
//TODO: VEXP2PS Z6, K4, Z21 // 62e27d4cc8ee
|
||||
//TODO: VEXP2PS Z9, K4, Z21 // 62c27d4cc8e9
|
||||
//TODO: VEXP2PS Z6, K4, Z9 // 62727d4cc8ce
|
||||
//TODO: VEXP2PS Z9, K4, Z9 // 62527d4cc8c9
|
||||
//TODO: VEXP2PS Z20, K1, Z1 // 62b27d49c8cc
|
||||
//TODO: VEXP2PS Z9, K1, Z1 // 62d27d49c8c9
|
||||
//TODO: VEXP2PS 99(R15)(R15*4), K1, Z1 // 62927d49c88cbf63000000
|
||||
//TODO: VEXP2PS 15(DX), K1, Z1 // 62f27d49c88a0f000000
|
||||
//TODO: VEXP2PS Z20, K1, Z9 // 62327d49c8cc
|
||||
//TODO: VEXP2PS Z9, K1, Z9 // 62527d49c8c9
|
||||
//TODO: VEXP2PS 99(R15)(R15*4), K1, Z9 // 62127d49c88cbf63000000
|
||||
//TODO: VEXP2PS 15(DX), K1, Z9 // 62727d49c88a0f000000
|
||||
//TODO: VRCP28PD Z13, K7, Z11 // 6252fd4fcadd
|
||||
//TODO: VRCP28PD Z14, K7, Z11 // 6252fd4fcade
|
||||
//TODO: VRCP28PD Z13, K7, Z5 // 62d2fd4fcaed
|
||||
//TODO: VRCP28PD Z14, K7, Z5 // 62d2fd4fcaee
|
||||
//TODO: VRCP28PD Z2, K2, Z5 // 62f2fd4acaea
|
||||
//TODO: VRCP28PD -7(CX)(DX*1), K2, Z5 // 62f2fd4acaac11f9ffffff
|
||||
//TODO: VRCP28PD -15(R14)(R15*4), K2, Z5 // 6292fd4acaacbef1ffffff
|
||||
//TODO: VRCP28PD Z2, K2, Z23 // 62e2fd4acafa
|
||||
//TODO: VRCP28PD -7(CX)(DX*1), K2, Z23 // 62e2fd4acabc11f9ffffff
|
||||
//TODO: VRCP28PD -15(R14)(R15*4), K2, Z23 // 6282fd4acabcbef1ffffff
|
||||
//TODO: VRCP28PS Z26, K5, Z6 // 62927d4dcaf2
|
||||
//TODO: VRCP28PS Z14, K5, Z6 // 62d27d4dcaf6
|
||||
//TODO: VRCP28PS Z26, K5, Z14 // 62127d4dcaf2
|
||||
//TODO: VRCP28PS Z14, K5, Z14 // 62527d4dcaf6
|
||||
//TODO: VRCP28PS Z13, K3, Z28 // 62427d4bcae5
|
||||
//TODO: VRCP28PS Z21, K3, Z28 // 62227d4bcae5
|
||||
//TODO: VRCP28PS 15(DX)(BX*1), K3, Z28 // 62627d4bcaa41a0f000000
|
||||
//TODO: VRCP28PS -7(CX)(DX*2), K3, Z28 // 62627d4bcaa451f9ffffff
|
||||
//TODO: VRCP28PS Z13, K3, Z6 // 62d27d4bcaf5
|
||||
//TODO: VRCP28PS Z21, K3, Z6 // 62b27d4bcaf5
|
||||
//TODO: VRCP28PS 15(DX)(BX*1), K3, Z6 // 62f27d4bcab41a0f000000
|
||||
//TODO: VRCP28PS -7(CX)(DX*2), K3, Z6 // 62f27d4bcab451f9ffffff
|
||||
//TODO: VRCP28SD X25, X14, K4, X19 // 62828d0ccbd9
|
||||
//TODO: VRCP28SD X11, X14, K4, X19 // 62c28d0ccbdb
|
||||
//TODO: VRCP28SD X17, X14, K4, X19 // 62a28d0ccbd9
|
||||
//TODO: VRCP28SD X25, X0, K4, X19 // 6282fd0ccbd9
|
||||
//TODO: VRCP28SD X11, X0, K4, X19 // 62c2fd0ccbdb
|
||||
//TODO: VRCP28SD X17, X0, K4, X19 // 62a2fd0ccbd9
|
||||
//TODO: VRCP28SD X25, X14, K4, X13 // 62128d0ccbe9
|
||||
//TODO: VRCP28SD X11, X14, K4, X13 // 62528d0ccbeb
|
||||
//TODO: VRCP28SD X17, X14, K4, X13 // 62328d0ccbe9
|
||||
//TODO: VRCP28SD X25, X0, K4, X13 // 6212fd0ccbe9
|
||||
//TODO: VRCP28SD X11, X0, K4, X13 // 6252fd0ccbeb
|
||||
//TODO: VRCP28SD X17, X0, K4, X13 // 6232fd0ccbe9
|
||||
//TODO: VRCP28SD X25, X14, K4, X2 // 62928d0ccbd1
|
||||
//TODO: VRCP28SD X11, X14, K4, X2 // 62d28d0ccbd3
|
||||
//TODO: VRCP28SD X17, X14, K4, X2 // 62b28d0ccbd1
|
||||
//TODO: VRCP28SD X25, X0, K4, X2 // 6292fd0ccbd1
|
||||
//TODO: VRCP28SD X11, X0, K4, X2 // 62d2fd0ccbd3
|
||||
//TODO: VRCP28SD X17, X0, K4, X2 // 62b2fd0ccbd1
|
||||
//TODO: VRCP28SD X2, X2, K2, X18 // 62e2ed0acbd2 or 62e2ed2acbd2 or 62e2ed4acbd2
|
||||
//TODO: VRCP28SD X27, X2, K2, X18 // 6282ed0acbd3 or 6282ed2acbd3 or 6282ed4acbd3
|
||||
//TODO: VRCP28SD X26, X2, K2, X18 // 6282ed0acbd2 or 6282ed2acbd2 or 6282ed4acbd2
|
||||
//TODO: VRCP28SD 17(SP)(BP*8), X2, K2, X18 // 62e2ed0acb94ec11000000 or 62e2ed2acb94ec11000000 or 62e2ed4acb94ec11000000
|
||||
//TODO: VRCP28SD 17(SP)(BP*4), X2, K2, X18 // 62e2ed0acb94ac11000000 or 62e2ed2acb94ac11000000 or 62e2ed4acb94ac11000000
|
||||
//TODO: VRCP28SD X2, X24, K2, X18 // 62e2bd02cbd2 or 62e2bd22cbd2 or 62e2bd42cbd2
|
||||
//TODO: VRCP28SD X27, X24, K2, X18 // 6282bd02cbd3 or 6282bd22cbd3 or 6282bd42cbd3
|
||||
//TODO: VRCP28SD X26, X24, K2, X18 // 6282bd02cbd2 or 6282bd22cbd2 or 6282bd42cbd2
|
||||
//TODO: VRCP28SD 17(SP)(BP*8), X24, K2, X18 // 62e2bd02cb94ec11000000 or 62e2bd22cb94ec11000000 or 62e2bd42cb94ec11000000
|
||||
//TODO: VRCP28SD 17(SP)(BP*4), X24, K2, X18 // 62e2bd02cb94ac11000000 or 62e2bd22cb94ac11000000 or 62e2bd42cb94ac11000000
|
||||
//TODO: VRCP28SD X2, X2, K2, X11 // 6272ed0acbda or 6272ed2acbda or 6272ed4acbda
|
||||
//TODO: VRCP28SD X27, X2, K2, X11 // 6212ed0acbdb or 6212ed2acbdb or 6212ed4acbdb
|
||||
//TODO: VRCP28SD X26, X2, K2, X11 // 6212ed0acbda or 6212ed2acbda or 6212ed4acbda
|
||||
//TODO: VRCP28SD 17(SP)(BP*8), X2, K2, X11 // 6272ed0acb9cec11000000 or 6272ed2acb9cec11000000 or 6272ed4acb9cec11000000
|
||||
//TODO: VRCP28SD 17(SP)(BP*4), X2, K2, X11 // 6272ed0acb9cac11000000 or 6272ed2acb9cac11000000 or 6272ed4acb9cac11000000
|
||||
//TODO: VRCP28SD X2, X24, K2, X11 // 6272bd02cbda or 6272bd22cbda or 6272bd42cbda
|
||||
//TODO: VRCP28SD X27, X24, K2, X11 // 6212bd02cbdb or 6212bd22cbdb or 6212bd42cbdb
|
||||
//TODO: VRCP28SD X26, X24, K2, X11 // 6212bd02cbda or 6212bd22cbda or 6212bd42cbda
|
||||
//TODO: VRCP28SD 17(SP)(BP*8), X24, K2, X11 // 6272bd02cb9cec11000000 or 6272bd22cb9cec11000000 or 6272bd42cb9cec11000000
|
||||
//TODO: VRCP28SD 17(SP)(BP*4), X24, K2, X11 // 6272bd02cb9cac11000000 or 6272bd22cb9cac11000000 or 6272bd42cb9cac11000000
|
||||
//TODO: VRCP28SD X2, X2, K2, X9 // 6272ed0acbca or 6272ed2acbca or 6272ed4acbca
|
||||
//TODO: VRCP28SD X27, X2, K2, X9 // 6212ed0acbcb or 6212ed2acbcb or 6212ed4acbcb
|
||||
//TODO: VRCP28SD X26, X2, K2, X9 // 6212ed0acbca or 6212ed2acbca or 6212ed4acbca
|
||||
//TODO: VRCP28SD 17(SP)(BP*8), X2, K2, X9 // 6272ed0acb8cec11000000 or 6272ed2acb8cec11000000 or 6272ed4acb8cec11000000
|
||||
//TODO: VRCP28SD 17(SP)(BP*4), X2, K2, X9 // 6272ed0acb8cac11000000 or 6272ed2acb8cac11000000 or 6272ed4acb8cac11000000
|
||||
//TODO: VRCP28SD X2, X24, K2, X9 // 6272bd02cbca or 6272bd22cbca or 6272bd42cbca
|
||||
//TODO: VRCP28SD X27, X24, K2, X9 // 6212bd02cbcb or 6212bd22cbcb or 6212bd42cbcb
|
||||
//TODO: VRCP28SD X26, X24, K2, X9 // 6212bd02cbca or 6212bd22cbca or 6212bd42cbca
|
||||
//TODO: VRCP28SD 17(SP)(BP*8), X24, K2, X9 // 6272bd02cb8cec11000000 or 6272bd22cb8cec11000000 or 6272bd42cb8cec11000000
|
||||
//TODO: VRCP28SD 17(SP)(BP*4), X24, K2, X9 // 6272bd02cb8cac11000000 or 6272bd22cb8cac11000000 or 6272bd42cb8cac11000000
|
||||
//TODO: VRCP28SS X13, X11, K2, X22 // 62c2250acbf5
|
||||
//TODO: VRCP28SS X6, X11, K2, X22 // 62e2250acbf6
|
||||
//TODO: VRCP28SS X12, X11, K2, X22 // 62c2250acbf4
|
||||
//TODO: VRCP28SS X13, X15, K2, X22 // 62c2050acbf5
|
||||
//TODO: VRCP28SS X6, X15, K2, X22 // 62e2050acbf6
|
||||
//TODO: VRCP28SS X12, X15, K2, X22 // 62c2050acbf4
|
||||
//TODO: VRCP28SS X13, X30, K2, X22 // 62c20d02cbf5
|
||||
//TODO: VRCP28SS X6, X30, K2, X22 // 62e20d02cbf6
|
||||
//TODO: VRCP28SS X12, X30, K2, X22 // 62c20d02cbf4
|
||||
//TODO: VRCP28SS X13, X11, K2, X30 // 6242250acbf5
|
||||
//TODO: VRCP28SS X6, X11, K2, X30 // 6262250acbf6
|
||||
//TODO: VRCP28SS X12, X11, K2, X30 // 6242250acbf4
|
||||
//TODO: VRCP28SS X13, X15, K2, X30 // 6242050acbf5
|
||||
//TODO: VRCP28SS X6, X15, K2, X30 // 6262050acbf6
|
||||
//TODO: VRCP28SS X12, X15, K2, X30 // 6242050acbf4
|
||||
//TODO: VRCP28SS X13, X30, K2, X30 // 62420d02cbf5
|
||||
//TODO: VRCP28SS X6, X30, K2, X30 // 62620d02cbf6
|
||||
//TODO: VRCP28SS X12, X30, K2, X30 // 62420d02cbf4
|
||||
//TODO: VRCP28SS X13, X11, K2, X3 // 62d2250acbdd
|
||||
//TODO: VRCP28SS X6, X11, K2, X3 // 62f2250acbde
|
||||
//TODO: VRCP28SS X12, X11, K2, X3 // 62d2250acbdc
|
||||
//TODO: VRCP28SS X13, X15, K2, X3 // 62d2050acbdd
|
||||
//TODO: VRCP28SS X6, X15, K2, X3 // 62f2050acbde
|
||||
//TODO: VRCP28SS X12, X15, K2, X3 // 62d2050acbdc
|
||||
//TODO: VRCP28SS X13, X30, K2, X3 // 62d20d02cbdd
|
||||
//TODO: VRCP28SS X6, X30, K2, X3 // 62f20d02cbde
|
||||
//TODO: VRCP28SS X12, X30, K2, X3 // 62d20d02cbdc
|
||||
//TODO: VRCP28SS X26, X20, K3, X23 // 62825d03cbfa or 62825d23cbfa or 62825d43cbfa
|
||||
//TODO: VRCP28SS X19, X20, K3, X23 // 62a25d03cbfb or 62a25d23cbfb or 62a25d43cbfb
|
||||
//TODO: VRCP28SS X0, X20, K3, X23 // 62e25d03cbf8 or 62e25d23cbf8 or 62e25d43cbf8
|
||||
//TODO: VRCP28SS -7(CX), X20, K3, X23 // 62e25d03cbb9f9ffffff or 62e25d23cbb9f9ffffff or 62e25d43cbb9f9ffffff
|
||||
//TODO: VRCP28SS 15(DX)(BX*4), X20, K3, X23 // 62e25d03cbbc9a0f000000 or 62e25d23cbbc9a0f000000 or 62e25d43cbbc9a0f000000
|
||||
//TODO: VRCP28SS X26, X2, K3, X23 // 62826d0bcbfa or 62826d2bcbfa or 62826d4bcbfa
|
||||
//TODO: VRCP28SS X19, X2, K3, X23 // 62a26d0bcbfb or 62a26d2bcbfb or 62a26d4bcbfb
|
||||
//TODO: VRCP28SS X0, X2, K3, X23 // 62e26d0bcbf8 or 62e26d2bcbf8 or 62e26d4bcbf8
|
||||
//TODO: VRCP28SS -7(CX), X2, K3, X23 // 62e26d0bcbb9f9ffffff or 62e26d2bcbb9f9ffffff or 62e26d4bcbb9f9ffffff
|
||||
//TODO: VRCP28SS 15(DX)(BX*4), X2, K3, X23 // 62e26d0bcbbc9a0f000000 or 62e26d2bcbbc9a0f000000 or 62e26d4bcbbc9a0f000000
|
||||
//TODO: VRCP28SS X26, X9, K3, X23 // 6282350bcbfa or 6282352bcbfa or 6282354bcbfa
|
||||
//TODO: VRCP28SS X19, X9, K3, X23 // 62a2350bcbfb or 62a2352bcbfb or 62a2354bcbfb
|
||||
//TODO: VRCP28SS X0, X9, K3, X23 // 62e2350bcbf8 or 62e2352bcbf8 or 62e2354bcbf8
|
||||
//TODO: VRCP28SS -7(CX), X9, K3, X23 // 62e2350bcbb9f9ffffff or 62e2352bcbb9f9ffffff or 62e2354bcbb9f9ffffff
|
||||
//TODO: VRCP28SS 15(DX)(BX*4), X9, K3, X23 // 62e2350bcbbc9a0f000000 or 62e2352bcbbc9a0f000000 or 62e2354bcbbc9a0f000000
|
||||
//TODO: VRCP28SS X26, X20, K3, X30 // 62025d03cbf2 or 62025d23cbf2 or 62025d43cbf2
|
||||
//TODO: VRCP28SS X19, X20, K3, X30 // 62225d03cbf3 or 62225d23cbf3 or 62225d43cbf3
|
||||
//TODO: VRCP28SS X0, X20, K3, X30 // 62625d03cbf0 or 62625d23cbf0 or 62625d43cbf0
|
||||
//TODO: VRCP28SS -7(CX), X20, K3, X30 // 62625d03cbb1f9ffffff or 62625d23cbb1f9ffffff or 62625d43cbb1f9ffffff
|
||||
//TODO: VRCP28SS 15(DX)(BX*4), X20, K3, X30 // 62625d03cbb49a0f000000 or 62625d23cbb49a0f000000 or 62625d43cbb49a0f000000
|
||||
//TODO: VRCP28SS X26, X2, K3, X30 // 62026d0bcbf2 or 62026d2bcbf2 or 62026d4bcbf2
|
||||
//TODO: VRCP28SS X19, X2, K3, X30 // 62226d0bcbf3 or 62226d2bcbf3 or 62226d4bcbf3
|
||||
//TODO: VRCP28SS X0, X2, K3, X30 // 62626d0bcbf0 or 62626d2bcbf0 or 62626d4bcbf0
|
||||
//TODO: VRCP28SS -7(CX), X2, K3, X30 // 62626d0bcbb1f9ffffff or 62626d2bcbb1f9ffffff or 62626d4bcbb1f9ffffff
|
||||
//TODO: VRCP28SS 15(DX)(BX*4), X2, K3, X30 // 62626d0bcbb49a0f000000 or 62626d2bcbb49a0f000000 or 62626d4bcbb49a0f000000
|
||||
//TODO: VRCP28SS X26, X9, K3, X30 // 6202350bcbf2 or 6202352bcbf2 or 6202354bcbf2
|
||||
//TODO: VRCP28SS X19, X9, K3, X30 // 6222350bcbf3 or 6222352bcbf3 or 6222354bcbf3
|
||||
//TODO: VRCP28SS X0, X9, K3, X30 // 6262350bcbf0 or 6262352bcbf0 or 6262354bcbf0
|
||||
//TODO: VRCP28SS -7(CX), X9, K3, X30 // 6262350bcbb1f9ffffff or 6262352bcbb1f9ffffff or 6262354bcbb1f9ffffff
|
||||
//TODO: VRCP28SS 15(DX)(BX*4), X9, K3, X30 // 6262350bcbb49a0f000000 or 6262352bcbb49a0f000000 or 6262354bcbb49a0f000000
|
||||
//TODO: VRCP28SS X26, X20, K3, X8 // 62125d03cbc2 or 62125d23cbc2 or 62125d43cbc2
|
||||
//TODO: VRCP28SS X19, X20, K3, X8 // 62325d03cbc3 or 62325d23cbc3 or 62325d43cbc3
|
||||
//TODO: VRCP28SS X0, X20, K3, X8 // 62725d03cbc0 or 62725d23cbc0 or 62725d43cbc0
|
||||
//TODO: VRCP28SS -7(CX), X20, K3, X8 // 62725d03cb81f9ffffff or 62725d23cb81f9ffffff or 62725d43cb81f9ffffff
|
||||
//TODO: VRCP28SS 15(DX)(BX*4), X20, K3, X8 // 62725d03cb849a0f000000 or 62725d23cb849a0f000000 or 62725d43cb849a0f000000
|
||||
//TODO: VRCP28SS X26, X2, K3, X8 // 62126d0bcbc2 or 62126d2bcbc2 or 62126d4bcbc2
|
||||
//TODO: VRCP28SS X19, X2, K3, X8 // 62326d0bcbc3 or 62326d2bcbc3 or 62326d4bcbc3
|
||||
//TODO: VRCP28SS X0, X2, K3, X8 // 62726d0bcbc0 or 62726d2bcbc0 or 62726d4bcbc0
|
||||
//TODO: VRCP28SS -7(CX), X2, K3, X8 // 62726d0bcb81f9ffffff or 62726d2bcb81f9ffffff or 62726d4bcb81f9ffffff
|
||||
//TODO: VRCP28SS 15(DX)(BX*4), X2, K3, X8 // 62726d0bcb849a0f000000 or 62726d2bcb849a0f000000 or 62726d4bcb849a0f000000
|
||||
//TODO: VRCP28SS X26, X9, K3, X8 // 6212350bcbc2 or 6212352bcbc2 or 6212354bcbc2
|
||||
//TODO: VRCP28SS X19, X9, K3, X8 // 6232350bcbc3 or 6232352bcbc3 or 6232354bcbc3
|
||||
//TODO: VRCP28SS X0, X9, K3, X8 // 6272350bcbc0 or 6272352bcbc0 or 6272354bcbc0
|
||||
//TODO: VRCP28SS -7(CX), X9, K3, X8 // 6272350bcb81f9ffffff or 6272352bcb81f9ffffff or 6272354bcb81f9ffffff
|
||||
//TODO: VRCP28SS 15(DX)(BX*4), X9, K3, X8 // 6272350bcb849a0f000000 or 6272352bcb849a0f000000 or 6272354bcb849a0f000000
|
||||
//TODO: VRSQRT28PD Z7, K3, Z3 // 62f2fd4bccdf
|
||||
//TODO: VRSQRT28PD Z9, K3, Z3 // 62d2fd4bccd9
|
||||
//TODO: VRSQRT28PD Z7, K3, Z27 // 6262fd4bccdf
|
||||
//TODO: VRSQRT28PD Z9, K3, Z27 // 6242fd4bccd9
|
||||
//TODO: VRSQRT28PD Z20, K3, Z0 // 62b2fd4bccc4
|
||||
//TODO: VRSQRT28PD Z28, K3, Z0 // 6292fd4bccc4
|
||||
//TODO: VRSQRT28PD (SI), K3, Z0 // 62f2fd4bcc06
|
||||
//TODO: VRSQRT28PD 7(SI)(DI*2), K3, Z0 // 62f2fd4bcc847e07000000
|
||||
//TODO: VRSQRT28PD Z20, K3, Z6 // 62b2fd4bccf4
|
||||
//TODO: VRSQRT28PD Z28, K3, Z6 // 6292fd4bccf4
|
||||
//TODO: VRSQRT28PD (SI), K3, Z6 // 62f2fd4bcc36
|
||||
//TODO: VRSQRT28PD 7(SI)(DI*2), K3, Z6 // 62f2fd4bccb47e07000000
|
||||
//TODO: VRSQRT28PS Z9, K2, Z3 // 62d27d4accd9
|
||||
//TODO: VRSQRT28PS Z19, K2, Z3 // 62b27d4accdb
|
||||
//TODO: VRSQRT28PS Z9, K2, Z30 // 62427d4accf1
|
||||
//TODO: VRSQRT28PS Z19, K2, Z30 // 62227d4accf3
|
||||
//TODO: VRSQRT28PS Z11, K1, Z12 // 62527d49cce3
|
||||
//TODO: VRSQRT28PS Z5, K1, Z12 // 62727d49cce5
|
||||
//TODO: VRSQRT28PS 17(SP)(BP*8), K1, Z12 // 62727d49cca4ec11000000
|
||||
//TODO: VRSQRT28PS 17(SP)(BP*4), K1, Z12 // 62727d49cca4ac11000000
|
||||
//TODO: VRSQRT28PS Z11, K1, Z22 // 62c27d49ccf3
|
||||
//TODO: VRSQRT28PS Z5, K1, Z22 // 62e27d49ccf5
|
||||
//TODO: VRSQRT28PS 17(SP)(BP*8), K1, Z22 // 62e27d49ccb4ec11000000
|
||||
//TODO: VRSQRT28PS 17(SP)(BP*4), K1, Z22 // 62e27d49ccb4ac11000000
|
||||
//TODO: VRSQRT28SD X20, X20, K2, X31 // 6222dd02cdfc
|
||||
//TODO: VRSQRT28SD X16, X20, K2, X31 // 6222dd02cdf8
|
||||
//TODO: VRSQRT28SD X12, X20, K2, X31 // 6242dd02cdfc
|
||||
//TODO: VRSQRT28SD X20, X24, K2, X31 // 6222bd02cdfc
|
||||
//TODO: VRSQRT28SD X16, X24, K2, X31 // 6222bd02cdf8
|
||||
//TODO: VRSQRT28SD X12, X24, K2, X31 // 6242bd02cdfc
|
||||
//TODO: VRSQRT28SD X20, X7, K2, X31 // 6222c50acdfc
|
||||
//TODO: VRSQRT28SD X16, X7, K2, X31 // 6222c50acdf8
|
||||
//TODO: VRSQRT28SD X12, X7, K2, X31 // 6242c50acdfc
|
||||
//TODO: VRSQRT28SD X20, X20, K2, X3 // 62b2dd02cddc
|
||||
//TODO: VRSQRT28SD X16, X20, K2, X3 // 62b2dd02cdd8
|
||||
//TODO: VRSQRT28SD X12, X20, K2, X3 // 62d2dd02cddc
|
||||
//TODO: VRSQRT28SD X20, X24, K2, X3 // 62b2bd02cddc
|
||||
//TODO: VRSQRT28SD X16, X24, K2, X3 // 62b2bd02cdd8
|
||||
//TODO: VRSQRT28SD X12, X24, K2, X3 // 62d2bd02cddc
|
||||
//TODO: VRSQRT28SD X20, X7, K2, X3 // 62b2c50acddc
|
||||
//TODO: VRSQRT28SD X16, X7, K2, X3 // 62b2c50acdd8
|
||||
//TODO: VRSQRT28SD X12, X7, K2, X3 // 62d2c50acddc
|
||||
//TODO: VRSQRT28SD X20, X20, K2, X28 // 6222dd02cde4
|
||||
//TODO: VRSQRT28SD X16, X20, K2, X28 // 6222dd02cde0
|
||||
//TODO: VRSQRT28SD X12, X20, K2, X28 // 6242dd02cde4
|
||||
//TODO: VRSQRT28SD X20, X24, K2, X28 // 6222bd02cde4
|
||||
//TODO: VRSQRT28SD X16, X24, K2, X28 // 6222bd02cde0
|
||||
//TODO: VRSQRT28SD X12, X24, K2, X28 // 6242bd02cde4
|
||||
//TODO: VRSQRT28SD X20, X7, K2, X28 // 6222c50acde4
|
||||
//TODO: VRSQRT28SD X16, X7, K2, X28 // 6222c50acde0
|
||||
//TODO: VRSQRT28SD X12, X7, K2, X28 // 6242c50acde4
|
||||
//TODO: VRSQRT28SD X8, X6, K1, X6 // 62d2cd09cdf0 or 62d2cd29cdf0 or 62d2cd49cdf0
|
||||
//TODO: VRSQRT28SD X6, X6, K1, X6 // 62f2cd09cdf6 or 62f2cd29cdf6 or 62f2cd49cdf6
|
||||
//TODO: VRSQRT28SD X0, X6, K1, X6 // 62f2cd09cdf0 or 62f2cd29cdf0 or 62f2cd49cdf0
|
||||
//TODO: VRSQRT28SD 99(R15)(R15*1), X6, K1, X6 // 6292cd09cdb43f63000000 or 6292cd29cdb43f63000000 or 6292cd49cdb43f63000000
|
||||
//TODO: VRSQRT28SD (DX), X6, K1, X6 // 62f2cd09cd32 or 62f2cd29cd32 or 62f2cd49cd32
|
||||
//TODO: VRSQRT28SD X8, X1, K1, X6 // 62d2f509cdf0 or 62d2f529cdf0 or 62d2f549cdf0
|
||||
//TODO: VRSQRT28SD X6, X1, K1, X6 // 62f2f509cdf6 or 62f2f529cdf6 or 62f2f549cdf6
|
||||
//TODO: VRSQRT28SD X0, X1, K1, X6 // 62f2f509cdf0 or 62f2f529cdf0 or 62f2f549cdf0
|
||||
//TODO: VRSQRT28SD 99(R15)(R15*1), X1, K1, X6 // 6292f509cdb43f63000000 or 6292f529cdb43f63000000 or 6292f549cdb43f63000000
|
||||
//TODO: VRSQRT28SD (DX), X1, K1, X6 // 62f2f509cd32 or 62f2f529cd32 or 62f2f549cd32
|
||||
//TODO: VRSQRT28SD X8, X8, K1, X6 // 62d2bd09cdf0 or 62d2bd29cdf0 or 62d2bd49cdf0
|
||||
//TODO: VRSQRT28SD X6, X8, K1, X6 // 62f2bd09cdf6 or 62f2bd29cdf6 or 62f2bd49cdf6
|
||||
//TODO: VRSQRT28SD X0, X8, K1, X6 // 62f2bd09cdf0 or 62f2bd29cdf0 or 62f2bd49cdf0
|
||||
//TODO: VRSQRT28SD 99(R15)(R15*1), X8, K1, X6 // 6292bd09cdb43f63000000 or 6292bd29cdb43f63000000 or 6292bd49cdb43f63000000
|
||||
//TODO: VRSQRT28SD (DX), X8, K1, X6 // 62f2bd09cd32 or 62f2bd29cd32 or 62f2bd49cd32
|
||||
//TODO: VRSQRT28SD X8, X6, K1, X17 // 62c2cd09cdc8 or 62c2cd29cdc8 or 62c2cd49cdc8
|
||||
//TODO: VRSQRT28SD X6, X6, K1, X17 // 62e2cd09cdce or 62e2cd29cdce or 62e2cd49cdce
|
||||
//TODO: VRSQRT28SD X0, X6, K1, X17 // 62e2cd09cdc8 or 62e2cd29cdc8 or 62e2cd49cdc8
|
||||
//TODO: VRSQRT28SD 99(R15)(R15*1), X6, K1, X17 // 6282cd09cd8c3f63000000 or 6282cd29cd8c3f63000000 or 6282cd49cd8c3f63000000
|
||||
//TODO: VRSQRT28SD (DX), X6, K1, X17 // 62e2cd09cd0a or 62e2cd29cd0a or 62e2cd49cd0a
|
||||
//TODO: VRSQRT28SD X8, X1, K1, X17 // 62c2f509cdc8 or 62c2f529cdc8 or 62c2f549cdc8
|
||||
//TODO: VRSQRT28SD X6, X1, K1, X17 // 62e2f509cdce or 62e2f529cdce or 62e2f549cdce
|
||||
//TODO: VRSQRT28SD X0, X1, K1, X17 // 62e2f509cdc8 or 62e2f529cdc8 or 62e2f549cdc8
|
||||
//TODO: VRSQRT28SD 99(R15)(R15*1), X1, K1, X17 // 6282f509cd8c3f63000000 or 6282f529cd8c3f63000000 or 6282f549cd8c3f63000000
|
||||
//TODO: VRSQRT28SD (DX), X1, K1, X17 // 62e2f509cd0a or 62e2f529cd0a or 62e2f549cd0a
|
||||
//TODO: VRSQRT28SD X8, X8, K1, X17 // 62c2bd09cdc8 or 62c2bd29cdc8 or 62c2bd49cdc8
|
||||
//TODO: VRSQRT28SD X6, X8, K1, X17 // 62e2bd09cdce or 62e2bd29cdce or 62e2bd49cdce
|
||||
//TODO: VRSQRT28SD X0, X8, K1, X17 // 62e2bd09cdc8 or 62e2bd29cdc8 or 62e2bd49cdc8
|
||||
//TODO: VRSQRT28SD 99(R15)(R15*1), X8, K1, X17 // 6282bd09cd8c3f63000000 or 6282bd29cd8c3f63000000 or 6282bd49cd8c3f63000000
|
||||
//TODO: VRSQRT28SD (DX), X8, K1, X17 // 62e2bd09cd0a or 62e2bd29cd0a or 62e2bd49cd0a
|
||||
//TODO: VRSQRT28SD X8, X6, K1, X28 // 6242cd09cde0 or 6242cd29cde0 or 6242cd49cde0
|
||||
//TODO: VRSQRT28SD X6, X6, K1, X28 // 6262cd09cde6 or 6262cd29cde6 or 6262cd49cde6
|
||||
//TODO: VRSQRT28SD X0, X6, K1, X28 // 6262cd09cde0 or 6262cd29cde0 or 6262cd49cde0
|
||||
//TODO: VRSQRT28SD 99(R15)(R15*1), X6, K1, X28 // 6202cd09cda43f63000000 or 6202cd29cda43f63000000 or 6202cd49cda43f63000000
|
||||
//TODO: VRSQRT28SD (DX), X6, K1, X28 // 6262cd09cd22 or 6262cd29cd22 or 6262cd49cd22
|
||||
//TODO: VRSQRT28SD X8, X1, K1, X28 // 6242f509cde0 or 6242f529cde0 or 6242f549cde0
|
||||
//TODO: VRSQRT28SD X6, X1, K1, X28 // 6262f509cde6 or 6262f529cde6 or 6262f549cde6
|
||||
//TODO: VRSQRT28SD X0, X1, K1, X28 // 6262f509cde0 or 6262f529cde0 or 6262f549cde0
|
||||
//TODO: VRSQRT28SD 99(R15)(R15*1), X1, K1, X28 // 6202f509cda43f63000000 or 6202f529cda43f63000000 or 6202f549cda43f63000000
|
||||
//TODO: VRSQRT28SD (DX), X1, K1, X28 // 6262f509cd22 or 6262f529cd22 or 6262f549cd22
|
||||
//TODO: VRSQRT28SD X8, X8, K1, X28 // 6242bd09cde0 or 6242bd29cde0 or 6242bd49cde0
|
||||
//TODO: VRSQRT28SD X6, X8, K1, X28 // 6262bd09cde6 or 6262bd29cde6 or 6262bd49cde6
|
||||
//TODO: VRSQRT28SD X0, X8, K1, X28 // 6262bd09cde0 or 6262bd29cde0 or 6262bd49cde0
|
||||
//TODO: VRSQRT28SD 99(R15)(R15*1), X8, K1, X28 // 6202bd09cda43f63000000 or 6202bd29cda43f63000000 or 6202bd49cda43f63000000
|
||||
//TODO: VRSQRT28SD (DX), X8, K1, X28 // 6262bd09cd22 or 6262bd29cd22 or 6262bd49cd22
|
||||
//TODO: VRSQRT28SS X16, X6, K7, X11 // 62324d0fcdd8
|
||||
//TODO: VRSQRT28SS X28, X6, K7, X11 // 62124d0fcddc
|
||||
//TODO: VRSQRT28SS X8, X6, K7, X11 // 62524d0fcdd8
|
||||
//TODO: VRSQRT28SS X16, X22, K7, X11 // 62324d07cdd8
|
||||
//TODO: VRSQRT28SS X28, X22, K7, X11 // 62124d07cddc
|
||||
//TODO: VRSQRT28SS X8, X22, K7, X11 // 62524d07cdd8
|
||||
//TODO: VRSQRT28SS X16, X12, K7, X11 // 62321d0fcdd8
|
||||
//TODO: VRSQRT28SS X28, X12, K7, X11 // 62121d0fcddc
|
||||
//TODO: VRSQRT28SS X8, X12, K7, X11 // 62521d0fcdd8
|
||||
//TODO: VRSQRT28SS X16, X6, K7, X16 // 62a24d0fcdc0
|
||||
//TODO: VRSQRT28SS X28, X6, K7, X16 // 62824d0fcdc4
|
||||
//TODO: VRSQRT28SS X8, X6, K7, X16 // 62c24d0fcdc0
|
||||
//TODO: VRSQRT28SS X16, X22, K7, X16 // 62a24d07cdc0
|
||||
//TODO: VRSQRT28SS X28, X22, K7, X16 // 62824d07cdc4
|
||||
//TODO: VRSQRT28SS X8, X22, K7, X16 // 62c24d07cdc0
|
||||
//TODO: VRSQRT28SS X16, X12, K7, X16 // 62a21d0fcdc0
|
||||
//TODO: VRSQRT28SS X28, X12, K7, X16 // 62821d0fcdc4
|
||||
//TODO: VRSQRT28SS X8, X12, K7, X16 // 62c21d0fcdc0
|
||||
//TODO: VRSQRT28SS X16, X6, K7, X6 // 62b24d0fcdf0
|
||||
//TODO: VRSQRT28SS X28, X6, K7, X6 // 62924d0fcdf4
|
||||
//TODO: VRSQRT28SS X8, X6, K7, X6 // 62d24d0fcdf0
|
||||
//TODO: VRSQRT28SS X16, X22, K7, X6 // 62b24d07cdf0
|
||||
//TODO: VRSQRT28SS X28, X22, K7, X6 // 62924d07cdf4
|
||||
//TODO: VRSQRT28SS X8, X22, K7, X6 // 62d24d07cdf0
|
||||
//TODO: VRSQRT28SS X16, X12, K7, X6 // 62b21d0fcdf0
|
||||
//TODO: VRSQRT28SS X28, X12, K7, X6 // 62921d0fcdf4
|
||||
//TODO: VRSQRT28SS X8, X12, K7, X6 // 62d21d0fcdf0
|
||||
//TODO: VRSQRT28SS X14, X19, K1, X15 // 62526501cdfe or 62526521cdfe or 62526541cdfe
|
||||
//TODO: VRSQRT28SS X0, X19, K1, X15 // 62726501cdf8 or 62726521cdf8 or 62726541cdf8
|
||||
//TODO: VRSQRT28SS 15(R8)(R14*4), X19, K1, X15 // 62126501cdbcb00f000000 or 62126521cdbcb00f000000 or 62126541cdbcb00f000000
|
||||
//TODO: VRSQRT28SS -7(CX)(DX*4), X19, K1, X15 // 62726501cdbc91f9ffffff or 62726521cdbc91f9ffffff or 62726541cdbc91f9ffffff
|
||||
//TODO: VRSQRT28SS X14, X13, K1, X15 // 62521509cdfe or 62521529cdfe or 62521549cdfe
|
||||
//TODO: VRSQRT28SS X0, X13, K1, X15 // 62721509cdf8 or 62721529cdf8 or 62721549cdf8
|
||||
//TODO: VRSQRT28SS 15(R8)(R14*4), X13, K1, X15 // 62121509cdbcb00f000000 or 62121529cdbcb00f000000 or 62121549cdbcb00f000000
|
||||
//TODO: VRSQRT28SS -7(CX)(DX*4), X13, K1, X15 // 62721509cdbc91f9ffffff or 62721529cdbc91f9ffffff or 62721549cdbc91f9ffffff
|
||||
//TODO: VRSQRT28SS X14, X2, K1, X15 // 62526d09cdfe or 62526d29cdfe or 62526d49cdfe
|
||||
//TODO: VRSQRT28SS X0, X2, K1, X15 // 62726d09cdf8 or 62726d29cdf8 or 62726d49cdf8
|
||||
//TODO: VRSQRT28SS 15(R8)(R14*4), X2, K1, X15 // 62126d09cdbcb00f000000 or 62126d29cdbcb00f000000 or 62126d49cdbcb00f000000
|
||||
//TODO: VRSQRT28SS -7(CX)(DX*4), X2, K1, X15 // 62726d09cdbc91f9ffffff or 62726d29cdbc91f9ffffff or 62726d49cdbc91f9ffffff
|
||||
//TODO: VRSQRT28SS X14, X19, K1, X11 // 62526501cdde or 62526521cdde or 62526541cdde
|
||||
//TODO: VRSQRT28SS X0, X19, K1, X11 // 62726501cdd8 or 62726521cdd8 or 62726541cdd8
|
||||
//TODO: VRSQRT28SS 15(R8)(R14*4), X19, K1, X11 // 62126501cd9cb00f000000 or 62126521cd9cb00f000000 or 62126541cd9cb00f000000
|
||||
//TODO: VRSQRT28SS -7(CX)(DX*4), X19, K1, X11 // 62726501cd9c91f9ffffff or 62726521cd9c91f9ffffff or 62726541cd9c91f9ffffff
|
||||
//TODO: VRSQRT28SS X14, X13, K1, X11 // 62521509cdde or 62521529cdde or 62521549cdde
|
||||
//TODO: VRSQRT28SS X0, X13, K1, X11 // 62721509cdd8 or 62721529cdd8 or 62721549cdd8
|
||||
//TODO: VRSQRT28SS 15(R8)(R14*4), X13, K1, X11 // 62121509cd9cb00f000000 or 62121529cd9cb00f000000 or 62121549cd9cb00f000000
|
||||
//TODO: VRSQRT28SS -7(CX)(DX*4), X13, K1, X11 // 62721509cd9c91f9ffffff or 62721529cd9c91f9ffffff or 62721549cd9c91f9ffffff
|
||||
//TODO: VRSQRT28SS X14, X2, K1, X11 // 62526d09cdde or 62526d29cdde or 62526d49cdde
|
||||
//TODO: VRSQRT28SS X0, X2, K1, X11 // 62726d09cdd8 or 62726d29cdd8 or 62726d49cdd8
|
||||
//TODO: VRSQRT28SS 15(R8)(R14*4), X2, K1, X11 // 62126d09cd9cb00f000000 or 62126d29cd9cb00f000000 or 62126d49cd9cb00f000000
|
||||
//TODO: VRSQRT28SS -7(CX)(DX*4), X2, K1, X11 // 62726d09cd9c91f9ffffff or 62726d29cd9c91f9ffffff or 62726d49cd9c91f9ffffff
|
||||
//TODO: VRSQRT28SS X14, X19, K1, X1 // 62d26501cdce or 62d26521cdce or 62d26541cdce
|
||||
//TODO: VRSQRT28SS X0, X19, K1, X1 // 62f26501cdc8 or 62f26521cdc8 or 62f26541cdc8
|
||||
//TODO: VRSQRT28SS 15(R8)(R14*4), X19, K1, X1 // 62926501cd8cb00f000000 or 62926521cd8cb00f000000 or 62926541cd8cb00f000000
|
||||
//TODO: VRSQRT28SS -7(CX)(DX*4), X19, K1, X1 // 62f26501cd8c91f9ffffff or 62f26521cd8c91f9ffffff or 62f26541cd8c91f9ffffff
|
||||
//TODO: VRSQRT28SS X14, X13, K1, X1 // 62d21509cdce or 62d21529cdce or 62d21549cdce
|
||||
//TODO: VRSQRT28SS X0, X13, K1, X1 // 62f21509cdc8 or 62f21529cdc8 or 62f21549cdc8
|
||||
//TODO: VRSQRT28SS 15(R8)(R14*4), X13, K1, X1 // 62921509cd8cb00f000000 or 62921529cd8cb00f000000 or 62921549cd8cb00f000000
|
||||
//TODO: VRSQRT28SS -7(CX)(DX*4), X13, K1, X1 // 62f21509cd8c91f9ffffff or 62f21529cd8c91f9ffffff or 62f21549cd8c91f9ffffff
|
||||
//TODO: VRSQRT28SS X14, X2, K1, X1 // 62d26d09cdce or 62d26d29cdce or 62d26d49cdce
|
||||
//TODO: VRSQRT28SS X0, X2, K1, X1 // 62f26d09cdc8 or 62f26d29cdc8 or 62f26d49cdc8
|
||||
//TODO: VRSQRT28SS 15(R8)(R14*4), X2, K1, X1 // 62926d09cd8cb00f000000 or 62926d29cd8cb00f000000 or 62926d49cd8cb00f000000
|
||||
//TODO: VRSQRT28SS -7(CX)(DX*4), X2, K1, X1 // 62f26d09cd8c91f9ffffff or 62f26d29cd8c91f9ffffff or 62f26d49cd8c91f9ffffff
|
||||
VEXP2PD Z17, K7, Z20 // 62a2fd4fc8e1
|
||||
VEXP2PD Z0, K7, Z20 // 62e2fd4fc8e0
|
||||
VEXP2PD Z17, K7, Z0 // 62b2fd4fc8c1
|
||||
VEXP2PD Z0, K7, Z0 // 62f2fd4fc8c0
|
||||
VEXP2PD Z31, K2, Z17 // 6282fd4ac8cf
|
||||
VEXP2PD Z0, K2, Z17 // 62e2fd4ac8c8
|
||||
VEXP2PD (R14), K2, Z17 // 62c2fd4ac80e
|
||||
VEXP2PD -7(DI)(R8*8), K2, Z17 // 62a2fd4ac88cc7f9ffffff
|
||||
VEXP2PD Z31, K2, Z23 // 6282fd4ac8ff
|
||||
VEXP2PD Z0, K2, Z23 // 62e2fd4ac8f8
|
||||
VEXP2PD (R14), K2, Z23 // 62c2fd4ac83e
|
||||
VEXP2PD -7(DI)(R8*8), K2, Z23 // 62a2fd4ac8bcc7f9ffffff
|
||||
VEXP2PS Z6, K4, Z21 // 62e27d4cc8ee
|
||||
VEXP2PS Z9, K4, Z21 // 62c27d4cc8e9
|
||||
VEXP2PS Z6, K4, Z9 // 62727d4cc8ce
|
||||
VEXP2PS Z9, K4, Z9 // 62527d4cc8c9
|
||||
VEXP2PS Z20, K1, Z1 // 62b27d49c8cc
|
||||
VEXP2PS Z9, K1, Z1 // 62d27d49c8c9
|
||||
VEXP2PS 99(R15)(R15*4), K1, Z1 // 62927d49c88cbf63000000
|
||||
VEXP2PS 15(DX), K1, Z1 // 62f27d49c88a0f000000
|
||||
VEXP2PS Z20, K1, Z9 // 62327d49c8cc
|
||||
VEXP2PS Z9, K1, Z9 // 62527d49c8c9
|
||||
VEXP2PS 99(R15)(R15*4), K1, Z9 // 62127d49c88cbf63000000
|
||||
VEXP2PS 15(DX), K1, Z9 // 62727d49c88a0f000000
|
||||
VRCP28PD Z13, K7, Z11 // 6252fd4fcadd
|
||||
VRCP28PD Z14, K7, Z11 // 6252fd4fcade
|
||||
VRCP28PD Z13, K7, Z5 // 62d2fd4fcaed
|
||||
VRCP28PD Z14, K7, Z5 // 62d2fd4fcaee
|
||||
VRCP28PD Z2, K2, Z5 // 62f2fd4acaea
|
||||
VRCP28PD -7(CX)(DX*1), K2, Z5 // 62f2fd4acaac11f9ffffff
|
||||
VRCP28PD -15(R14)(R15*4), K2, Z5 // 6292fd4acaacbef1ffffff
|
||||
VRCP28PD Z2, K2, Z23 // 62e2fd4acafa
|
||||
VRCP28PD -7(CX)(DX*1), K2, Z23 // 62e2fd4acabc11f9ffffff
|
||||
VRCP28PD -15(R14)(R15*4), K2, Z23 // 6282fd4acabcbef1ffffff
|
||||
VRCP28PS Z26, K5, Z6 // 62927d4dcaf2
|
||||
VRCP28PS Z14, K5, Z6 // 62d27d4dcaf6
|
||||
VRCP28PS Z26, K5, Z14 // 62127d4dcaf2
|
||||
VRCP28PS Z14, K5, Z14 // 62527d4dcaf6
|
||||
VRCP28PS Z13, K3, Z28 // 62427d4bcae5
|
||||
VRCP28PS Z21, K3, Z28 // 62227d4bcae5
|
||||
VRCP28PS 15(DX)(BX*1), K3, Z28 // 62627d4bcaa41a0f000000
|
||||
VRCP28PS -7(CX)(DX*2), K3, Z28 // 62627d4bcaa451f9ffffff
|
||||
VRCP28PS Z13, K3, Z6 // 62d27d4bcaf5
|
||||
VRCP28PS Z21, K3, Z6 // 62b27d4bcaf5
|
||||
VRCP28PS 15(DX)(BX*1), K3, Z6 // 62f27d4bcab41a0f000000
|
||||
VRCP28PS -7(CX)(DX*2), K3, Z6 // 62f27d4bcab451f9ffffff
|
||||
VRCP28SD X25, X14, K4, X19 // 62828d0ccbd9
|
||||
VRCP28SD X11, X14, K4, X19 // 62c28d0ccbdb
|
||||
VRCP28SD X17, X14, K4, X19 // 62a28d0ccbd9
|
||||
VRCP28SD X25, X0, K4, X19 // 6282fd0ccbd9
|
||||
VRCP28SD X11, X0, K4, X19 // 62c2fd0ccbdb
|
||||
VRCP28SD X17, X0, K4, X19 // 62a2fd0ccbd9
|
||||
VRCP28SD X25, X14, K4, X13 // 62128d0ccbe9
|
||||
VRCP28SD X11, X14, K4, X13 // 62528d0ccbeb
|
||||
VRCP28SD X17, X14, K4, X13 // 62328d0ccbe9
|
||||
VRCP28SD X25, X0, K4, X13 // 6212fd0ccbe9
|
||||
VRCP28SD X11, X0, K4, X13 // 6252fd0ccbeb
|
||||
VRCP28SD X17, X0, K4, X13 // 6232fd0ccbe9
|
||||
VRCP28SD X25, X14, K4, X2 // 62928d0ccbd1
|
||||
VRCP28SD X11, X14, K4, X2 // 62d28d0ccbd3
|
||||
VRCP28SD X17, X14, K4, X2 // 62b28d0ccbd1
|
||||
VRCP28SD X25, X0, K4, X2 // 6292fd0ccbd1
|
||||
VRCP28SD X11, X0, K4, X2 // 62d2fd0ccbd3
|
||||
VRCP28SD X17, X0, K4, X2 // 62b2fd0ccbd1
|
||||
VRCP28SD X2, X2, K2, X18 // 62e2ed0acbd2 or 62e2ed2acbd2 or 62e2ed4acbd2
|
||||
VRCP28SD X27, X2, K2, X18 // 6282ed0acbd3 or 6282ed2acbd3 or 6282ed4acbd3
|
||||
VRCP28SD X26, X2, K2, X18 // 6282ed0acbd2 or 6282ed2acbd2 or 6282ed4acbd2
|
||||
VRCP28SD 17(SP)(BP*8), X2, K2, X18 // 62e2ed0acb94ec11000000 or 62e2ed2acb94ec11000000 or 62e2ed4acb94ec11000000
|
||||
VRCP28SD 17(SP)(BP*4), X2, K2, X18 // 62e2ed0acb94ac11000000 or 62e2ed2acb94ac11000000 or 62e2ed4acb94ac11000000
|
||||
VRCP28SD X2, X24, K2, X18 // 62e2bd02cbd2 or 62e2bd22cbd2 or 62e2bd42cbd2
|
||||
VRCP28SD X27, X24, K2, X18 // 6282bd02cbd3 or 6282bd22cbd3 or 6282bd42cbd3
|
||||
VRCP28SD X26, X24, K2, X18 // 6282bd02cbd2 or 6282bd22cbd2 or 6282bd42cbd2
|
||||
VRCP28SD 17(SP)(BP*8), X24, K2, X18 // 62e2bd02cb94ec11000000 or 62e2bd22cb94ec11000000 or 62e2bd42cb94ec11000000
|
||||
VRCP28SD 17(SP)(BP*4), X24, K2, X18 // 62e2bd02cb94ac11000000 or 62e2bd22cb94ac11000000 or 62e2bd42cb94ac11000000
|
||||
VRCP28SD X2, X2, K2, X11 // 6272ed0acbda or 6272ed2acbda or 6272ed4acbda
|
||||
VRCP28SD X27, X2, K2, X11 // 6212ed0acbdb or 6212ed2acbdb or 6212ed4acbdb
|
||||
VRCP28SD X26, X2, K2, X11 // 6212ed0acbda or 6212ed2acbda or 6212ed4acbda
|
||||
VRCP28SD 17(SP)(BP*8), X2, K2, X11 // 6272ed0acb9cec11000000 or 6272ed2acb9cec11000000 or 6272ed4acb9cec11000000
|
||||
VRCP28SD 17(SP)(BP*4), X2, K2, X11 // 6272ed0acb9cac11000000 or 6272ed2acb9cac11000000 or 6272ed4acb9cac11000000
|
||||
VRCP28SD X2, X24, K2, X11 // 6272bd02cbda or 6272bd22cbda or 6272bd42cbda
|
||||
VRCP28SD X27, X24, K2, X11 // 6212bd02cbdb or 6212bd22cbdb or 6212bd42cbdb
|
||||
VRCP28SD X26, X24, K2, X11 // 6212bd02cbda or 6212bd22cbda or 6212bd42cbda
|
||||
VRCP28SD 17(SP)(BP*8), X24, K2, X11 // 6272bd02cb9cec11000000 or 6272bd22cb9cec11000000 or 6272bd42cb9cec11000000
|
||||
VRCP28SD 17(SP)(BP*4), X24, K2, X11 // 6272bd02cb9cac11000000 or 6272bd22cb9cac11000000 or 6272bd42cb9cac11000000
|
||||
VRCP28SD X2, X2, K2, X9 // 6272ed0acbca or 6272ed2acbca or 6272ed4acbca
|
||||
VRCP28SD X27, X2, K2, X9 // 6212ed0acbcb or 6212ed2acbcb or 6212ed4acbcb
|
||||
VRCP28SD X26, X2, K2, X9 // 6212ed0acbca or 6212ed2acbca or 6212ed4acbca
|
||||
VRCP28SD 17(SP)(BP*8), X2, K2, X9 // 6272ed0acb8cec11000000 or 6272ed2acb8cec11000000 or 6272ed4acb8cec11000000
|
||||
VRCP28SD 17(SP)(BP*4), X2, K2, X9 // 6272ed0acb8cac11000000 or 6272ed2acb8cac11000000 or 6272ed4acb8cac11000000
|
||||
VRCP28SD X2, X24, K2, X9 // 6272bd02cbca or 6272bd22cbca or 6272bd42cbca
|
||||
VRCP28SD X27, X24, K2, X9 // 6212bd02cbcb or 6212bd22cbcb or 6212bd42cbcb
|
||||
VRCP28SD X26, X24, K2, X9 // 6212bd02cbca or 6212bd22cbca or 6212bd42cbca
|
||||
VRCP28SD 17(SP)(BP*8), X24, K2, X9 // 6272bd02cb8cec11000000 or 6272bd22cb8cec11000000 or 6272bd42cb8cec11000000
|
||||
VRCP28SD 17(SP)(BP*4), X24, K2, X9 // 6272bd02cb8cac11000000 or 6272bd22cb8cac11000000 or 6272bd42cb8cac11000000
|
||||
VRCP28SS X13, X11, K2, X22 // 62c2250acbf5
|
||||
VRCP28SS X6, X11, K2, X22 // 62e2250acbf6
|
||||
VRCP28SS X12, X11, K2, X22 // 62c2250acbf4
|
||||
VRCP28SS X13, X15, K2, X22 // 62c2050acbf5
|
||||
VRCP28SS X6, X15, K2, X22 // 62e2050acbf6
|
||||
VRCP28SS X12, X15, K2, X22 // 62c2050acbf4
|
||||
VRCP28SS X13, X30, K2, X22 // 62c20d02cbf5
|
||||
VRCP28SS X6, X30, K2, X22 // 62e20d02cbf6
|
||||
VRCP28SS X12, X30, K2, X22 // 62c20d02cbf4
|
||||
VRCP28SS X13, X11, K2, X30 // 6242250acbf5
|
||||
VRCP28SS X6, X11, K2, X30 // 6262250acbf6
|
||||
VRCP28SS X12, X11, K2, X30 // 6242250acbf4
|
||||
VRCP28SS X13, X15, K2, X30 // 6242050acbf5
|
||||
VRCP28SS X6, X15, K2, X30 // 6262050acbf6
|
||||
VRCP28SS X12, X15, K2, X30 // 6242050acbf4
|
||||
VRCP28SS X13, X30, K2, X30 // 62420d02cbf5
|
||||
VRCP28SS X6, X30, K2, X30 // 62620d02cbf6
|
||||
VRCP28SS X12, X30, K2, X30 // 62420d02cbf4
|
||||
VRCP28SS X13, X11, K2, X3 // 62d2250acbdd
|
||||
VRCP28SS X6, X11, K2, X3 // 62f2250acbde
|
||||
VRCP28SS X12, X11, K2, X3 // 62d2250acbdc
|
||||
VRCP28SS X13, X15, K2, X3 // 62d2050acbdd
|
||||
VRCP28SS X6, X15, K2, X3 // 62f2050acbde
|
||||
VRCP28SS X12, X15, K2, X3 // 62d2050acbdc
|
||||
VRCP28SS X13, X30, K2, X3 // 62d20d02cbdd
|
||||
VRCP28SS X6, X30, K2, X3 // 62f20d02cbde
|
||||
VRCP28SS X12, X30, K2, X3 // 62d20d02cbdc
|
||||
VRCP28SS X26, X20, K3, X23 // 62825d03cbfa or 62825d23cbfa or 62825d43cbfa
|
||||
VRCP28SS X19, X20, K3, X23 // 62a25d03cbfb or 62a25d23cbfb or 62a25d43cbfb
|
||||
VRCP28SS X0, X20, K3, X23 // 62e25d03cbf8 or 62e25d23cbf8 or 62e25d43cbf8
|
||||
VRCP28SS -7(CX), X20, K3, X23 // 62e25d03cbb9f9ffffff or 62e25d23cbb9f9ffffff or 62e25d43cbb9f9ffffff
|
||||
VRCP28SS 15(DX)(BX*4), X20, K3, X23 // 62e25d03cbbc9a0f000000 or 62e25d23cbbc9a0f000000 or 62e25d43cbbc9a0f000000
|
||||
VRCP28SS X26, X2, K3, X23 // 62826d0bcbfa or 62826d2bcbfa or 62826d4bcbfa
|
||||
VRCP28SS X19, X2, K3, X23 // 62a26d0bcbfb or 62a26d2bcbfb or 62a26d4bcbfb
|
||||
VRCP28SS X0, X2, K3, X23 // 62e26d0bcbf8 or 62e26d2bcbf8 or 62e26d4bcbf8
|
||||
VRCP28SS -7(CX), X2, K3, X23 // 62e26d0bcbb9f9ffffff or 62e26d2bcbb9f9ffffff or 62e26d4bcbb9f9ffffff
|
||||
VRCP28SS 15(DX)(BX*4), X2, K3, X23 // 62e26d0bcbbc9a0f000000 or 62e26d2bcbbc9a0f000000 or 62e26d4bcbbc9a0f000000
|
||||
VRCP28SS X26, X9, K3, X23 // 6282350bcbfa or 6282352bcbfa or 6282354bcbfa
|
||||
VRCP28SS X19, X9, K3, X23 // 62a2350bcbfb or 62a2352bcbfb or 62a2354bcbfb
|
||||
VRCP28SS X0, X9, K3, X23 // 62e2350bcbf8 or 62e2352bcbf8 or 62e2354bcbf8
|
||||
VRCP28SS -7(CX), X9, K3, X23 // 62e2350bcbb9f9ffffff or 62e2352bcbb9f9ffffff or 62e2354bcbb9f9ffffff
|
||||
VRCP28SS 15(DX)(BX*4), X9, K3, X23 // 62e2350bcbbc9a0f000000 or 62e2352bcbbc9a0f000000 or 62e2354bcbbc9a0f000000
|
||||
VRCP28SS X26, X20, K3, X30 // 62025d03cbf2 or 62025d23cbf2 or 62025d43cbf2
|
||||
VRCP28SS X19, X20, K3, X30 // 62225d03cbf3 or 62225d23cbf3 or 62225d43cbf3
|
||||
VRCP28SS X0, X20, K3, X30 // 62625d03cbf0 or 62625d23cbf0 or 62625d43cbf0
|
||||
VRCP28SS -7(CX), X20, K3, X30 // 62625d03cbb1f9ffffff or 62625d23cbb1f9ffffff or 62625d43cbb1f9ffffff
|
||||
VRCP28SS 15(DX)(BX*4), X20, K3, X30 // 62625d03cbb49a0f000000 or 62625d23cbb49a0f000000 or 62625d43cbb49a0f000000
|
||||
VRCP28SS X26, X2, K3, X30 // 62026d0bcbf2 or 62026d2bcbf2 or 62026d4bcbf2
|
||||
VRCP28SS X19, X2, K3, X30 // 62226d0bcbf3 or 62226d2bcbf3 or 62226d4bcbf3
|
||||
VRCP28SS X0, X2, K3, X30 // 62626d0bcbf0 or 62626d2bcbf0 or 62626d4bcbf0
|
||||
VRCP28SS -7(CX), X2, K3, X30 // 62626d0bcbb1f9ffffff or 62626d2bcbb1f9ffffff or 62626d4bcbb1f9ffffff
|
||||
VRCP28SS 15(DX)(BX*4), X2, K3, X30 // 62626d0bcbb49a0f000000 or 62626d2bcbb49a0f000000 or 62626d4bcbb49a0f000000
|
||||
VRCP28SS X26, X9, K3, X30 // 6202350bcbf2 or 6202352bcbf2 or 6202354bcbf2
|
||||
VRCP28SS X19, X9, K3, X30 // 6222350bcbf3 or 6222352bcbf3 or 6222354bcbf3
|
||||
VRCP28SS X0, X9, K3, X30 // 6262350bcbf0 or 6262352bcbf0 or 6262354bcbf0
|
||||
VRCP28SS -7(CX), X9, K3, X30 // 6262350bcbb1f9ffffff or 6262352bcbb1f9ffffff or 6262354bcbb1f9ffffff
|
||||
VRCP28SS 15(DX)(BX*4), X9, K3, X30 // 6262350bcbb49a0f000000 or 6262352bcbb49a0f000000 or 6262354bcbb49a0f000000
|
||||
VRCP28SS X26, X20, K3, X8 // 62125d03cbc2 or 62125d23cbc2 or 62125d43cbc2
|
||||
VRCP28SS X19, X20, K3, X8 // 62325d03cbc3 or 62325d23cbc3 or 62325d43cbc3
|
||||
VRCP28SS X0, X20, K3, X8 // 62725d03cbc0 or 62725d23cbc0 or 62725d43cbc0
|
||||
VRCP28SS -7(CX), X20, K3, X8 // 62725d03cb81f9ffffff or 62725d23cb81f9ffffff or 62725d43cb81f9ffffff
|
||||
VRCP28SS 15(DX)(BX*4), X20, K3, X8 // 62725d03cb849a0f000000 or 62725d23cb849a0f000000 or 62725d43cb849a0f000000
|
||||
VRCP28SS X26, X2, K3, X8 // 62126d0bcbc2 or 62126d2bcbc2 or 62126d4bcbc2
|
||||
VRCP28SS X19, X2, K3, X8 // 62326d0bcbc3 or 62326d2bcbc3 or 62326d4bcbc3
|
||||
VRCP28SS X0, X2, K3, X8 // 62726d0bcbc0 or 62726d2bcbc0 or 62726d4bcbc0
|
||||
VRCP28SS -7(CX), X2, K3, X8 // 62726d0bcb81f9ffffff or 62726d2bcb81f9ffffff or 62726d4bcb81f9ffffff
|
||||
VRCP28SS 15(DX)(BX*4), X2, K3, X8 // 62726d0bcb849a0f000000 or 62726d2bcb849a0f000000 or 62726d4bcb849a0f000000
|
||||
VRCP28SS X26, X9, K3, X8 // 6212350bcbc2 or 6212352bcbc2 or 6212354bcbc2
|
||||
VRCP28SS X19, X9, K3, X8 // 6232350bcbc3 or 6232352bcbc3 or 6232354bcbc3
|
||||
VRCP28SS X0, X9, K3, X8 // 6272350bcbc0 or 6272352bcbc0 or 6272354bcbc0
|
||||
VRCP28SS -7(CX), X9, K3, X8 // 6272350bcb81f9ffffff or 6272352bcb81f9ffffff or 6272354bcb81f9ffffff
|
||||
VRCP28SS 15(DX)(BX*4), X9, K3, X8 // 6272350bcb849a0f000000 or 6272352bcb849a0f000000 or 6272354bcb849a0f000000
|
||||
VRSQRT28PD Z7, K3, Z3 // 62f2fd4bccdf
|
||||
VRSQRT28PD Z9, K3, Z3 // 62d2fd4bccd9
|
||||
VRSQRT28PD Z7, K3, Z27 // 6262fd4bccdf
|
||||
VRSQRT28PD Z9, K3, Z27 // 6242fd4bccd9
|
||||
VRSQRT28PD Z20, K3, Z0 // 62b2fd4bccc4
|
||||
VRSQRT28PD Z28, K3, Z0 // 6292fd4bccc4
|
||||
VRSQRT28PD (SI), K3, Z0 // 62f2fd4bcc06
|
||||
VRSQRT28PD 7(SI)(DI*2), K3, Z0 // 62f2fd4bcc847e07000000
|
||||
VRSQRT28PD Z20, K3, Z6 // 62b2fd4bccf4
|
||||
VRSQRT28PD Z28, K3, Z6 // 6292fd4bccf4
|
||||
VRSQRT28PD (SI), K3, Z6 // 62f2fd4bcc36
|
||||
VRSQRT28PD 7(SI)(DI*2), K3, Z6 // 62f2fd4bccb47e07000000
|
||||
VRSQRT28PS Z9, K2, Z3 // 62d27d4accd9
|
||||
VRSQRT28PS Z19, K2, Z3 // 62b27d4accdb
|
||||
VRSQRT28PS Z9, K2, Z30 // 62427d4accf1
|
||||
VRSQRT28PS Z19, K2, Z30 // 62227d4accf3
|
||||
VRSQRT28PS Z11, K1, Z12 // 62527d49cce3
|
||||
VRSQRT28PS Z5, K1, Z12 // 62727d49cce5
|
||||
VRSQRT28PS 17(SP)(BP*8), K1, Z12 // 62727d49cca4ec11000000
|
||||
VRSQRT28PS 17(SP)(BP*4), K1, Z12 // 62727d49cca4ac11000000
|
||||
VRSQRT28PS Z11, K1, Z22 // 62c27d49ccf3
|
||||
VRSQRT28PS Z5, K1, Z22 // 62e27d49ccf5
|
||||
VRSQRT28PS 17(SP)(BP*8), K1, Z22 // 62e27d49ccb4ec11000000
|
||||
VRSQRT28PS 17(SP)(BP*4), K1, Z22 // 62e27d49ccb4ac11000000
|
||||
VRSQRT28SD X20, X20, K2, X31 // 6222dd02cdfc
|
||||
VRSQRT28SD X16, X20, K2, X31 // 6222dd02cdf8
|
||||
VRSQRT28SD X12, X20, K2, X31 // 6242dd02cdfc
|
||||
VRSQRT28SD X20, X24, K2, X31 // 6222bd02cdfc
|
||||
VRSQRT28SD X16, X24, K2, X31 // 6222bd02cdf8
|
||||
VRSQRT28SD X12, X24, K2, X31 // 6242bd02cdfc
|
||||
VRSQRT28SD X20, X7, K2, X31 // 6222c50acdfc
|
||||
VRSQRT28SD X16, X7, K2, X31 // 6222c50acdf8
|
||||
VRSQRT28SD X12, X7, K2, X31 // 6242c50acdfc
|
||||
VRSQRT28SD X20, X20, K2, X3 // 62b2dd02cddc
|
||||
VRSQRT28SD X16, X20, K2, X3 // 62b2dd02cdd8
|
||||
VRSQRT28SD X12, X20, K2, X3 // 62d2dd02cddc
|
||||
VRSQRT28SD X20, X24, K2, X3 // 62b2bd02cddc
|
||||
VRSQRT28SD X16, X24, K2, X3 // 62b2bd02cdd8
|
||||
VRSQRT28SD X12, X24, K2, X3 // 62d2bd02cddc
|
||||
VRSQRT28SD X20, X7, K2, X3 // 62b2c50acddc
|
||||
VRSQRT28SD X16, X7, K2, X3 // 62b2c50acdd8
|
||||
VRSQRT28SD X12, X7, K2, X3 // 62d2c50acddc
|
||||
VRSQRT28SD X20, X20, K2, X28 // 6222dd02cde4
|
||||
VRSQRT28SD X16, X20, K2, X28 // 6222dd02cde0
|
||||
VRSQRT28SD X12, X20, K2, X28 // 6242dd02cde4
|
||||
VRSQRT28SD X20, X24, K2, X28 // 6222bd02cde4
|
||||
VRSQRT28SD X16, X24, K2, X28 // 6222bd02cde0
|
||||
VRSQRT28SD X12, X24, K2, X28 // 6242bd02cde4
|
||||
VRSQRT28SD X20, X7, K2, X28 // 6222c50acde4
|
||||
VRSQRT28SD X16, X7, K2, X28 // 6222c50acde0
|
||||
VRSQRT28SD X12, X7, K2, X28 // 6242c50acde4
|
||||
VRSQRT28SD X8, X6, K1, X6 // 62d2cd09cdf0 or 62d2cd29cdf0 or 62d2cd49cdf0
|
||||
VRSQRT28SD X6, X6, K1, X6 // 62f2cd09cdf6 or 62f2cd29cdf6 or 62f2cd49cdf6
|
||||
VRSQRT28SD X0, X6, K1, X6 // 62f2cd09cdf0 or 62f2cd29cdf0 or 62f2cd49cdf0
|
||||
VRSQRT28SD 99(R15)(R15*1), X6, K1, X6 // 6292cd09cdb43f63000000 or 6292cd29cdb43f63000000 or 6292cd49cdb43f63000000
|
||||
VRSQRT28SD (DX), X6, K1, X6 // 62f2cd09cd32 or 62f2cd29cd32 or 62f2cd49cd32
|
||||
VRSQRT28SD X8, X1, K1, X6 // 62d2f509cdf0 or 62d2f529cdf0 or 62d2f549cdf0
|
||||
VRSQRT28SD X6, X1, K1, X6 // 62f2f509cdf6 or 62f2f529cdf6 or 62f2f549cdf6
|
||||
VRSQRT28SD X0, X1, K1, X6 // 62f2f509cdf0 or 62f2f529cdf0 or 62f2f549cdf0
|
||||
VRSQRT28SD 99(R15)(R15*1), X1, K1, X6 // 6292f509cdb43f63000000 or 6292f529cdb43f63000000 or 6292f549cdb43f63000000
|
||||
VRSQRT28SD (DX), X1, K1, X6 // 62f2f509cd32 or 62f2f529cd32 or 62f2f549cd32
|
||||
VRSQRT28SD X8, X8, K1, X6 // 62d2bd09cdf0 or 62d2bd29cdf0 or 62d2bd49cdf0
|
||||
VRSQRT28SD X6, X8, K1, X6 // 62f2bd09cdf6 or 62f2bd29cdf6 or 62f2bd49cdf6
|
||||
VRSQRT28SD X0, X8, K1, X6 // 62f2bd09cdf0 or 62f2bd29cdf0 or 62f2bd49cdf0
|
||||
VRSQRT28SD 99(R15)(R15*1), X8, K1, X6 // 6292bd09cdb43f63000000 or 6292bd29cdb43f63000000 or 6292bd49cdb43f63000000
|
||||
VRSQRT28SD (DX), X8, K1, X6 // 62f2bd09cd32 or 62f2bd29cd32 or 62f2bd49cd32
|
||||
VRSQRT28SD X8, X6, K1, X17 // 62c2cd09cdc8 or 62c2cd29cdc8 or 62c2cd49cdc8
|
||||
VRSQRT28SD X6, X6, K1, X17 // 62e2cd09cdce or 62e2cd29cdce or 62e2cd49cdce
|
||||
VRSQRT28SD X0, X6, K1, X17 // 62e2cd09cdc8 or 62e2cd29cdc8 or 62e2cd49cdc8
|
||||
VRSQRT28SD 99(R15)(R15*1), X6, K1, X17 // 6282cd09cd8c3f63000000 or 6282cd29cd8c3f63000000 or 6282cd49cd8c3f63000000
|
||||
VRSQRT28SD (DX), X6, K1, X17 // 62e2cd09cd0a or 62e2cd29cd0a or 62e2cd49cd0a
|
||||
VRSQRT28SD X8, X1, K1, X17 // 62c2f509cdc8 or 62c2f529cdc8 or 62c2f549cdc8
|
||||
VRSQRT28SD X6, X1, K1, X17 // 62e2f509cdce or 62e2f529cdce or 62e2f549cdce
|
||||
VRSQRT28SD X0, X1, K1, X17 // 62e2f509cdc8 or 62e2f529cdc8 or 62e2f549cdc8
|
||||
VRSQRT28SD 99(R15)(R15*1), X1, K1, X17 // 6282f509cd8c3f63000000 or 6282f529cd8c3f63000000 or 6282f549cd8c3f63000000
|
||||
VRSQRT28SD (DX), X1, K1, X17 // 62e2f509cd0a or 62e2f529cd0a or 62e2f549cd0a
|
||||
VRSQRT28SD X8, X8, K1, X17 // 62c2bd09cdc8 or 62c2bd29cdc8 or 62c2bd49cdc8
|
||||
VRSQRT28SD X6, X8, K1, X17 // 62e2bd09cdce or 62e2bd29cdce or 62e2bd49cdce
|
||||
VRSQRT28SD X0, X8, K1, X17 // 62e2bd09cdc8 or 62e2bd29cdc8 or 62e2bd49cdc8
|
||||
VRSQRT28SD 99(R15)(R15*1), X8, K1, X17 // 6282bd09cd8c3f63000000 or 6282bd29cd8c3f63000000 or 6282bd49cd8c3f63000000
|
||||
VRSQRT28SD (DX), X8, K1, X17 // 62e2bd09cd0a or 62e2bd29cd0a or 62e2bd49cd0a
|
||||
VRSQRT28SD X8, X6, K1, X28 // 6242cd09cde0 or 6242cd29cde0 or 6242cd49cde0
|
||||
VRSQRT28SD X6, X6, K1, X28 // 6262cd09cde6 or 6262cd29cde6 or 6262cd49cde6
|
||||
VRSQRT28SD X0, X6, K1, X28 // 6262cd09cde0 or 6262cd29cde0 or 6262cd49cde0
|
||||
VRSQRT28SD 99(R15)(R15*1), X6, K1, X28 // 6202cd09cda43f63000000 or 6202cd29cda43f63000000 or 6202cd49cda43f63000000
|
||||
VRSQRT28SD (DX), X6, K1, X28 // 6262cd09cd22 or 6262cd29cd22 or 6262cd49cd22
|
||||
VRSQRT28SD X8, X1, K1, X28 // 6242f509cde0 or 6242f529cde0 or 6242f549cde0
|
||||
VRSQRT28SD X6, X1, K1, X28 // 6262f509cde6 or 6262f529cde6 or 6262f549cde6
|
||||
VRSQRT28SD X0, X1, K1, X28 // 6262f509cde0 or 6262f529cde0 or 6262f549cde0
|
||||
VRSQRT28SD 99(R15)(R15*1), X1, K1, X28 // 6202f509cda43f63000000 or 6202f529cda43f63000000 or 6202f549cda43f63000000
|
||||
VRSQRT28SD (DX), X1, K1, X28 // 6262f509cd22 or 6262f529cd22 or 6262f549cd22
|
||||
VRSQRT28SD X8, X8, K1, X28 // 6242bd09cde0 or 6242bd29cde0 or 6242bd49cde0
|
||||
VRSQRT28SD X6, X8, K1, X28 // 6262bd09cde6 or 6262bd29cde6 or 6262bd49cde6
|
||||
VRSQRT28SD X0, X8, K1, X28 // 6262bd09cde0 or 6262bd29cde0 or 6262bd49cde0
|
||||
VRSQRT28SD 99(R15)(R15*1), X8, K1, X28 // 6202bd09cda43f63000000 or 6202bd29cda43f63000000 or 6202bd49cda43f63000000
|
||||
VRSQRT28SD (DX), X8, K1, X28 // 6262bd09cd22 or 6262bd29cd22 or 6262bd49cd22
|
||||
VRSQRT28SS X16, X6, K7, X11 // 62324d0fcdd8
|
||||
VRSQRT28SS X28, X6, K7, X11 // 62124d0fcddc
|
||||
VRSQRT28SS X8, X6, K7, X11 // 62524d0fcdd8
|
||||
VRSQRT28SS X16, X22, K7, X11 // 62324d07cdd8
|
||||
VRSQRT28SS X28, X22, K7, X11 // 62124d07cddc
|
||||
VRSQRT28SS X8, X22, K7, X11 // 62524d07cdd8
|
||||
VRSQRT28SS X16, X12, K7, X11 // 62321d0fcdd8
|
||||
VRSQRT28SS X28, X12, K7, X11 // 62121d0fcddc
|
||||
VRSQRT28SS X8, X12, K7, X11 // 62521d0fcdd8
|
||||
VRSQRT28SS X16, X6, K7, X16 // 62a24d0fcdc0
|
||||
VRSQRT28SS X28, X6, K7, X16 // 62824d0fcdc4
|
||||
VRSQRT28SS X8, X6, K7, X16 // 62c24d0fcdc0
|
||||
VRSQRT28SS X16, X22, K7, X16 // 62a24d07cdc0
|
||||
VRSQRT28SS X28, X22, K7, X16 // 62824d07cdc4
|
||||
VRSQRT28SS X8, X22, K7, X16 // 62c24d07cdc0
|
||||
VRSQRT28SS X16, X12, K7, X16 // 62a21d0fcdc0
|
||||
VRSQRT28SS X28, X12, K7, X16 // 62821d0fcdc4
|
||||
VRSQRT28SS X8, X12, K7, X16 // 62c21d0fcdc0
|
||||
VRSQRT28SS X16, X6, K7, X6 // 62b24d0fcdf0
|
||||
VRSQRT28SS X28, X6, K7, X6 // 62924d0fcdf4
|
||||
VRSQRT28SS X8, X6, K7, X6 // 62d24d0fcdf0
|
||||
VRSQRT28SS X16, X22, K7, X6 // 62b24d07cdf0
|
||||
VRSQRT28SS X28, X22, K7, X6 // 62924d07cdf4
|
||||
VRSQRT28SS X8, X22, K7, X6 // 62d24d07cdf0
|
||||
VRSQRT28SS X16, X12, K7, X6 // 62b21d0fcdf0
|
||||
VRSQRT28SS X28, X12, K7, X6 // 62921d0fcdf4
|
||||
VRSQRT28SS X8, X12, K7, X6 // 62d21d0fcdf0
|
||||
VRSQRT28SS X14, X19, K1, X15 // 62526501cdfe or 62526521cdfe or 62526541cdfe
|
||||
VRSQRT28SS X0, X19, K1, X15 // 62726501cdf8 or 62726521cdf8 or 62726541cdf8
|
||||
VRSQRT28SS 15(R8)(R14*4), X19, K1, X15 // 62126501cdbcb00f000000 or 62126521cdbcb00f000000 or 62126541cdbcb00f000000
|
||||
VRSQRT28SS -7(CX)(DX*4), X19, K1, X15 // 62726501cdbc91f9ffffff or 62726521cdbc91f9ffffff or 62726541cdbc91f9ffffff
|
||||
VRSQRT28SS X14, X13, K1, X15 // 62521509cdfe or 62521529cdfe or 62521549cdfe
|
||||
VRSQRT28SS X0, X13, K1, X15 // 62721509cdf8 or 62721529cdf8 or 62721549cdf8
|
||||
VRSQRT28SS 15(R8)(R14*4), X13, K1, X15 // 62121509cdbcb00f000000 or 62121529cdbcb00f000000 or 62121549cdbcb00f000000
|
||||
VRSQRT28SS -7(CX)(DX*4), X13, K1, X15 // 62721509cdbc91f9ffffff or 62721529cdbc91f9ffffff or 62721549cdbc91f9ffffff
|
||||
VRSQRT28SS X14, X2, K1, X15 // 62526d09cdfe or 62526d29cdfe or 62526d49cdfe
|
||||
VRSQRT28SS X0, X2, K1, X15 // 62726d09cdf8 or 62726d29cdf8 or 62726d49cdf8
|
||||
VRSQRT28SS 15(R8)(R14*4), X2, K1, X15 // 62126d09cdbcb00f000000 or 62126d29cdbcb00f000000 or 62126d49cdbcb00f000000
|
||||
VRSQRT28SS -7(CX)(DX*4), X2, K1, X15 // 62726d09cdbc91f9ffffff or 62726d29cdbc91f9ffffff or 62726d49cdbc91f9ffffff
|
||||
VRSQRT28SS X14, X19, K1, X11 // 62526501cdde or 62526521cdde or 62526541cdde
|
||||
VRSQRT28SS X0, X19, K1, X11 // 62726501cdd8 or 62726521cdd8 or 62726541cdd8
|
||||
VRSQRT28SS 15(R8)(R14*4), X19, K1, X11 // 62126501cd9cb00f000000 or 62126521cd9cb00f000000 or 62126541cd9cb00f000000
|
||||
VRSQRT28SS -7(CX)(DX*4), X19, K1, X11 // 62726501cd9c91f9ffffff or 62726521cd9c91f9ffffff or 62726541cd9c91f9ffffff
|
||||
VRSQRT28SS X14, X13, K1, X11 // 62521509cdde or 62521529cdde or 62521549cdde
|
||||
VRSQRT28SS X0, X13, K1, X11 // 62721509cdd8 or 62721529cdd8 or 62721549cdd8
|
||||
VRSQRT28SS 15(R8)(R14*4), X13, K1, X11 // 62121509cd9cb00f000000 or 62121529cd9cb00f000000 or 62121549cd9cb00f000000
|
||||
VRSQRT28SS -7(CX)(DX*4), X13, K1, X11 // 62721509cd9c91f9ffffff or 62721529cd9c91f9ffffff or 62721549cd9c91f9ffffff
|
||||
VRSQRT28SS X14, X2, K1, X11 // 62526d09cdde or 62526d29cdde or 62526d49cdde
|
||||
VRSQRT28SS X0, X2, K1, X11 // 62726d09cdd8 or 62726d29cdd8 or 62726d49cdd8
|
||||
VRSQRT28SS 15(R8)(R14*4), X2, K1, X11 // 62126d09cd9cb00f000000 or 62126d29cd9cb00f000000 or 62126d49cd9cb00f000000
|
||||
VRSQRT28SS -7(CX)(DX*4), X2, K1, X11 // 62726d09cd9c91f9ffffff or 62726d29cd9c91f9ffffff or 62726d49cd9c91f9ffffff
|
||||
VRSQRT28SS X14, X19, K1, X1 // 62d26501cdce or 62d26521cdce or 62d26541cdce
|
||||
VRSQRT28SS X0, X19, K1, X1 // 62f26501cdc8 or 62f26521cdc8 or 62f26541cdc8
|
||||
VRSQRT28SS 15(R8)(R14*4), X19, K1, X1 // 62926501cd8cb00f000000 or 62926521cd8cb00f000000 or 62926541cd8cb00f000000
|
||||
VRSQRT28SS -7(CX)(DX*4), X19, K1, X1 // 62f26501cd8c91f9ffffff or 62f26521cd8c91f9ffffff or 62f26541cd8c91f9ffffff
|
||||
VRSQRT28SS X14, X13, K1, X1 // 62d21509cdce or 62d21529cdce or 62d21549cdce
|
||||
VRSQRT28SS X0, X13, K1, X1 // 62f21509cdc8 or 62f21529cdc8 or 62f21549cdc8
|
||||
VRSQRT28SS 15(R8)(R14*4), X13, K1, X1 // 62921509cd8cb00f000000 or 62921529cd8cb00f000000 or 62921549cd8cb00f000000
|
||||
VRSQRT28SS -7(CX)(DX*4), X13, K1, X1 // 62f21509cd8c91f9ffffff or 62f21529cd8c91f9ffffff or 62f21549cd8c91f9ffffff
|
||||
VRSQRT28SS X14, X2, K1, X1 // 62d26d09cdce or 62d26d29cdce or 62d26d49cdce
|
||||
VRSQRT28SS X0, X2, K1, X1 // 62f26d09cdc8 or 62f26d29cdc8 or 62f26d49cdc8
|
||||
VRSQRT28SS 15(R8)(R14*4), X2, K1, X1 // 62926d09cd8cb00f000000 or 62926d29cd8cb00f000000 or 62926d49cd8cb00f000000
|
||||
VRSQRT28SS -7(CX)(DX*4), X2, K1, X1 // 62f26d09cd8c91f9ffffff or 62f26d29cd8c91f9ffffff or 62f26d49cd8c91f9ffffff
|
||||
RET
|
||||
|
|
|
|||
11266
src/cmd/asm/internal/asm/testdata/avx512enc/avx512f.s
vendored
11266
src/cmd/asm/internal/asm/testdata/avx512enc/avx512f.s
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -3,52 +3,52 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_avx512pf(SB), NOSPLIT, $0
|
||||
//TODO: VGATHERPF0DPD K5, (R10)(Y29*8) // 6292fd45c60cea
|
||||
//TODO: VGATHERPF0DPD K5, (SP)(Y4*2) // 62f2fd4dc60c64
|
||||
//TODO: VGATHERPF0DPD K5, (DX)(Y10*4) // 62b2fd4dc60c92
|
||||
//TODO: VGATHERPF0DPS K3, (BP)(Z10*2) // 62b27d4bc64c5500
|
||||
//TODO: VGATHERPF0DPS K3, (R10)(Z29*8) // 62927d43c60cea
|
||||
//TODO: VGATHERPF0DPS K3, (R14)(Z29*8) // 62927d43c60cee
|
||||
//TODO: VGATHERPF0QPD K4, (DX)(Z10*4) // 62b2fd4cc70c92
|
||||
//TODO: VGATHERPF0QPD K4, (AX)(Z4*1) // 62f2fd4cc70c20
|
||||
//TODO: VGATHERPF0QPD K4, (SP)(Z4*2) // 62f2fd4cc70c64
|
||||
//TODO: VGATHERPF0QPS K2, (BP)(Z10*2) // 62b27d4ac74c5500
|
||||
//TODO: VGATHERPF0QPS K2, (R10)(Z29*8) // 62927d42c70cea
|
||||
//TODO: VGATHERPF0QPS K2, (R14)(Z29*8) // 62927d42c70cee
|
||||
//TODO: VGATHERPF1DPD K2, (R14)(Y29*8) // 6292fd42c614ee
|
||||
//TODO: VGATHERPF1DPD K2, (AX)(Y4*1) // 62f2fd4ac61420
|
||||
//TODO: VGATHERPF1DPD K2, (BP)(Y10*2) // 62b2fd4ac6545500
|
||||
//TODO: VGATHERPF1DPS K3, (DX)(Z10*4) // 62b27d4bc61492
|
||||
//TODO: VGATHERPF1DPS K3, (AX)(Z4*1) // 62f27d4bc61420
|
||||
//TODO: VGATHERPF1DPS K3, (SP)(Z4*2) // 62f27d4bc61464
|
||||
//TODO: VGATHERPF1QPD K3, (DX)(Z10*4) // 62b2fd4bc71492
|
||||
//TODO: VGATHERPF1QPD K3, (AX)(Z4*1) // 62f2fd4bc71420
|
||||
//TODO: VGATHERPF1QPD K3, (SP)(Z4*2) // 62f2fd4bc71464
|
||||
//TODO: VGATHERPF1QPS K3, (BP)(Z10*2) // 62b27d4bc7545500
|
||||
//TODO: VGATHERPF1QPS K3, (R10)(Z29*8) // 62927d43c714ea
|
||||
//TODO: VGATHERPF1QPS K3, (R14)(Z29*8) // 62927d43c714ee
|
||||
//TODO: VSCATTERPF0DPD K5, (R10)(Y29*8) // 6292fd45c62cea
|
||||
//TODO: VSCATTERPF0DPD K5, (SP)(Y4*2) // 62f2fd4dc62c64
|
||||
//TODO: VSCATTERPF0DPD K5, (DX)(Y10*4) // 62b2fd4dc62c92
|
||||
//TODO: VSCATTERPF0DPS K3, (DX)(Z10*4) // 62b27d4bc62c92
|
||||
//TODO: VSCATTERPF0DPS K3, (AX)(Z4*1) // 62f27d4bc62c20
|
||||
//TODO: VSCATTERPF0DPS K3, (SP)(Z4*2) // 62f27d4bc62c64
|
||||
//TODO: VSCATTERPF0QPD K4, (DX)(Z10*4) // 62b2fd4cc72c92
|
||||
//TODO: VSCATTERPF0QPD K4, (AX)(Z4*1) // 62f2fd4cc72c20
|
||||
//TODO: VSCATTERPF0QPD K4, (SP)(Z4*2) // 62f2fd4cc72c64
|
||||
//TODO: VSCATTERPF0QPS K2, (BP)(Z10*2) // 62b27d4ac76c5500
|
||||
//TODO: VSCATTERPF0QPS K2, (R10)(Z29*8) // 62927d42c72cea
|
||||
//TODO: VSCATTERPF0QPS K2, (R14)(Z29*8) // 62927d42c72cee
|
||||
//TODO: VSCATTERPF1DPD K2, (R14)(Y29*8) // 6292fd42c634ee
|
||||
//TODO: VSCATTERPF1DPD K2, (AX)(Y4*1) // 62f2fd4ac63420
|
||||
//TODO: VSCATTERPF1DPD K2, (BP)(Y10*2) // 62b2fd4ac6745500
|
||||
//TODO: VSCATTERPF1DPS K3, (BP)(Z10*2) // 62b27d4bc6745500
|
||||
//TODO: VSCATTERPF1DPS K3, (R10)(Z29*8) // 62927d43c634ea
|
||||
//TODO: VSCATTERPF1DPS K3, (R14)(Z29*8) // 62927d43c634ee
|
||||
//TODO: VSCATTERPF1QPD K3, (DX)(Z10*4) // 62b2fd4bc73492
|
||||
//TODO: VSCATTERPF1QPD K3, (AX)(Z4*1) // 62f2fd4bc73420
|
||||
//TODO: VSCATTERPF1QPD K3, (SP)(Z4*2) // 62f2fd4bc73464
|
||||
//TODO: VSCATTERPF1QPS K3, (BP)(Z10*2) // 62b27d4bc7745500
|
||||
//TODO: VSCATTERPF1QPS K3, (R10)(Z29*8) // 62927d43c734ea
|
||||
//TODO: VSCATTERPF1QPS K3, (R14)(Z29*8) // 62927d43c734ee
|
||||
VGATHERPF0DPD K5, (R10)(Y29*8) // 6292fd45c60cea
|
||||
VGATHERPF0DPD K5, (SP)(Y4*2) // 62f2fd4dc60c64
|
||||
VGATHERPF0DPD K5, (DX)(Y10*4) // 62b2fd4dc60c92
|
||||
VGATHERPF0DPS K3, (BP)(Z10*2) // 62b27d4bc64c5500
|
||||
VGATHERPF0DPS K3, (R10)(Z29*8) // 62927d43c60cea
|
||||
VGATHERPF0DPS K3, (R14)(Z29*8) // 62927d43c60cee
|
||||
VGATHERPF0QPD K4, (DX)(Z10*4) // 62b2fd4cc70c92
|
||||
VGATHERPF0QPD K4, (AX)(Z4*1) // 62f2fd4cc70c20
|
||||
VGATHERPF0QPD K4, (SP)(Z4*2) // 62f2fd4cc70c64
|
||||
VGATHERPF0QPS K2, (BP)(Z10*2) // 62b27d4ac74c5500
|
||||
VGATHERPF0QPS K2, (R10)(Z29*8) // 62927d42c70cea
|
||||
VGATHERPF0QPS K2, (R14)(Z29*8) // 62927d42c70cee
|
||||
VGATHERPF1DPD K2, (R14)(Y29*8) // 6292fd42c614ee
|
||||
VGATHERPF1DPD K2, (AX)(Y4*1) // 62f2fd4ac61420
|
||||
VGATHERPF1DPD K2, (BP)(Y10*2) // 62b2fd4ac6545500
|
||||
VGATHERPF1DPS K3, (DX)(Z10*4) // 62b27d4bc61492
|
||||
VGATHERPF1DPS K3, (AX)(Z4*1) // 62f27d4bc61420
|
||||
VGATHERPF1DPS K3, (SP)(Z4*2) // 62f27d4bc61464
|
||||
VGATHERPF1QPD K3, (DX)(Z10*4) // 62b2fd4bc71492
|
||||
VGATHERPF1QPD K3, (AX)(Z4*1) // 62f2fd4bc71420
|
||||
VGATHERPF1QPD K3, (SP)(Z4*2) // 62f2fd4bc71464
|
||||
VGATHERPF1QPS K3, (BP)(Z10*2) // 62b27d4bc7545500
|
||||
VGATHERPF1QPS K3, (R10)(Z29*8) // 62927d43c714ea
|
||||
VGATHERPF1QPS K3, (R14)(Z29*8) // 62927d43c714ee
|
||||
VSCATTERPF0DPD K5, (R10)(Y29*8) // 6292fd45c62cea
|
||||
VSCATTERPF0DPD K5, (SP)(Y4*2) // 62f2fd4dc62c64
|
||||
VSCATTERPF0DPD K5, (DX)(Y10*4) // 62b2fd4dc62c92
|
||||
VSCATTERPF0DPS K3, (DX)(Z10*4) // 62b27d4bc62c92
|
||||
VSCATTERPF0DPS K3, (AX)(Z4*1) // 62f27d4bc62c20
|
||||
VSCATTERPF0DPS K3, (SP)(Z4*2) // 62f27d4bc62c64
|
||||
VSCATTERPF0QPD K4, (DX)(Z10*4) // 62b2fd4cc72c92
|
||||
VSCATTERPF0QPD K4, (AX)(Z4*1) // 62f2fd4cc72c20
|
||||
VSCATTERPF0QPD K4, (SP)(Z4*2) // 62f2fd4cc72c64
|
||||
VSCATTERPF0QPS K2, (BP)(Z10*2) // 62b27d4ac76c5500
|
||||
VSCATTERPF0QPS K2, (R10)(Z29*8) // 62927d42c72cea
|
||||
VSCATTERPF0QPS K2, (R14)(Z29*8) // 62927d42c72cee
|
||||
VSCATTERPF1DPD K2, (R14)(Y29*8) // 6292fd42c634ee
|
||||
VSCATTERPF1DPD K2, (AX)(Y4*1) // 62f2fd4ac63420
|
||||
VSCATTERPF1DPD K2, (BP)(Y10*2) // 62b2fd4ac6745500
|
||||
VSCATTERPF1DPS K3, (BP)(Z10*2) // 62b27d4bc6745500
|
||||
VSCATTERPF1DPS K3, (R10)(Z29*8) // 62927d43c634ea
|
||||
VSCATTERPF1DPS K3, (R14)(Z29*8) // 62927d43c634ee
|
||||
VSCATTERPF1QPD K3, (DX)(Z10*4) // 62b2fd4bc73492
|
||||
VSCATTERPF1QPD K3, (AX)(Z4*1) // 62f2fd4bc73420
|
||||
VSCATTERPF1QPD K3, (SP)(Z4*2) // 62f2fd4bc73464
|
||||
VSCATTERPF1QPS K3, (BP)(Z10*2) // 62b27d4bc7745500
|
||||
VSCATTERPF1QPS K3, (R10)(Z29*8) // 62927d43c734ea
|
||||
VSCATTERPF1QPS K3, (R14)(Z29*8) // 62927d43c734ee
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -3,322 +3,322 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_gfni_avx512f(SB), NOSPLIT, $0
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X8, X31, K3, X26 // 62438503cfd040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X1, X31, K3, X26 // 62638503cfd140
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X0, X31, K3, X26 // 62638503cfd040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -17(BP), X31, K3, X26 // 62638503cf95efffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X31, K3, X26 // 62038503cf94fef1ffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X8, X16, K3, X26 // 6243fd03cfd040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X1, X16, K3, X26 // 6263fd03cfd140
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X0, X16, K3, X26 // 6263fd03cfd040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -17(BP), X16, K3, X26 // 6263fd03cf95efffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X16, K3, X26 // 6203fd03cf94fef1ffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X8, X7, K3, X26 // 6243c50bcfd040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X1, X7, K3, X26 // 6263c50bcfd140
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X0, X7, K3, X26 // 6263c50bcfd040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -17(BP), X7, K3, X26 // 6263c50bcf95efffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X7, K3, X26 // 6203c50bcf94fef1ffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X8, X31, K3, X19 // 62c38503cfd840
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X1, X31, K3, X19 // 62e38503cfd940
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X0, X31, K3, X19 // 62e38503cfd840
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -17(BP), X31, K3, X19 // 62e38503cf9defffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X31, K3, X19 // 62838503cf9cfef1ffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X8, X16, K3, X19 // 62c3fd03cfd840
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X1, X16, K3, X19 // 62e3fd03cfd940
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X0, X16, K3, X19 // 62e3fd03cfd840
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -17(BP), X16, K3, X19 // 62e3fd03cf9defffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X16, K3, X19 // 6283fd03cf9cfef1ffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X8, X7, K3, X19 // 62c3c50bcfd840
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X1, X7, K3, X19 // 62e3c50bcfd940
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X0, X7, K3, X19 // 62e3c50bcfd840
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -17(BP), X7, K3, X19 // 62e3c50bcf9defffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X7, K3, X19 // 6283c50bcf9cfef1ffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X8, X31, K3, X0 // 62d38503cfc040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X1, X31, K3, X0 // 62f38503cfc140
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X0, X31, K3, X0 // 62f38503cfc040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -17(BP), X31, K3, X0 // 62f38503cf85efffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X31, K3, X0 // 62938503cf84fef1ffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X8, X16, K3, X0 // 62d3fd03cfc040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X1, X16, K3, X0 // 62f3fd03cfc140
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X0, X16, K3, X0 // 62f3fd03cfc040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -17(BP), X16, K3, X0 // 62f3fd03cf85efffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X16, K3, X0 // 6293fd03cf84fef1ffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X8, X7, K3, X0 // 62d3c50bcfc040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X1, X7, K3, X0 // 62f3c50bcfc140
|
||||
//TODO: VGF2P8AFFINEINVQB $64, X0, X7, K3, X0 // 62f3c50bcfc040
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -17(BP), X7, K3, X0 // 62f3c50bcf85efffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X7, K3, X0 // 6293c50bcf84fef1ffffff40
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y5, Y20, K3, Y0 // 62f3dd23cfc51b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y28, Y20, K3, Y0 // 6293dd23cfc41b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y7, Y20, K3, Y0 // 62f3dd23cfc71b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, (BX), Y20, K3, Y0 // 62f3dd23cf031b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y20, K3, Y0 // 62f3dd23cf8435efffffff1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y5, Y12, K3, Y0 // 62f39d2bcfc51b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y28, Y12, K3, Y0 // 62939d2bcfc41b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y7, Y12, K3, Y0 // 62f39d2bcfc71b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, (BX), Y12, K3, Y0 // 62f39d2bcf031b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y12, K3, Y0 // 62f39d2bcf8435efffffff1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y5, Y3, K3, Y0 // 62f3e52bcfc51b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y28, Y3, K3, Y0 // 6293e52bcfc41b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y7, Y3, K3, Y0 // 62f3e52bcfc71b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, (BX), Y3, K3, Y0 // 62f3e52bcf031b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y3, K3, Y0 // 62f3e52bcf8435efffffff1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y5, Y20, K3, Y3 // 62f3dd23cfdd1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y28, Y20, K3, Y3 // 6293dd23cfdc1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y7, Y20, K3, Y3 // 62f3dd23cfdf1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, (BX), Y20, K3, Y3 // 62f3dd23cf1b1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y20, K3, Y3 // 62f3dd23cf9c35efffffff1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y5, Y12, K3, Y3 // 62f39d2bcfdd1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y28, Y12, K3, Y3 // 62939d2bcfdc1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y7, Y12, K3, Y3 // 62f39d2bcfdf1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, (BX), Y12, K3, Y3 // 62f39d2bcf1b1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y12, K3, Y3 // 62f39d2bcf9c35efffffff1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y5, Y3, K3, Y3 // 62f3e52bcfdd1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y28, Y3, K3, Y3 // 6293e52bcfdc1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y7, Y3, K3, Y3 // 62f3e52bcfdf1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, (BX), Y3, K3, Y3 // 62f3e52bcf1b1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y3, K3, Y3 // 62f3e52bcf9c35efffffff1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y5, Y20, K3, Y5 // 62f3dd23cfed1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y28, Y20, K3, Y5 // 6293dd23cfec1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y7, Y20, K3, Y5 // 62f3dd23cfef1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, (BX), Y20, K3, Y5 // 62f3dd23cf2b1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y20, K3, Y5 // 62f3dd23cfac35efffffff1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y5, Y12, K3, Y5 // 62f39d2bcfed1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y28, Y12, K3, Y5 // 62939d2bcfec1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y7, Y12, K3, Y5 // 62f39d2bcfef1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, (BX), Y12, K3, Y5 // 62f39d2bcf2b1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y12, K3, Y5 // 62f39d2bcfac35efffffff1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y5, Y3, K3, Y5 // 62f3e52bcfed1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y28, Y3, K3, Y5 // 6293e52bcfec1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, Y7, Y3, K3, Y5 // 62f3e52bcfef1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, (BX), Y3, K3, Y5 // 62f3e52bcf2b1b
|
||||
//TODO: VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y3, K3, Y5 // 62f3e52bcfac35efffffff1b
|
||||
//TODO: VGF2P8AFFINEINVQB $47, Z3, Z14, K2, Z28 // 62638d4acfe32f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, Z12, Z14, K2, Z28 // 62438d4acfe42f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, 99(R15)(R15*1), Z14, K2, Z28 // 62038d4acfa43f630000002f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, (DX), Z14, K2, Z28 // 62638d4acf222f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, Z3, Z28, K2, Z28 // 62639d42cfe32f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, Z12, Z28, K2, Z28 // 62439d42cfe42f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, 99(R15)(R15*1), Z28, K2, Z28 // 62039d42cfa43f630000002f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, (DX), Z28, K2, Z28 // 62639d42cf222f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, Z3, Z14, K2, Z13 // 62738d4acfeb2f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, Z12, Z14, K2, Z13 // 62538d4acfec2f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, 99(R15)(R15*1), Z14, K2, Z13 // 62138d4acfac3f630000002f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, (DX), Z14, K2, Z13 // 62738d4acf2a2f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, Z3, Z28, K2, Z13 // 62739d42cfeb2f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, Z12, Z28, K2, Z13 // 62539d42cfec2f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, 99(R15)(R15*1), Z28, K2, Z13 // 62139d42cfac3f630000002f
|
||||
//TODO: VGF2P8AFFINEINVQB $47, (DX), Z28, K2, Z13 // 62739d42cf2a2f
|
||||
//TODO: VGF2P8AFFINEQB $82, X22, X21, K1, X15 // 6233d501cefe52
|
||||
//TODO: VGF2P8AFFINEQB $82, X7, X21, K1, X15 // 6273d501ceff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X19, X21, K1, X15 // 6233d501cefb52
|
||||
//TODO: VGF2P8AFFINEQB $82, 17(SP)(BP*2), X21, K1, X15 // 6273d501cebc6c1100000052
|
||||
//TODO: VGF2P8AFFINEQB $82, -7(DI)(R8*4), X21, K1, X15 // 6233d501cebc87f9ffffff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X22, X0, K1, X15 // 6233fd09cefe52
|
||||
//TODO: VGF2P8AFFINEQB $82, X7, X0, K1, X15 // 6273fd09ceff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X19, X0, K1, X15 // 6233fd09cefb52
|
||||
//TODO: VGF2P8AFFINEQB $82, 17(SP)(BP*2), X0, K1, X15 // 6273fd09cebc6c1100000052
|
||||
//TODO: VGF2P8AFFINEQB $82, -7(DI)(R8*4), X0, K1, X15 // 6233fd09cebc87f9ffffff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X22, X28, K1, X15 // 62339d01cefe52
|
||||
//TODO: VGF2P8AFFINEQB $82, X7, X28, K1, X15 // 62739d01ceff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X19, X28, K1, X15 // 62339d01cefb52
|
||||
//TODO: VGF2P8AFFINEQB $82, 17(SP)(BP*2), X28, K1, X15 // 62739d01cebc6c1100000052
|
||||
//TODO: VGF2P8AFFINEQB $82, -7(DI)(R8*4), X28, K1, X15 // 62339d01cebc87f9ffffff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X22, X21, K1, X0 // 62b3d501cec652
|
||||
//TODO: VGF2P8AFFINEQB $82, X7, X21, K1, X0 // 62f3d501cec752
|
||||
//TODO: VGF2P8AFFINEQB $82, X19, X21, K1, X0 // 62b3d501cec352
|
||||
//TODO: VGF2P8AFFINEQB $82, 17(SP)(BP*2), X21, K1, X0 // 62f3d501ce846c1100000052
|
||||
//TODO: VGF2P8AFFINEQB $82, -7(DI)(R8*4), X21, K1, X0 // 62b3d501ce8487f9ffffff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X22, X0, K1, X0 // 62b3fd09cec652
|
||||
//TODO: VGF2P8AFFINEQB $82, X7, X0, K1, X0 // 62f3fd09cec752
|
||||
//TODO: VGF2P8AFFINEQB $82, X19, X0, K1, X0 // 62b3fd09cec352
|
||||
//TODO: VGF2P8AFFINEQB $82, 17(SP)(BP*2), X0, K1, X0 // 62f3fd09ce846c1100000052
|
||||
//TODO: VGF2P8AFFINEQB $82, -7(DI)(R8*4), X0, K1, X0 // 62b3fd09ce8487f9ffffff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X22, X28, K1, X0 // 62b39d01cec652
|
||||
//TODO: VGF2P8AFFINEQB $82, X7, X28, K1, X0 // 62f39d01cec752
|
||||
//TODO: VGF2P8AFFINEQB $82, X19, X28, K1, X0 // 62b39d01cec352
|
||||
//TODO: VGF2P8AFFINEQB $82, 17(SP)(BP*2), X28, K1, X0 // 62f39d01ce846c1100000052
|
||||
//TODO: VGF2P8AFFINEQB $82, -7(DI)(R8*4), X28, K1, X0 // 62b39d01ce8487f9ffffff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X22, X21, K1, X16 // 62a3d501cec652
|
||||
//TODO: VGF2P8AFFINEQB $82, X7, X21, K1, X16 // 62e3d501cec752
|
||||
//TODO: VGF2P8AFFINEQB $82, X19, X21, K1, X16 // 62a3d501cec352
|
||||
//TODO: VGF2P8AFFINEQB $82, 17(SP)(BP*2), X21, K1, X16 // 62e3d501ce846c1100000052
|
||||
//TODO: VGF2P8AFFINEQB $82, -7(DI)(R8*4), X21, K1, X16 // 62a3d501ce8487f9ffffff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X22, X0, K1, X16 // 62a3fd09cec652
|
||||
//TODO: VGF2P8AFFINEQB $82, X7, X0, K1, X16 // 62e3fd09cec752
|
||||
//TODO: VGF2P8AFFINEQB $82, X19, X0, K1, X16 // 62a3fd09cec352
|
||||
//TODO: VGF2P8AFFINEQB $82, 17(SP)(BP*2), X0, K1, X16 // 62e3fd09ce846c1100000052
|
||||
//TODO: VGF2P8AFFINEQB $82, -7(DI)(R8*4), X0, K1, X16 // 62a3fd09ce8487f9ffffff52
|
||||
//TODO: VGF2P8AFFINEQB $82, X22, X28, K1, X16 // 62a39d01cec652
|
||||
//TODO: VGF2P8AFFINEQB $82, X7, X28, K1, X16 // 62e39d01cec752
|
||||
//TODO: VGF2P8AFFINEQB $82, X19, X28, K1, X16 // 62a39d01cec352
|
||||
//TODO: VGF2P8AFFINEQB $82, 17(SP)(BP*2), X28, K1, X16 // 62e39d01ce846c1100000052
|
||||
//TODO: VGF2P8AFFINEQB $82, -7(DI)(R8*4), X28, K1, X16 // 62a39d01ce8487f9ffffff52
|
||||
//TODO: VGF2P8AFFINEQB $126, Y17, Y12, K2, Y0 // 62b39d2acec17e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y7, Y12, K2, Y0 // 62f39d2acec77e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y9, Y12, K2, Y0 // 62d39d2acec17e
|
||||
//TODO: VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y12, K2, Y0 // 62939d2ace84b00f0000007e
|
||||
//TODO: VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y12, K2, Y0 // 62f39d2ace8491f9ffffff7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y17, Y1, K2, Y0 // 62b3f52acec17e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y7, Y1, K2, Y0 // 62f3f52acec77e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y9, Y1, K2, Y0 // 62d3f52acec17e
|
||||
//TODO: VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y1, K2, Y0 // 6293f52ace84b00f0000007e
|
||||
//TODO: VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y1, K2, Y0 // 62f3f52ace8491f9ffffff7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y17, Y14, K2, Y0 // 62b38d2acec17e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y7, Y14, K2, Y0 // 62f38d2acec77e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y9, Y14, K2, Y0 // 62d38d2acec17e
|
||||
//TODO: VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y14, K2, Y0 // 62938d2ace84b00f0000007e
|
||||
//TODO: VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y14, K2, Y0 // 62f38d2ace8491f9ffffff7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y17, Y12, K2, Y22 // 62a39d2acef17e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y7, Y12, K2, Y22 // 62e39d2acef77e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y9, Y12, K2, Y22 // 62c39d2acef17e
|
||||
//TODO: VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y12, K2, Y22 // 62839d2aceb4b00f0000007e
|
||||
//TODO: VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y12, K2, Y22 // 62e39d2aceb491f9ffffff7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y17, Y1, K2, Y22 // 62a3f52acef17e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y7, Y1, K2, Y22 // 62e3f52acef77e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y9, Y1, K2, Y22 // 62c3f52acef17e
|
||||
//TODO: VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y1, K2, Y22 // 6283f52aceb4b00f0000007e
|
||||
//TODO: VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y1, K2, Y22 // 62e3f52aceb491f9ffffff7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y17, Y14, K2, Y22 // 62a38d2acef17e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y7, Y14, K2, Y22 // 62e38d2acef77e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y9, Y14, K2, Y22 // 62c38d2acef17e
|
||||
//TODO: VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y14, K2, Y22 // 62838d2aceb4b00f0000007e
|
||||
//TODO: VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y14, K2, Y22 // 62e38d2aceb491f9ffffff7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y17, Y12, K2, Y13 // 62339d2acee97e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y7, Y12, K2, Y13 // 62739d2aceef7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y9, Y12, K2, Y13 // 62539d2acee97e
|
||||
//TODO: VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y12, K2, Y13 // 62139d2aceacb00f0000007e
|
||||
//TODO: VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y12, K2, Y13 // 62739d2aceac91f9ffffff7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y17, Y1, K2, Y13 // 6233f52acee97e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y7, Y1, K2, Y13 // 6273f52aceef7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y9, Y1, K2, Y13 // 6253f52acee97e
|
||||
//TODO: VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y1, K2, Y13 // 6213f52aceacb00f0000007e
|
||||
//TODO: VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y1, K2, Y13 // 6273f52aceac91f9ffffff7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y17, Y14, K2, Y13 // 62338d2acee97e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y7, Y14, K2, Y13 // 62738d2aceef7e
|
||||
//TODO: VGF2P8AFFINEQB $126, Y9, Y14, K2, Y13 // 62538d2acee97e
|
||||
//TODO: VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y14, K2, Y13 // 62138d2aceacb00f0000007e
|
||||
//TODO: VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y14, K2, Y13 // 62738d2aceac91f9ffffff7e
|
||||
//TODO: VGF2P8AFFINEQB $94, Z5, Z19, K1, Z15 // 6273e541cefd5e
|
||||
//TODO: VGF2P8AFFINEQB $94, Z1, Z19, K1, Z15 // 6273e541cef95e
|
||||
//TODO: VGF2P8AFFINEQB $94, -17(BP)(SI*8), Z19, K1, Z15 // 6273e541cebcf5efffffff5e
|
||||
//TODO: VGF2P8AFFINEQB $94, (R15), Z19, K1, Z15 // 6253e541ce3f5e
|
||||
//TODO: VGF2P8AFFINEQB $94, Z5, Z15, K1, Z15 // 62738549cefd5e
|
||||
//TODO: VGF2P8AFFINEQB $94, Z1, Z15, K1, Z15 // 62738549cef95e
|
||||
//TODO: VGF2P8AFFINEQB $94, -17(BP)(SI*8), Z15, K1, Z15 // 62738549cebcf5efffffff5e
|
||||
//TODO: VGF2P8AFFINEQB $94, (R15), Z15, K1, Z15 // 62538549ce3f5e
|
||||
//TODO: VGF2P8AFFINEQB $94, Z5, Z19, K1, Z30 // 6263e541cef55e
|
||||
//TODO: VGF2P8AFFINEQB $94, Z1, Z19, K1, Z30 // 6263e541cef15e
|
||||
//TODO: VGF2P8AFFINEQB $94, -17(BP)(SI*8), Z19, K1, Z30 // 6263e541ceb4f5efffffff5e
|
||||
//TODO: VGF2P8AFFINEQB $94, (R15), Z19, K1, Z30 // 6243e541ce375e
|
||||
//TODO: VGF2P8AFFINEQB $94, Z5, Z15, K1, Z30 // 62638549cef55e
|
||||
//TODO: VGF2P8AFFINEQB $94, Z1, Z15, K1, Z30 // 62638549cef15e
|
||||
//TODO: VGF2P8AFFINEQB $94, -17(BP)(SI*8), Z15, K1, Z30 // 62638549ceb4f5efffffff5e
|
||||
//TODO: VGF2P8AFFINEQB $94, (R15), Z15, K1, Z30 // 62438549ce375e
|
||||
//TODO: VGF2P8MULB X15, X1, K7, X7 // 62d2750fcfff
|
||||
//TODO: VGF2P8MULB X12, X1, K7, X7 // 62d2750fcffc
|
||||
//TODO: VGF2P8MULB X0, X1, K7, X7 // 62f2750fcff8
|
||||
//TODO: VGF2P8MULB 15(R8), X1, K7, X7 // 62d2750fcfb80f000000
|
||||
//TODO: VGF2P8MULB (BP), X1, K7, X7 // 62f2750fcf7d00
|
||||
//TODO: VGF2P8MULB X15, X7, K7, X7 // 62d2450fcfff
|
||||
//TODO: VGF2P8MULB X12, X7, K7, X7 // 62d2450fcffc
|
||||
//TODO: VGF2P8MULB X0, X7, K7, X7 // 62f2450fcff8
|
||||
//TODO: VGF2P8MULB 15(R8), X7, K7, X7 // 62d2450fcfb80f000000
|
||||
//TODO: VGF2P8MULB (BP), X7, K7, X7 // 62f2450fcf7d00
|
||||
//TODO: VGF2P8MULB X15, X9, K7, X7 // 62d2350fcfff
|
||||
//TODO: VGF2P8MULB X12, X9, K7, X7 // 62d2350fcffc
|
||||
//TODO: VGF2P8MULB X0, X9, K7, X7 // 62f2350fcff8
|
||||
//TODO: VGF2P8MULB 15(R8), X9, K7, X7 // 62d2350fcfb80f000000
|
||||
//TODO: VGF2P8MULB (BP), X9, K7, X7 // 62f2350fcf7d00
|
||||
//TODO: VGF2P8MULB X15, X1, K7, X16 // 62c2750fcfc7
|
||||
//TODO: VGF2P8MULB X12, X1, K7, X16 // 62c2750fcfc4
|
||||
//TODO: VGF2P8MULB X0, X1, K7, X16 // 62e2750fcfc0
|
||||
//TODO: VGF2P8MULB 15(R8), X1, K7, X16 // 62c2750fcf800f000000
|
||||
//TODO: VGF2P8MULB (BP), X1, K7, X16 // 62e2750fcf4500
|
||||
//TODO: VGF2P8MULB X15, X7, K7, X16 // 62c2450fcfc7
|
||||
//TODO: VGF2P8MULB X12, X7, K7, X16 // 62c2450fcfc4
|
||||
//TODO: VGF2P8MULB X0, X7, K7, X16 // 62e2450fcfc0
|
||||
//TODO: VGF2P8MULB 15(R8), X7, K7, X16 // 62c2450fcf800f000000
|
||||
//TODO: VGF2P8MULB (BP), X7, K7, X16 // 62e2450fcf4500
|
||||
//TODO: VGF2P8MULB X15, X9, K7, X16 // 62c2350fcfc7
|
||||
//TODO: VGF2P8MULB X12, X9, K7, X16 // 62c2350fcfc4
|
||||
//TODO: VGF2P8MULB X0, X9, K7, X16 // 62e2350fcfc0
|
||||
//TODO: VGF2P8MULB 15(R8), X9, K7, X16 // 62c2350fcf800f000000
|
||||
//TODO: VGF2P8MULB (BP), X9, K7, X16 // 62e2350fcf4500
|
||||
//TODO: VGF2P8MULB X15, X1, K7, X31 // 6242750fcfff
|
||||
//TODO: VGF2P8MULB X12, X1, K7, X31 // 6242750fcffc
|
||||
//TODO: VGF2P8MULB X0, X1, K7, X31 // 6262750fcff8
|
||||
//TODO: VGF2P8MULB 15(R8), X1, K7, X31 // 6242750fcfb80f000000
|
||||
//TODO: VGF2P8MULB (BP), X1, K7, X31 // 6262750fcf7d00
|
||||
//TODO: VGF2P8MULB X15, X7, K7, X31 // 6242450fcfff
|
||||
//TODO: VGF2P8MULB X12, X7, K7, X31 // 6242450fcffc
|
||||
//TODO: VGF2P8MULB X0, X7, K7, X31 // 6262450fcff8
|
||||
//TODO: VGF2P8MULB 15(R8), X7, K7, X31 // 6242450fcfb80f000000
|
||||
//TODO: VGF2P8MULB (BP), X7, K7, X31 // 6262450fcf7d00
|
||||
//TODO: VGF2P8MULB X15, X9, K7, X31 // 6242350fcfff
|
||||
//TODO: VGF2P8MULB X12, X9, K7, X31 // 6242350fcffc
|
||||
//TODO: VGF2P8MULB X0, X9, K7, X31 // 6262350fcff8
|
||||
//TODO: VGF2P8MULB 15(R8), X9, K7, X31 // 6242350fcfb80f000000
|
||||
//TODO: VGF2P8MULB (BP), X9, K7, X31 // 6262350fcf7d00
|
||||
//TODO: VGF2P8MULB Y2, Y28, K1, Y31 // 62621d21cffa
|
||||
//TODO: VGF2P8MULB Y21, Y28, K1, Y31 // 62221d21cffd
|
||||
//TODO: VGF2P8MULB Y12, Y28, K1, Y31 // 62421d21cffc
|
||||
//TODO: VGF2P8MULB (R8), Y28, K1, Y31 // 62421d21cf38
|
||||
//TODO: VGF2P8MULB 15(DX)(BX*2), Y28, K1, Y31 // 62621d21cfbc5a0f000000
|
||||
//TODO: VGF2P8MULB Y2, Y13, K1, Y31 // 62621529cffa
|
||||
//TODO: VGF2P8MULB Y21, Y13, K1, Y31 // 62221529cffd
|
||||
//TODO: VGF2P8MULB Y12, Y13, K1, Y31 // 62421529cffc
|
||||
//TODO: VGF2P8MULB (R8), Y13, K1, Y31 // 62421529cf38
|
||||
//TODO: VGF2P8MULB 15(DX)(BX*2), Y13, K1, Y31 // 62621529cfbc5a0f000000
|
||||
//TODO: VGF2P8MULB Y2, Y7, K1, Y31 // 62624529cffa
|
||||
//TODO: VGF2P8MULB Y21, Y7, K1, Y31 // 62224529cffd
|
||||
//TODO: VGF2P8MULB Y12, Y7, K1, Y31 // 62424529cffc
|
||||
//TODO: VGF2P8MULB (R8), Y7, K1, Y31 // 62424529cf38
|
||||
//TODO: VGF2P8MULB 15(DX)(BX*2), Y7, K1, Y31 // 62624529cfbc5a0f000000
|
||||
//TODO: VGF2P8MULB Y2, Y28, K1, Y8 // 62721d21cfc2
|
||||
//TODO: VGF2P8MULB Y21, Y28, K1, Y8 // 62321d21cfc5
|
||||
//TODO: VGF2P8MULB Y12, Y28, K1, Y8 // 62521d21cfc4
|
||||
//TODO: VGF2P8MULB (R8), Y28, K1, Y8 // 62521d21cf00
|
||||
//TODO: VGF2P8MULB 15(DX)(BX*2), Y28, K1, Y8 // 62721d21cf845a0f000000
|
||||
//TODO: VGF2P8MULB Y2, Y13, K1, Y8 // 62721529cfc2
|
||||
//TODO: VGF2P8MULB Y21, Y13, K1, Y8 // 62321529cfc5
|
||||
//TODO: VGF2P8MULB Y12, Y13, K1, Y8 // 62521529cfc4
|
||||
//TODO: VGF2P8MULB (R8), Y13, K1, Y8 // 62521529cf00
|
||||
//TODO: VGF2P8MULB 15(DX)(BX*2), Y13, K1, Y8 // 62721529cf845a0f000000
|
||||
//TODO: VGF2P8MULB Y2, Y7, K1, Y8 // 62724529cfc2
|
||||
//TODO: VGF2P8MULB Y21, Y7, K1, Y8 // 62324529cfc5
|
||||
//TODO: VGF2P8MULB Y12, Y7, K1, Y8 // 62524529cfc4
|
||||
//TODO: VGF2P8MULB (R8), Y7, K1, Y8 // 62524529cf00
|
||||
//TODO: VGF2P8MULB 15(DX)(BX*2), Y7, K1, Y8 // 62724529cf845a0f000000
|
||||
//TODO: VGF2P8MULB Y2, Y28, K1, Y1 // 62f21d21cfca
|
||||
//TODO: VGF2P8MULB Y21, Y28, K1, Y1 // 62b21d21cfcd
|
||||
//TODO: VGF2P8MULB Y12, Y28, K1, Y1 // 62d21d21cfcc
|
||||
//TODO: VGF2P8MULB (R8), Y28, K1, Y1 // 62d21d21cf08
|
||||
//TODO: VGF2P8MULB 15(DX)(BX*2), Y28, K1, Y1 // 62f21d21cf8c5a0f000000
|
||||
//TODO: VGF2P8MULB Y2, Y13, K1, Y1 // 62f21529cfca
|
||||
//TODO: VGF2P8MULB Y21, Y13, K1, Y1 // 62b21529cfcd
|
||||
//TODO: VGF2P8MULB Y12, Y13, K1, Y1 // 62d21529cfcc
|
||||
//TODO: VGF2P8MULB (R8), Y13, K1, Y1 // 62d21529cf08
|
||||
//TODO: VGF2P8MULB 15(DX)(BX*2), Y13, K1, Y1 // 62f21529cf8c5a0f000000
|
||||
//TODO: VGF2P8MULB Y2, Y7, K1, Y1 // 62f24529cfca
|
||||
//TODO: VGF2P8MULB Y21, Y7, K1, Y1 // 62b24529cfcd
|
||||
//TODO: VGF2P8MULB Y12, Y7, K1, Y1 // 62d24529cfcc
|
||||
//TODO: VGF2P8MULB (R8), Y7, K1, Y1 // 62d24529cf08
|
||||
//TODO: VGF2P8MULB 15(DX)(BX*2), Y7, K1, Y1 // 62f24529cf8c5a0f000000
|
||||
//TODO: VGF2P8MULB Z21, Z14, K1, Z3 // 62b20d49cfdd
|
||||
//TODO: VGF2P8MULB Z8, Z14, K1, Z3 // 62d20d49cfd8
|
||||
//TODO: VGF2P8MULB 7(SI)(DI*8), Z14, K1, Z3 // 62f20d49cf9cfe07000000
|
||||
//TODO: VGF2P8MULB -15(R14), Z14, K1, Z3 // 62d20d49cf9ef1ffffff
|
||||
//TODO: VGF2P8MULB Z21, Z15, K1, Z3 // 62b20549cfdd
|
||||
//TODO: VGF2P8MULB Z8, Z15, K1, Z3 // 62d20549cfd8
|
||||
//TODO: VGF2P8MULB 7(SI)(DI*8), Z15, K1, Z3 // 62f20549cf9cfe07000000
|
||||
//TODO: VGF2P8MULB -15(R14), Z15, K1, Z3 // 62d20549cf9ef1ffffff
|
||||
//TODO: VGF2P8MULB Z21, Z14, K1, Z5 // 62b20d49cfed
|
||||
//TODO: VGF2P8MULB Z8, Z14, K1, Z5 // 62d20d49cfe8
|
||||
//TODO: VGF2P8MULB 7(SI)(DI*8), Z14, K1, Z5 // 62f20d49cfacfe07000000
|
||||
//TODO: VGF2P8MULB -15(R14), Z14, K1, Z5 // 62d20d49cfaef1ffffff
|
||||
//TODO: VGF2P8MULB Z21, Z15, K1, Z5 // 62b20549cfed
|
||||
//TODO: VGF2P8MULB Z8, Z15, K1, Z5 // 62d20549cfe8
|
||||
//TODO: VGF2P8MULB 7(SI)(DI*8), Z15, K1, Z5 // 62f20549cfacfe07000000
|
||||
//TODO: VGF2P8MULB -15(R14), Z15, K1, Z5 // 62d20549cfaef1ffffff
|
||||
VGF2P8AFFINEINVQB $64, X8, X31, K3, X26 // 62438503cfd040
|
||||
VGF2P8AFFINEINVQB $64, X1, X31, K3, X26 // 62638503cfd140
|
||||
VGF2P8AFFINEINVQB $64, X0, X31, K3, X26 // 62638503cfd040
|
||||
VGF2P8AFFINEINVQB $64, -17(BP), X31, K3, X26 // 62638503cf95efffffff40
|
||||
VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X31, K3, X26 // 62038503cf94fef1ffffff40
|
||||
VGF2P8AFFINEINVQB $64, X8, X16, K3, X26 // 6243fd03cfd040
|
||||
VGF2P8AFFINEINVQB $64, X1, X16, K3, X26 // 6263fd03cfd140
|
||||
VGF2P8AFFINEINVQB $64, X0, X16, K3, X26 // 6263fd03cfd040
|
||||
VGF2P8AFFINEINVQB $64, -17(BP), X16, K3, X26 // 6263fd03cf95efffffff40
|
||||
VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X16, K3, X26 // 6203fd03cf94fef1ffffff40
|
||||
VGF2P8AFFINEINVQB $64, X8, X7, K3, X26 // 6243c50bcfd040
|
||||
VGF2P8AFFINEINVQB $64, X1, X7, K3, X26 // 6263c50bcfd140
|
||||
VGF2P8AFFINEINVQB $64, X0, X7, K3, X26 // 6263c50bcfd040
|
||||
VGF2P8AFFINEINVQB $64, -17(BP), X7, K3, X26 // 6263c50bcf95efffffff40
|
||||
VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X7, K3, X26 // 6203c50bcf94fef1ffffff40
|
||||
VGF2P8AFFINEINVQB $64, X8, X31, K3, X19 // 62c38503cfd840
|
||||
VGF2P8AFFINEINVQB $64, X1, X31, K3, X19 // 62e38503cfd940
|
||||
VGF2P8AFFINEINVQB $64, X0, X31, K3, X19 // 62e38503cfd840
|
||||
VGF2P8AFFINEINVQB $64, -17(BP), X31, K3, X19 // 62e38503cf9defffffff40
|
||||
VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X31, K3, X19 // 62838503cf9cfef1ffffff40
|
||||
VGF2P8AFFINEINVQB $64, X8, X16, K3, X19 // 62c3fd03cfd840
|
||||
VGF2P8AFFINEINVQB $64, X1, X16, K3, X19 // 62e3fd03cfd940
|
||||
VGF2P8AFFINEINVQB $64, X0, X16, K3, X19 // 62e3fd03cfd840
|
||||
VGF2P8AFFINEINVQB $64, -17(BP), X16, K3, X19 // 62e3fd03cf9defffffff40
|
||||
VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X16, K3, X19 // 6283fd03cf9cfef1ffffff40
|
||||
VGF2P8AFFINEINVQB $64, X8, X7, K3, X19 // 62c3c50bcfd840
|
||||
VGF2P8AFFINEINVQB $64, X1, X7, K3, X19 // 62e3c50bcfd940
|
||||
VGF2P8AFFINEINVQB $64, X0, X7, K3, X19 // 62e3c50bcfd840
|
||||
VGF2P8AFFINEINVQB $64, -17(BP), X7, K3, X19 // 62e3c50bcf9defffffff40
|
||||
VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X7, K3, X19 // 6283c50bcf9cfef1ffffff40
|
||||
VGF2P8AFFINEINVQB $64, X8, X31, K3, X0 // 62d38503cfc040
|
||||
VGF2P8AFFINEINVQB $64, X1, X31, K3, X0 // 62f38503cfc140
|
||||
VGF2P8AFFINEINVQB $64, X0, X31, K3, X0 // 62f38503cfc040
|
||||
VGF2P8AFFINEINVQB $64, -17(BP), X31, K3, X0 // 62f38503cf85efffffff40
|
||||
VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X31, K3, X0 // 62938503cf84fef1ffffff40
|
||||
VGF2P8AFFINEINVQB $64, X8, X16, K3, X0 // 62d3fd03cfc040
|
||||
VGF2P8AFFINEINVQB $64, X1, X16, K3, X0 // 62f3fd03cfc140
|
||||
VGF2P8AFFINEINVQB $64, X0, X16, K3, X0 // 62f3fd03cfc040
|
||||
VGF2P8AFFINEINVQB $64, -17(BP), X16, K3, X0 // 62f3fd03cf85efffffff40
|
||||
VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X16, K3, X0 // 6293fd03cf84fef1ffffff40
|
||||
VGF2P8AFFINEINVQB $64, X8, X7, K3, X0 // 62d3c50bcfc040
|
||||
VGF2P8AFFINEINVQB $64, X1, X7, K3, X0 // 62f3c50bcfc140
|
||||
VGF2P8AFFINEINVQB $64, X0, X7, K3, X0 // 62f3c50bcfc040
|
||||
VGF2P8AFFINEINVQB $64, -17(BP), X7, K3, X0 // 62f3c50bcf85efffffff40
|
||||
VGF2P8AFFINEINVQB $64, -15(R14)(R15*8), X7, K3, X0 // 6293c50bcf84fef1ffffff40
|
||||
VGF2P8AFFINEINVQB $27, Y5, Y20, K3, Y0 // 62f3dd23cfc51b
|
||||
VGF2P8AFFINEINVQB $27, Y28, Y20, K3, Y0 // 6293dd23cfc41b
|
||||
VGF2P8AFFINEINVQB $27, Y7, Y20, K3, Y0 // 62f3dd23cfc71b
|
||||
VGF2P8AFFINEINVQB $27, (BX), Y20, K3, Y0 // 62f3dd23cf031b
|
||||
VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y20, K3, Y0 // 62f3dd23cf8435efffffff1b
|
||||
VGF2P8AFFINEINVQB $27, Y5, Y12, K3, Y0 // 62f39d2bcfc51b
|
||||
VGF2P8AFFINEINVQB $27, Y28, Y12, K3, Y0 // 62939d2bcfc41b
|
||||
VGF2P8AFFINEINVQB $27, Y7, Y12, K3, Y0 // 62f39d2bcfc71b
|
||||
VGF2P8AFFINEINVQB $27, (BX), Y12, K3, Y0 // 62f39d2bcf031b
|
||||
VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y12, K3, Y0 // 62f39d2bcf8435efffffff1b
|
||||
VGF2P8AFFINEINVQB $27, Y5, Y3, K3, Y0 // 62f3e52bcfc51b
|
||||
VGF2P8AFFINEINVQB $27, Y28, Y3, K3, Y0 // 6293e52bcfc41b
|
||||
VGF2P8AFFINEINVQB $27, Y7, Y3, K3, Y0 // 62f3e52bcfc71b
|
||||
VGF2P8AFFINEINVQB $27, (BX), Y3, K3, Y0 // 62f3e52bcf031b
|
||||
VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y3, K3, Y0 // 62f3e52bcf8435efffffff1b
|
||||
VGF2P8AFFINEINVQB $27, Y5, Y20, K3, Y3 // 62f3dd23cfdd1b
|
||||
VGF2P8AFFINEINVQB $27, Y28, Y20, K3, Y3 // 6293dd23cfdc1b
|
||||
VGF2P8AFFINEINVQB $27, Y7, Y20, K3, Y3 // 62f3dd23cfdf1b
|
||||
VGF2P8AFFINEINVQB $27, (BX), Y20, K3, Y3 // 62f3dd23cf1b1b
|
||||
VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y20, K3, Y3 // 62f3dd23cf9c35efffffff1b
|
||||
VGF2P8AFFINEINVQB $27, Y5, Y12, K3, Y3 // 62f39d2bcfdd1b
|
||||
VGF2P8AFFINEINVQB $27, Y28, Y12, K3, Y3 // 62939d2bcfdc1b
|
||||
VGF2P8AFFINEINVQB $27, Y7, Y12, K3, Y3 // 62f39d2bcfdf1b
|
||||
VGF2P8AFFINEINVQB $27, (BX), Y12, K3, Y3 // 62f39d2bcf1b1b
|
||||
VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y12, K3, Y3 // 62f39d2bcf9c35efffffff1b
|
||||
VGF2P8AFFINEINVQB $27, Y5, Y3, K3, Y3 // 62f3e52bcfdd1b
|
||||
VGF2P8AFFINEINVQB $27, Y28, Y3, K3, Y3 // 6293e52bcfdc1b
|
||||
VGF2P8AFFINEINVQB $27, Y7, Y3, K3, Y3 // 62f3e52bcfdf1b
|
||||
VGF2P8AFFINEINVQB $27, (BX), Y3, K3, Y3 // 62f3e52bcf1b1b
|
||||
VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y3, K3, Y3 // 62f3e52bcf9c35efffffff1b
|
||||
VGF2P8AFFINEINVQB $27, Y5, Y20, K3, Y5 // 62f3dd23cfed1b
|
||||
VGF2P8AFFINEINVQB $27, Y28, Y20, K3, Y5 // 6293dd23cfec1b
|
||||
VGF2P8AFFINEINVQB $27, Y7, Y20, K3, Y5 // 62f3dd23cfef1b
|
||||
VGF2P8AFFINEINVQB $27, (BX), Y20, K3, Y5 // 62f3dd23cf2b1b
|
||||
VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y20, K3, Y5 // 62f3dd23cfac35efffffff1b
|
||||
VGF2P8AFFINEINVQB $27, Y5, Y12, K3, Y5 // 62f39d2bcfed1b
|
||||
VGF2P8AFFINEINVQB $27, Y28, Y12, K3, Y5 // 62939d2bcfec1b
|
||||
VGF2P8AFFINEINVQB $27, Y7, Y12, K3, Y5 // 62f39d2bcfef1b
|
||||
VGF2P8AFFINEINVQB $27, (BX), Y12, K3, Y5 // 62f39d2bcf2b1b
|
||||
VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y12, K3, Y5 // 62f39d2bcfac35efffffff1b
|
||||
VGF2P8AFFINEINVQB $27, Y5, Y3, K3, Y5 // 62f3e52bcfed1b
|
||||
VGF2P8AFFINEINVQB $27, Y28, Y3, K3, Y5 // 6293e52bcfec1b
|
||||
VGF2P8AFFINEINVQB $27, Y7, Y3, K3, Y5 // 62f3e52bcfef1b
|
||||
VGF2P8AFFINEINVQB $27, (BX), Y3, K3, Y5 // 62f3e52bcf2b1b
|
||||
VGF2P8AFFINEINVQB $27, -17(BP)(SI*1), Y3, K3, Y5 // 62f3e52bcfac35efffffff1b
|
||||
VGF2P8AFFINEINVQB $47, Z3, Z14, K2, Z28 // 62638d4acfe32f
|
||||
VGF2P8AFFINEINVQB $47, Z12, Z14, K2, Z28 // 62438d4acfe42f
|
||||
VGF2P8AFFINEINVQB $47, 99(R15)(R15*1), Z14, K2, Z28 // 62038d4acfa43f630000002f
|
||||
VGF2P8AFFINEINVQB $47, (DX), Z14, K2, Z28 // 62638d4acf222f
|
||||
VGF2P8AFFINEINVQB $47, Z3, Z28, K2, Z28 // 62639d42cfe32f
|
||||
VGF2P8AFFINEINVQB $47, Z12, Z28, K2, Z28 // 62439d42cfe42f
|
||||
VGF2P8AFFINEINVQB $47, 99(R15)(R15*1), Z28, K2, Z28 // 62039d42cfa43f630000002f
|
||||
VGF2P8AFFINEINVQB $47, (DX), Z28, K2, Z28 // 62639d42cf222f
|
||||
VGF2P8AFFINEINVQB $47, Z3, Z14, K2, Z13 // 62738d4acfeb2f
|
||||
VGF2P8AFFINEINVQB $47, Z12, Z14, K2, Z13 // 62538d4acfec2f
|
||||
VGF2P8AFFINEINVQB $47, 99(R15)(R15*1), Z14, K2, Z13 // 62138d4acfac3f630000002f
|
||||
VGF2P8AFFINEINVQB $47, (DX), Z14, K2, Z13 // 62738d4acf2a2f
|
||||
VGF2P8AFFINEINVQB $47, Z3, Z28, K2, Z13 // 62739d42cfeb2f
|
||||
VGF2P8AFFINEINVQB $47, Z12, Z28, K2, Z13 // 62539d42cfec2f
|
||||
VGF2P8AFFINEINVQB $47, 99(R15)(R15*1), Z28, K2, Z13 // 62139d42cfac3f630000002f
|
||||
VGF2P8AFFINEINVQB $47, (DX), Z28, K2, Z13 // 62739d42cf2a2f
|
||||
VGF2P8AFFINEQB $82, X22, X21, K1, X15 // 6233d501cefe52
|
||||
VGF2P8AFFINEQB $82, X7, X21, K1, X15 // 6273d501ceff52
|
||||
VGF2P8AFFINEQB $82, X19, X21, K1, X15 // 6233d501cefb52
|
||||
VGF2P8AFFINEQB $82, 17(SP)(BP*2), X21, K1, X15 // 6273d501cebc6c1100000052
|
||||
VGF2P8AFFINEQB $82, -7(DI)(R8*4), X21, K1, X15 // 6233d501cebc87f9ffffff52
|
||||
VGF2P8AFFINEQB $82, X22, X0, K1, X15 // 6233fd09cefe52
|
||||
VGF2P8AFFINEQB $82, X7, X0, K1, X15 // 6273fd09ceff52
|
||||
VGF2P8AFFINEQB $82, X19, X0, K1, X15 // 6233fd09cefb52
|
||||
VGF2P8AFFINEQB $82, 17(SP)(BP*2), X0, K1, X15 // 6273fd09cebc6c1100000052
|
||||
VGF2P8AFFINEQB $82, -7(DI)(R8*4), X0, K1, X15 // 6233fd09cebc87f9ffffff52
|
||||
VGF2P8AFFINEQB $82, X22, X28, K1, X15 // 62339d01cefe52
|
||||
VGF2P8AFFINEQB $82, X7, X28, K1, X15 // 62739d01ceff52
|
||||
VGF2P8AFFINEQB $82, X19, X28, K1, X15 // 62339d01cefb52
|
||||
VGF2P8AFFINEQB $82, 17(SP)(BP*2), X28, K1, X15 // 62739d01cebc6c1100000052
|
||||
VGF2P8AFFINEQB $82, -7(DI)(R8*4), X28, K1, X15 // 62339d01cebc87f9ffffff52
|
||||
VGF2P8AFFINEQB $82, X22, X21, K1, X0 // 62b3d501cec652
|
||||
VGF2P8AFFINEQB $82, X7, X21, K1, X0 // 62f3d501cec752
|
||||
VGF2P8AFFINEQB $82, X19, X21, K1, X0 // 62b3d501cec352
|
||||
VGF2P8AFFINEQB $82, 17(SP)(BP*2), X21, K1, X0 // 62f3d501ce846c1100000052
|
||||
VGF2P8AFFINEQB $82, -7(DI)(R8*4), X21, K1, X0 // 62b3d501ce8487f9ffffff52
|
||||
VGF2P8AFFINEQB $82, X22, X0, K1, X0 // 62b3fd09cec652
|
||||
VGF2P8AFFINEQB $82, X7, X0, K1, X0 // 62f3fd09cec752
|
||||
VGF2P8AFFINEQB $82, X19, X0, K1, X0 // 62b3fd09cec352
|
||||
VGF2P8AFFINEQB $82, 17(SP)(BP*2), X0, K1, X0 // 62f3fd09ce846c1100000052
|
||||
VGF2P8AFFINEQB $82, -7(DI)(R8*4), X0, K1, X0 // 62b3fd09ce8487f9ffffff52
|
||||
VGF2P8AFFINEQB $82, X22, X28, K1, X0 // 62b39d01cec652
|
||||
VGF2P8AFFINEQB $82, X7, X28, K1, X0 // 62f39d01cec752
|
||||
VGF2P8AFFINEQB $82, X19, X28, K1, X0 // 62b39d01cec352
|
||||
VGF2P8AFFINEQB $82, 17(SP)(BP*2), X28, K1, X0 // 62f39d01ce846c1100000052
|
||||
VGF2P8AFFINEQB $82, -7(DI)(R8*4), X28, K1, X0 // 62b39d01ce8487f9ffffff52
|
||||
VGF2P8AFFINEQB $82, X22, X21, K1, X16 // 62a3d501cec652
|
||||
VGF2P8AFFINEQB $82, X7, X21, K1, X16 // 62e3d501cec752
|
||||
VGF2P8AFFINEQB $82, X19, X21, K1, X16 // 62a3d501cec352
|
||||
VGF2P8AFFINEQB $82, 17(SP)(BP*2), X21, K1, X16 // 62e3d501ce846c1100000052
|
||||
VGF2P8AFFINEQB $82, -7(DI)(R8*4), X21, K1, X16 // 62a3d501ce8487f9ffffff52
|
||||
VGF2P8AFFINEQB $82, X22, X0, K1, X16 // 62a3fd09cec652
|
||||
VGF2P8AFFINEQB $82, X7, X0, K1, X16 // 62e3fd09cec752
|
||||
VGF2P8AFFINEQB $82, X19, X0, K1, X16 // 62a3fd09cec352
|
||||
VGF2P8AFFINEQB $82, 17(SP)(BP*2), X0, K1, X16 // 62e3fd09ce846c1100000052
|
||||
VGF2P8AFFINEQB $82, -7(DI)(R8*4), X0, K1, X16 // 62a3fd09ce8487f9ffffff52
|
||||
VGF2P8AFFINEQB $82, X22, X28, K1, X16 // 62a39d01cec652
|
||||
VGF2P8AFFINEQB $82, X7, X28, K1, X16 // 62e39d01cec752
|
||||
VGF2P8AFFINEQB $82, X19, X28, K1, X16 // 62a39d01cec352
|
||||
VGF2P8AFFINEQB $82, 17(SP)(BP*2), X28, K1, X16 // 62e39d01ce846c1100000052
|
||||
VGF2P8AFFINEQB $82, -7(DI)(R8*4), X28, K1, X16 // 62a39d01ce8487f9ffffff52
|
||||
VGF2P8AFFINEQB $126, Y17, Y12, K2, Y0 // 62b39d2acec17e
|
||||
VGF2P8AFFINEQB $126, Y7, Y12, K2, Y0 // 62f39d2acec77e
|
||||
VGF2P8AFFINEQB $126, Y9, Y12, K2, Y0 // 62d39d2acec17e
|
||||
VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y12, K2, Y0 // 62939d2ace84b00f0000007e
|
||||
VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y12, K2, Y0 // 62f39d2ace8491f9ffffff7e
|
||||
VGF2P8AFFINEQB $126, Y17, Y1, K2, Y0 // 62b3f52acec17e
|
||||
VGF2P8AFFINEQB $126, Y7, Y1, K2, Y0 // 62f3f52acec77e
|
||||
VGF2P8AFFINEQB $126, Y9, Y1, K2, Y0 // 62d3f52acec17e
|
||||
VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y1, K2, Y0 // 6293f52ace84b00f0000007e
|
||||
VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y1, K2, Y0 // 62f3f52ace8491f9ffffff7e
|
||||
VGF2P8AFFINEQB $126, Y17, Y14, K2, Y0 // 62b38d2acec17e
|
||||
VGF2P8AFFINEQB $126, Y7, Y14, K2, Y0 // 62f38d2acec77e
|
||||
VGF2P8AFFINEQB $126, Y9, Y14, K2, Y0 // 62d38d2acec17e
|
||||
VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y14, K2, Y0 // 62938d2ace84b00f0000007e
|
||||
VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y14, K2, Y0 // 62f38d2ace8491f9ffffff7e
|
||||
VGF2P8AFFINEQB $126, Y17, Y12, K2, Y22 // 62a39d2acef17e
|
||||
VGF2P8AFFINEQB $126, Y7, Y12, K2, Y22 // 62e39d2acef77e
|
||||
VGF2P8AFFINEQB $126, Y9, Y12, K2, Y22 // 62c39d2acef17e
|
||||
VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y12, K2, Y22 // 62839d2aceb4b00f0000007e
|
||||
VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y12, K2, Y22 // 62e39d2aceb491f9ffffff7e
|
||||
VGF2P8AFFINEQB $126, Y17, Y1, K2, Y22 // 62a3f52acef17e
|
||||
VGF2P8AFFINEQB $126, Y7, Y1, K2, Y22 // 62e3f52acef77e
|
||||
VGF2P8AFFINEQB $126, Y9, Y1, K2, Y22 // 62c3f52acef17e
|
||||
VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y1, K2, Y22 // 6283f52aceb4b00f0000007e
|
||||
VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y1, K2, Y22 // 62e3f52aceb491f9ffffff7e
|
||||
VGF2P8AFFINEQB $126, Y17, Y14, K2, Y22 // 62a38d2acef17e
|
||||
VGF2P8AFFINEQB $126, Y7, Y14, K2, Y22 // 62e38d2acef77e
|
||||
VGF2P8AFFINEQB $126, Y9, Y14, K2, Y22 // 62c38d2acef17e
|
||||
VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y14, K2, Y22 // 62838d2aceb4b00f0000007e
|
||||
VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y14, K2, Y22 // 62e38d2aceb491f9ffffff7e
|
||||
VGF2P8AFFINEQB $126, Y17, Y12, K2, Y13 // 62339d2acee97e
|
||||
VGF2P8AFFINEQB $126, Y7, Y12, K2, Y13 // 62739d2aceef7e
|
||||
VGF2P8AFFINEQB $126, Y9, Y12, K2, Y13 // 62539d2acee97e
|
||||
VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y12, K2, Y13 // 62139d2aceacb00f0000007e
|
||||
VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y12, K2, Y13 // 62739d2aceac91f9ffffff7e
|
||||
VGF2P8AFFINEQB $126, Y17, Y1, K2, Y13 // 6233f52acee97e
|
||||
VGF2P8AFFINEQB $126, Y7, Y1, K2, Y13 // 6273f52aceef7e
|
||||
VGF2P8AFFINEQB $126, Y9, Y1, K2, Y13 // 6253f52acee97e
|
||||
VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y1, K2, Y13 // 6213f52aceacb00f0000007e
|
||||
VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y1, K2, Y13 // 6273f52aceac91f9ffffff7e
|
||||
VGF2P8AFFINEQB $126, Y17, Y14, K2, Y13 // 62338d2acee97e
|
||||
VGF2P8AFFINEQB $126, Y7, Y14, K2, Y13 // 62738d2aceef7e
|
||||
VGF2P8AFFINEQB $126, Y9, Y14, K2, Y13 // 62538d2acee97e
|
||||
VGF2P8AFFINEQB $126, 15(R8)(R14*4), Y14, K2, Y13 // 62138d2aceacb00f0000007e
|
||||
VGF2P8AFFINEQB $126, -7(CX)(DX*4), Y14, K2, Y13 // 62738d2aceac91f9ffffff7e
|
||||
VGF2P8AFFINEQB $94, Z5, Z19, K1, Z15 // 6273e541cefd5e
|
||||
VGF2P8AFFINEQB $94, Z1, Z19, K1, Z15 // 6273e541cef95e
|
||||
VGF2P8AFFINEQB $94, -17(BP)(SI*8), Z19, K1, Z15 // 6273e541cebcf5efffffff5e
|
||||
VGF2P8AFFINEQB $94, (R15), Z19, K1, Z15 // 6253e541ce3f5e
|
||||
VGF2P8AFFINEQB $94, Z5, Z15, K1, Z15 // 62738549cefd5e
|
||||
VGF2P8AFFINEQB $94, Z1, Z15, K1, Z15 // 62738549cef95e
|
||||
VGF2P8AFFINEQB $94, -17(BP)(SI*8), Z15, K1, Z15 // 62738549cebcf5efffffff5e
|
||||
VGF2P8AFFINEQB $94, (R15), Z15, K1, Z15 // 62538549ce3f5e
|
||||
VGF2P8AFFINEQB $94, Z5, Z19, K1, Z30 // 6263e541cef55e
|
||||
VGF2P8AFFINEQB $94, Z1, Z19, K1, Z30 // 6263e541cef15e
|
||||
VGF2P8AFFINEQB $94, -17(BP)(SI*8), Z19, K1, Z30 // 6263e541ceb4f5efffffff5e
|
||||
VGF2P8AFFINEQB $94, (R15), Z19, K1, Z30 // 6243e541ce375e
|
||||
VGF2P8AFFINEQB $94, Z5, Z15, K1, Z30 // 62638549cef55e
|
||||
VGF2P8AFFINEQB $94, Z1, Z15, K1, Z30 // 62638549cef15e
|
||||
VGF2P8AFFINEQB $94, -17(BP)(SI*8), Z15, K1, Z30 // 62638549ceb4f5efffffff5e
|
||||
VGF2P8AFFINEQB $94, (R15), Z15, K1, Z30 // 62438549ce375e
|
||||
VGF2P8MULB X15, X1, K7, X7 // 62d2750fcfff
|
||||
VGF2P8MULB X12, X1, K7, X7 // 62d2750fcffc
|
||||
VGF2P8MULB X0, X1, K7, X7 // 62f2750fcff8
|
||||
VGF2P8MULB 15(R8), X1, K7, X7 // 62d2750fcfb80f000000
|
||||
VGF2P8MULB (BP), X1, K7, X7 // 62f2750fcf7d00
|
||||
VGF2P8MULB X15, X7, K7, X7 // 62d2450fcfff
|
||||
VGF2P8MULB X12, X7, K7, X7 // 62d2450fcffc
|
||||
VGF2P8MULB X0, X7, K7, X7 // 62f2450fcff8
|
||||
VGF2P8MULB 15(R8), X7, K7, X7 // 62d2450fcfb80f000000
|
||||
VGF2P8MULB (BP), X7, K7, X7 // 62f2450fcf7d00
|
||||
VGF2P8MULB X15, X9, K7, X7 // 62d2350fcfff
|
||||
VGF2P8MULB X12, X9, K7, X7 // 62d2350fcffc
|
||||
VGF2P8MULB X0, X9, K7, X7 // 62f2350fcff8
|
||||
VGF2P8MULB 15(R8), X9, K7, X7 // 62d2350fcfb80f000000
|
||||
VGF2P8MULB (BP), X9, K7, X7 // 62f2350fcf7d00
|
||||
VGF2P8MULB X15, X1, K7, X16 // 62c2750fcfc7
|
||||
VGF2P8MULB X12, X1, K7, X16 // 62c2750fcfc4
|
||||
VGF2P8MULB X0, X1, K7, X16 // 62e2750fcfc0
|
||||
VGF2P8MULB 15(R8), X1, K7, X16 // 62c2750fcf800f000000
|
||||
VGF2P8MULB (BP), X1, K7, X16 // 62e2750fcf4500
|
||||
VGF2P8MULB X15, X7, K7, X16 // 62c2450fcfc7
|
||||
VGF2P8MULB X12, X7, K7, X16 // 62c2450fcfc4
|
||||
VGF2P8MULB X0, X7, K7, X16 // 62e2450fcfc0
|
||||
VGF2P8MULB 15(R8), X7, K7, X16 // 62c2450fcf800f000000
|
||||
VGF2P8MULB (BP), X7, K7, X16 // 62e2450fcf4500
|
||||
VGF2P8MULB X15, X9, K7, X16 // 62c2350fcfc7
|
||||
VGF2P8MULB X12, X9, K7, X16 // 62c2350fcfc4
|
||||
VGF2P8MULB X0, X9, K7, X16 // 62e2350fcfc0
|
||||
VGF2P8MULB 15(R8), X9, K7, X16 // 62c2350fcf800f000000
|
||||
VGF2P8MULB (BP), X9, K7, X16 // 62e2350fcf4500
|
||||
VGF2P8MULB X15, X1, K7, X31 // 6242750fcfff
|
||||
VGF2P8MULB X12, X1, K7, X31 // 6242750fcffc
|
||||
VGF2P8MULB X0, X1, K7, X31 // 6262750fcff8
|
||||
VGF2P8MULB 15(R8), X1, K7, X31 // 6242750fcfb80f000000
|
||||
VGF2P8MULB (BP), X1, K7, X31 // 6262750fcf7d00
|
||||
VGF2P8MULB X15, X7, K7, X31 // 6242450fcfff
|
||||
VGF2P8MULB X12, X7, K7, X31 // 6242450fcffc
|
||||
VGF2P8MULB X0, X7, K7, X31 // 6262450fcff8
|
||||
VGF2P8MULB 15(R8), X7, K7, X31 // 6242450fcfb80f000000
|
||||
VGF2P8MULB (BP), X7, K7, X31 // 6262450fcf7d00
|
||||
VGF2P8MULB X15, X9, K7, X31 // 6242350fcfff
|
||||
VGF2P8MULB X12, X9, K7, X31 // 6242350fcffc
|
||||
VGF2P8MULB X0, X9, K7, X31 // 6262350fcff8
|
||||
VGF2P8MULB 15(R8), X9, K7, X31 // 6242350fcfb80f000000
|
||||
VGF2P8MULB (BP), X9, K7, X31 // 6262350fcf7d00
|
||||
VGF2P8MULB Y2, Y28, K1, Y31 // 62621d21cffa
|
||||
VGF2P8MULB Y21, Y28, K1, Y31 // 62221d21cffd
|
||||
VGF2P8MULB Y12, Y28, K1, Y31 // 62421d21cffc
|
||||
VGF2P8MULB (R8), Y28, K1, Y31 // 62421d21cf38
|
||||
VGF2P8MULB 15(DX)(BX*2), Y28, K1, Y31 // 62621d21cfbc5a0f000000
|
||||
VGF2P8MULB Y2, Y13, K1, Y31 // 62621529cffa
|
||||
VGF2P8MULB Y21, Y13, K1, Y31 // 62221529cffd
|
||||
VGF2P8MULB Y12, Y13, K1, Y31 // 62421529cffc
|
||||
VGF2P8MULB (R8), Y13, K1, Y31 // 62421529cf38
|
||||
VGF2P8MULB 15(DX)(BX*2), Y13, K1, Y31 // 62621529cfbc5a0f000000
|
||||
VGF2P8MULB Y2, Y7, K1, Y31 // 62624529cffa
|
||||
VGF2P8MULB Y21, Y7, K1, Y31 // 62224529cffd
|
||||
VGF2P8MULB Y12, Y7, K1, Y31 // 62424529cffc
|
||||
VGF2P8MULB (R8), Y7, K1, Y31 // 62424529cf38
|
||||
VGF2P8MULB 15(DX)(BX*2), Y7, K1, Y31 // 62624529cfbc5a0f000000
|
||||
VGF2P8MULB Y2, Y28, K1, Y8 // 62721d21cfc2
|
||||
VGF2P8MULB Y21, Y28, K1, Y8 // 62321d21cfc5
|
||||
VGF2P8MULB Y12, Y28, K1, Y8 // 62521d21cfc4
|
||||
VGF2P8MULB (R8), Y28, K1, Y8 // 62521d21cf00
|
||||
VGF2P8MULB 15(DX)(BX*2), Y28, K1, Y8 // 62721d21cf845a0f000000
|
||||
VGF2P8MULB Y2, Y13, K1, Y8 // 62721529cfc2
|
||||
VGF2P8MULB Y21, Y13, K1, Y8 // 62321529cfc5
|
||||
VGF2P8MULB Y12, Y13, K1, Y8 // 62521529cfc4
|
||||
VGF2P8MULB (R8), Y13, K1, Y8 // 62521529cf00
|
||||
VGF2P8MULB 15(DX)(BX*2), Y13, K1, Y8 // 62721529cf845a0f000000
|
||||
VGF2P8MULB Y2, Y7, K1, Y8 // 62724529cfc2
|
||||
VGF2P8MULB Y21, Y7, K1, Y8 // 62324529cfc5
|
||||
VGF2P8MULB Y12, Y7, K1, Y8 // 62524529cfc4
|
||||
VGF2P8MULB (R8), Y7, K1, Y8 // 62524529cf00
|
||||
VGF2P8MULB 15(DX)(BX*2), Y7, K1, Y8 // 62724529cf845a0f000000
|
||||
VGF2P8MULB Y2, Y28, K1, Y1 // 62f21d21cfca
|
||||
VGF2P8MULB Y21, Y28, K1, Y1 // 62b21d21cfcd
|
||||
VGF2P8MULB Y12, Y28, K1, Y1 // 62d21d21cfcc
|
||||
VGF2P8MULB (R8), Y28, K1, Y1 // 62d21d21cf08
|
||||
VGF2P8MULB 15(DX)(BX*2), Y28, K1, Y1 // 62f21d21cf8c5a0f000000
|
||||
VGF2P8MULB Y2, Y13, K1, Y1 // 62f21529cfca
|
||||
VGF2P8MULB Y21, Y13, K1, Y1 // 62b21529cfcd
|
||||
VGF2P8MULB Y12, Y13, K1, Y1 // 62d21529cfcc
|
||||
VGF2P8MULB (R8), Y13, K1, Y1 // 62d21529cf08
|
||||
VGF2P8MULB 15(DX)(BX*2), Y13, K1, Y1 // 62f21529cf8c5a0f000000
|
||||
VGF2P8MULB Y2, Y7, K1, Y1 // 62f24529cfca
|
||||
VGF2P8MULB Y21, Y7, K1, Y1 // 62b24529cfcd
|
||||
VGF2P8MULB Y12, Y7, K1, Y1 // 62d24529cfcc
|
||||
VGF2P8MULB (R8), Y7, K1, Y1 // 62d24529cf08
|
||||
VGF2P8MULB 15(DX)(BX*2), Y7, K1, Y1 // 62f24529cf8c5a0f000000
|
||||
VGF2P8MULB Z21, Z14, K1, Z3 // 62b20d49cfdd
|
||||
VGF2P8MULB Z8, Z14, K1, Z3 // 62d20d49cfd8
|
||||
VGF2P8MULB 7(SI)(DI*8), Z14, K1, Z3 // 62f20d49cf9cfe07000000
|
||||
VGF2P8MULB -15(R14), Z14, K1, Z3 // 62d20d49cf9ef1ffffff
|
||||
VGF2P8MULB Z21, Z15, K1, Z3 // 62b20549cfdd
|
||||
VGF2P8MULB Z8, Z15, K1, Z3 // 62d20549cfd8
|
||||
VGF2P8MULB 7(SI)(DI*8), Z15, K1, Z3 // 62f20549cf9cfe07000000
|
||||
VGF2P8MULB -15(R14), Z15, K1, Z3 // 62d20549cf9ef1ffffff
|
||||
VGF2P8MULB Z21, Z14, K1, Z5 // 62b20d49cfed
|
||||
VGF2P8MULB Z8, Z14, K1, Z5 // 62d20d49cfe8
|
||||
VGF2P8MULB 7(SI)(DI*8), Z14, K1, Z5 // 62f20d49cfacfe07000000
|
||||
VGF2P8MULB -15(R14), Z14, K1, Z5 // 62d20d49cfaef1ffffff
|
||||
VGF2P8MULB Z21, Z15, K1, Z5 // 62b20549cfed
|
||||
VGF2P8MULB Z8, Z15, K1, Z5 // 62d20549cfe8
|
||||
VGF2P8MULB 7(SI)(DI*8), Z15, K1, Z5 // 62f20549cfacfe07000000
|
||||
VGF2P8MULB -15(R14), Z15, K1, Z5 // 62d20549cfaef1ffffff
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -3,92 +3,92 @@
|
|||
#include "../../../../../../runtime/textflag.h"
|
||||
|
||||
TEXT asmtest_vpclmulqdq_avx512f(SB), NOSPLIT, $0
|
||||
//TODO: VPCLMULQDQ $127, X22, X21, X15 // 6233550044fe7f or 6233d50044fe7f
|
||||
//TODO: VPCLMULQDQ $127, X7, X21, X15 // 6273550044ff7f or 6273d50044ff7f
|
||||
//TODO: VPCLMULQDQ $127, X19, X21, X15 // 6233550044fb7f or 6233d50044fb7f
|
||||
//TODO: VPCLMULQDQ $127, -17(BP)(SI*8), X21, X15 // 6273550044bcf5efffffff7f or 6273d50044bcf5efffffff7f
|
||||
//TODO: VPCLMULQDQ $127, (R15), X21, X15 // 62535500443f7f or 6253d500443f7f
|
||||
//TODO: VPCLMULQDQ $127, X22, X0, X15 // 62337d0844fe7f or 6233fd0844fe7f
|
||||
//TODO: VPCLMULQDQ $127, X19, X0, X15 // 62337d0844fb7f or 6233fd0844fb7f
|
||||
//TODO: VPCLMULQDQ $127, X22, X28, X15 // 62331d0044fe7f or 62339d0044fe7f
|
||||
//TODO: VPCLMULQDQ $127, X7, X28, X15 // 62731d0044ff7f or 62739d0044ff7f
|
||||
//TODO: VPCLMULQDQ $127, X19, X28, X15 // 62331d0044fb7f or 62339d0044fb7f
|
||||
//TODO: VPCLMULQDQ $127, -17(BP)(SI*8), X28, X15 // 62731d0044bcf5efffffff7f or 62739d0044bcf5efffffff7f
|
||||
//TODO: VPCLMULQDQ $127, (R15), X28, X15 // 62531d00443f7f or 62539d00443f7f
|
||||
//TODO: VPCLMULQDQ $127, X22, X21, X0 // 62b3550044c67f or 62b3d50044c67f
|
||||
//TODO: VPCLMULQDQ $127, X7, X21, X0 // 62f3550044c77f or 62f3d50044c77f
|
||||
//TODO: VPCLMULQDQ $127, X19, X21, X0 // 62b3550044c37f or 62b3d50044c37f
|
||||
//TODO: VPCLMULQDQ $127, -17(BP)(SI*8), X21, X0 // 62f355004484f5efffffff7f or 62f3d5004484f5efffffff7f
|
||||
//TODO: VPCLMULQDQ $127, (R15), X21, X0 // 62d3550044077f or 62d3d50044077f
|
||||
//TODO: VPCLMULQDQ $127, X22, X0, X0 // 62b37d0844c67f or 62b3fd0844c67f
|
||||
//TODO: VPCLMULQDQ $127, X19, X0, X0 // 62b37d0844c37f or 62b3fd0844c37f
|
||||
//TODO: VPCLMULQDQ $127, X22, X28, X0 // 62b31d0044c67f or 62b39d0044c67f
|
||||
//TODO: VPCLMULQDQ $127, X7, X28, X0 // 62f31d0044c77f or 62f39d0044c77f
|
||||
//TODO: VPCLMULQDQ $127, X19, X28, X0 // 62b31d0044c37f or 62b39d0044c37f
|
||||
//TODO: VPCLMULQDQ $127, -17(BP)(SI*8), X28, X0 // 62f31d004484f5efffffff7f or 62f39d004484f5efffffff7f
|
||||
//TODO: VPCLMULQDQ $127, (R15), X28, X0 // 62d31d0044077f or 62d39d0044077f
|
||||
//TODO: VPCLMULQDQ $127, X22, X21, X16 // 62a3550044c67f or 62a3d50044c67f
|
||||
//TODO: VPCLMULQDQ $127, X7, X21, X16 // 62e3550044c77f or 62e3d50044c77f
|
||||
//TODO: VPCLMULQDQ $127, X19, X21, X16 // 62a3550044c37f or 62a3d50044c37f
|
||||
//TODO: VPCLMULQDQ $127, -17(BP)(SI*8), X21, X16 // 62e355004484f5efffffff7f or 62e3d5004484f5efffffff7f
|
||||
//TODO: VPCLMULQDQ $127, (R15), X21, X16 // 62c3550044077f or 62c3d50044077f
|
||||
//TODO: VPCLMULQDQ $127, X22, X0, X16 // 62a37d0844c67f or 62a3fd0844c67f
|
||||
//TODO: VPCLMULQDQ $127, X7, X0, X16 // 62e37d0844c77f or 62e3fd0844c77f
|
||||
//TODO: VPCLMULQDQ $127, X19, X0, X16 // 62a37d0844c37f or 62a3fd0844c37f
|
||||
//TODO: VPCLMULQDQ $127, -17(BP)(SI*8), X0, X16 // 62e37d084484f5efffffff7f or 62e3fd084484f5efffffff7f
|
||||
//TODO: VPCLMULQDQ $127, (R15), X0, X16 // 62c37d0844077f or 62c3fd0844077f
|
||||
//TODO: VPCLMULQDQ $127, X22, X28, X16 // 62a31d0044c67f or 62a39d0044c67f
|
||||
//TODO: VPCLMULQDQ $127, X7, X28, X16 // 62e31d0044c77f or 62e39d0044c77f
|
||||
//TODO: VPCLMULQDQ $127, X19, X28, X16 // 62a31d0044c37f or 62a39d0044c37f
|
||||
//TODO: VPCLMULQDQ $127, -17(BP)(SI*8), X28, X16 // 62e31d004484f5efffffff7f or 62e39d004484f5efffffff7f
|
||||
//TODO: VPCLMULQDQ $127, (R15), X28, X16 // 62c31d0044077f or 62c39d0044077f
|
||||
//TODO: VPCLMULQDQ $0, Y15, Y2, Y31 // 62436d2844ff00 or 6243ed2844ff00
|
||||
//TODO: VPCLMULQDQ $0, Y22, Y2, Y31 // 62236d2844fe00 or 6223ed2844fe00
|
||||
//TODO: VPCLMULQDQ $0, Y20, Y2, Y31 // 62236d2844fc00 or 6223ed2844fc00
|
||||
//TODO: VPCLMULQDQ $0, 99(R15)(R15*4), Y2, Y31 // 62036d2844bcbf6300000000 or 6203ed2844bcbf6300000000
|
||||
//TODO: VPCLMULQDQ $0, 15(DX), Y2, Y31 // 62636d2844ba0f00000000 or 6263ed2844ba0f00000000
|
||||
//TODO: VPCLMULQDQ $0, Y15, Y13, Y31 // 6243152844ff00 or 6243952844ff00
|
||||
//TODO: VPCLMULQDQ $0, Y22, Y13, Y31 // 6223152844fe00 or 6223952844fe00
|
||||
//TODO: VPCLMULQDQ $0, Y20, Y13, Y31 // 6223152844fc00 or 6223952844fc00
|
||||
//TODO: VPCLMULQDQ $0, 99(R15)(R15*4), Y13, Y31 // 6203152844bcbf6300000000 or 6203952844bcbf6300000000
|
||||
//TODO: VPCLMULQDQ $0, 15(DX), Y13, Y31 // 6263152844ba0f00000000 or 6263952844ba0f00000000
|
||||
//TODO: VPCLMULQDQ $0, Y15, Y27, Y31 // 6243252044ff00 or 6243a52044ff00
|
||||
//TODO: VPCLMULQDQ $0, Y22, Y27, Y31 // 6223252044fe00 or 6223a52044fe00
|
||||
//TODO: VPCLMULQDQ $0, Y20, Y27, Y31 // 6223252044fc00 or 6223a52044fc00
|
||||
//TODO: VPCLMULQDQ $0, 99(R15)(R15*4), Y27, Y31 // 6203252044bcbf6300000000 or 6203a52044bcbf6300000000
|
||||
//TODO: VPCLMULQDQ $0, 15(DX), Y27, Y31 // 6263252044ba0f00000000 or 6263a52044ba0f00000000
|
||||
//TODO: VPCLMULQDQ $0, Y22, Y2, Y3 // 62b36d2844de00 or 62b3ed2844de00
|
||||
//TODO: VPCLMULQDQ $0, Y20, Y2, Y3 // 62b36d2844dc00 or 62b3ed2844dc00
|
||||
//TODO: VPCLMULQDQ $0, Y22, Y13, Y3 // 62b3152844de00 or 62b3952844de00
|
||||
//TODO: VPCLMULQDQ $0, Y20, Y13, Y3 // 62b3152844dc00 or 62b3952844dc00
|
||||
//TODO: VPCLMULQDQ $0, Y15, Y27, Y3 // 62d3252044df00 or 62d3a52044df00
|
||||
//TODO: VPCLMULQDQ $0, Y22, Y27, Y3 // 62b3252044de00 or 62b3a52044de00
|
||||
//TODO: VPCLMULQDQ $0, Y20, Y27, Y3 // 62b3252044dc00 or 62b3a52044dc00
|
||||
//TODO: VPCLMULQDQ $0, 99(R15)(R15*4), Y27, Y3 // 62932520449cbf6300000000 or 6293a520449cbf6300000000
|
||||
//TODO: VPCLMULQDQ $0, 15(DX), Y27, Y3 // 62f32520449a0f00000000 or 62f3a520449a0f00000000
|
||||
//TODO: VPCLMULQDQ $0, Y22, Y2, Y14 // 62336d2844f600 or 6233ed2844f600
|
||||
//TODO: VPCLMULQDQ $0, Y20, Y2, Y14 // 62336d2844f400 or 6233ed2844f400
|
||||
//TODO: VPCLMULQDQ $0, Y22, Y13, Y14 // 6233152844f600 or 6233952844f600
|
||||
//TODO: VPCLMULQDQ $0, Y20, Y13, Y14 // 6233152844f400 or 6233952844f400
|
||||
//TODO: VPCLMULQDQ $0, Y15, Y27, Y14 // 6253252044f700 or 6253a52044f700
|
||||
//TODO: VPCLMULQDQ $0, Y22, Y27, Y14 // 6233252044f600 or 6233a52044f600
|
||||
//TODO: VPCLMULQDQ $0, Y20, Y27, Y14 // 6233252044f400 or 6233a52044f400
|
||||
//TODO: VPCLMULQDQ $0, 99(R15)(R15*4), Y27, Y14 // 6213252044b4bf6300000000 or 6213a52044b4bf6300000000
|
||||
//TODO: VPCLMULQDQ $0, 15(DX), Y27, Y14 // 6273252044b20f00000000 or 6273a52044b20f00000000
|
||||
//TODO: VPCLMULQDQ $97, Z9, Z0, Z24 // 62437d4844c161 or 6243fd4844c161
|
||||
//TODO: VPCLMULQDQ $97, Z3, Z0, Z24 // 62637d4844c361 or 6263fd4844c361
|
||||
//TODO: VPCLMULQDQ $97, 7(SI)(DI*1), Z0, Z24 // 62637d4844843e0700000061 or 6263fd4844843e0700000061
|
||||
//TODO: VPCLMULQDQ $97, 15(DX)(BX*8), Z0, Z24 // 62637d484484da0f00000061 or 6263fd484484da0f00000061
|
||||
//TODO: VPCLMULQDQ $97, Z9, Z26, Z24 // 62432d4044c161 or 6243ad4044c161
|
||||
//TODO: VPCLMULQDQ $97, Z3, Z26, Z24 // 62632d4044c361 or 6263ad4044c361
|
||||
//TODO: VPCLMULQDQ $97, 7(SI)(DI*1), Z26, Z24 // 62632d4044843e0700000061 or 6263ad4044843e0700000061
|
||||
//TODO: VPCLMULQDQ $97, 15(DX)(BX*8), Z26, Z24 // 62632d404484da0f00000061 or 6263ad404484da0f00000061
|
||||
//TODO: VPCLMULQDQ $97, Z9, Z0, Z12 // 62537d4844e161 or 6253fd4844e161
|
||||
//TODO: VPCLMULQDQ $97, Z3, Z0, Z12 // 62737d4844e361 or 6273fd4844e361
|
||||
//TODO: VPCLMULQDQ $97, 7(SI)(DI*1), Z0, Z12 // 62737d4844a43e0700000061 or 6273fd4844a43e0700000061
|
||||
//TODO: VPCLMULQDQ $97, 15(DX)(BX*8), Z0, Z12 // 62737d4844a4da0f00000061 or 6273fd4844a4da0f00000061
|
||||
//TODO: VPCLMULQDQ $97, Z9, Z26, Z12 // 62532d4044e161 or 6253ad4044e161
|
||||
//TODO: VPCLMULQDQ $97, Z3, Z26, Z12 // 62732d4044e361 or 6273ad4044e361
|
||||
//TODO: VPCLMULQDQ $97, 7(SI)(DI*1), Z26, Z12 // 62732d4044a43e0700000061 or 6273ad4044a43e0700000061
|
||||
//TODO: VPCLMULQDQ $97, 15(DX)(BX*8), Z26, Z12 // 62732d4044a4da0f00000061 or 6273ad4044a4da0f00000061
|
||||
VPCLMULQDQ $127, X22, X21, X15 // 6233550044fe7f or 6233d50044fe7f
|
||||
VPCLMULQDQ $127, X7, X21, X15 // 6273550044ff7f or 6273d50044ff7f
|
||||
VPCLMULQDQ $127, X19, X21, X15 // 6233550044fb7f or 6233d50044fb7f
|
||||
VPCLMULQDQ $127, -17(BP)(SI*8), X21, X15 // 6273550044bcf5efffffff7f or 6273d50044bcf5efffffff7f
|
||||
VPCLMULQDQ $127, (R15), X21, X15 // 62535500443f7f or 6253d500443f7f
|
||||
VPCLMULQDQ $127, X22, X0, X15 // 62337d0844fe7f or 6233fd0844fe7f
|
||||
VPCLMULQDQ $127, X19, X0, X15 // 62337d0844fb7f or 6233fd0844fb7f
|
||||
VPCLMULQDQ $127, X22, X28, X15 // 62331d0044fe7f or 62339d0044fe7f
|
||||
VPCLMULQDQ $127, X7, X28, X15 // 62731d0044ff7f or 62739d0044ff7f
|
||||
VPCLMULQDQ $127, X19, X28, X15 // 62331d0044fb7f or 62339d0044fb7f
|
||||
VPCLMULQDQ $127, -17(BP)(SI*8), X28, X15 // 62731d0044bcf5efffffff7f or 62739d0044bcf5efffffff7f
|
||||
VPCLMULQDQ $127, (R15), X28, X15 // 62531d00443f7f or 62539d00443f7f
|
||||
VPCLMULQDQ $127, X22, X21, X0 // 62b3550044c67f or 62b3d50044c67f
|
||||
VPCLMULQDQ $127, X7, X21, X0 // 62f3550044c77f or 62f3d50044c77f
|
||||
VPCLMULQDQ $127, X19, X21, X0 // 62b3550044c37f or 62b3d50044c37f
|
||||
VPCLMULQDQ $127, -17(BP)(SI*8), X21, X0 // 62f355004484f5efffffff7f or 62f3d5004484f5efffffff7f
|
||||
VPCLMULQDQ $127, (R15), X21, X0 // 62d3550044077f or 62d3d50044077f
|
||||
VPCLMULQDQ $127, X22, X0, X0 // 62b37d0844c67f or 62b3fd0844c67f
|
||||
VPCLMULQDQ $127, X19, X0, X0 // 62b37d0844c37f or 62b3fd0844c37f
|
||||
VPCLMULQDQ $127, X22, X28, X0 // 62b31d0044c67f or 62b39d0044c67f
|
||||
VPCLMULQDQ $127, X7, X28, X0 // 62f31d0044c77f or 62f39d0044c77f
|
||||
VPCLMULQDQ $127, X19, X28, X0 // 62b31d0044c37f or 62b39d0044c37f
|
||||
VPCLMULQDQ $127, -17(BP)(SI*8), X28, X0 // 62f31d004484f5efffffff7f or 62f39d004484f5efffffff7f
|
||||
VPCLMULQDQ $127, (R15), X28, X0 // 62d31d0044077f or 62d39d0044077f
|
||||
VPCLMULQDQ $127, X22, X21, X16 // 62a3550044c67f or 62a3d50044c67f
|
||||
VPCLMULQDQ $127, X7, X21, X16 // 62e3550044c77f or 62e3d50044c77f
|
||||
VPCLMULQDQ $127, X19, X21, X16 // 62a3550044c37f or 62a3d50044c37f
|
||||
VPCLMULQDQ $127, -17(BP)(SI*8), X21, X16 // 62e355004484f5efffffff7f or 62e3d5004484f5efffffff7f
|
||||
VPCLMULQDQ $127, (R15), X21, X16 // 62c3550044077f or 62c3d50044077f
|
||||
VPCLMULQDQ $127, X22, X0, X16 // 62a37d0844c67f or 62a3fd0844c67f
|
||||
VPCLMULQDQ $127, X7, X0, X16 // 62e37d0844c77f or 62e3fd0844c77f
|
||||
VPCLMULQDQ $127, X19, X0, X16 // 62a37d0844c37f or 62a3fd0844c37f
|
||||
VPCLMULQDQ $127, -17(BP)(SI*8), X0, X16 // 62e37d084484f5efffffff7f or 62e3fd084484f5efffffff7f
|
||||
VPCLMULQDQ $127, (R15), X0, X16 // 62c37d0844077f or 62c3fd0844077f
|
||||
VPCLMULQDQ $127, X22, X28, X16 // 62a31d0044c67f or 62a39d0044c67f
|
||||
VPCLMULQDQ $127, X7, X28, X16 // 62e31d0044c77f or 62e39d0044c77f
|
||||
VPCLMULQDQ $127, X19, X28, X16 // 62a31d0044c37f or 62a39d0044c37f
|
||||
VPCLMULQDQ $127, -17(BP)(SI*8), X28, X16 // 62e31d004484f5efffffff7f or 62e39d004484f5efffffff7f
|
||||
VPCLMULQDQ $127, (R15), X28, X16 // 62c31d0044077f or 62c39d0044077f
|
||||
VPCLMULQDQ $0, Y15, Y2, Y31 // 62436d2844ff00 or 6243ed2844ff00
|
||||
VPCLMULQDQ $0, Y22, Y2, Y31 // 62236d2844fe00 or 6223ed2844fe00
|
||||
VPCLMULQDQ $0, Y20, Y2, Y31 // 62236d2844fc00 or 6223ed2844fc00
|
||||
VPCLMULQDQ $0, 99(R15)(R15*4), Y2, Y31 // 62036d2844bcbf6300000000 or 6203ed2844bcbf6300000000
|
||||
VPCLMULQDQ $0, 15(DX), Y2, Y31 // 62636d2844ba0f00000000 or 6263ed2844ba0f00000000
|
||||
VPCLMULQDQ $0, Y15, Y13, Y31 // 6243152844ff00 or 6243952844ff00
|
||||
VPCLMULQDQ $0, Y22, Y13, Y31 // 6223152844fe00 or 6223952844fe00
|
||||
VPCLMULQDQ $0, Y20, Y13, Y31 // 6223152844fc00 or 6223952844fc00
|
||||
VPCLMULQDQ $0, 99(R15)(R15*4), Y13, Y31 // 6203152844bcbf6300000000 or 6203952844bcbf6300000000
|
||||
VPCLMULQDQ $0, 15(DX), Y13, Y31 // 6263152844ba0f00000000 or 6263952844ba0f00000000
|
||||
VPCLMULQDQ $0, Y15, Y27, Y31 // 6243252044ff00 or 6243a52044ff00
|
||||
VPCLMULQDQ $0, Y22, Y27, Y31 // 6223252044fe00 or 6223a52044fe00
|
||||
VPCLMULQDQ $0, Y20, Y27, Y31 // 6223252044fc00 or 6223a52044fc00
|
||||
VPCLMULQDQ $0, 99(R15)(R15*4), Y27, Y31 // 6203252044bcbf6300000000 or 6203a52044bcbf6300000000
|
||||
VPCLMULQDQ $0, 15(DX), Y27, Y31 // 6263252044ba0f00000000 or 6263a52044ba0f00000000
|
||||
VPCLMULQDQ $0, Y22, Y2, Y3 // 62b36d2844de00 or 62b3ed2844de00
|
||||
VPCLMULQDQ $0, Y20, Y2, Y3 // 62b36d2844dc00 or 62b3ed2844dc00
|
||||
VPCLMULQDQ $0, Y22, Y13, Y3 // 62b3152844de00 or 62b3952844de00
|
||||
VPCLMULQDQ $0, Y20, Y13, Y3 // 62b3152844dc00 or 62b3952844dc00
|
||||
VPCLMULQDQ $0, Y15, Y27, Y3 // 62d3252044df00 or 62d3a52044df00
|
||||
VPCLMULQDQ $0, Y22, Y27, Y3 // 62b3252044de00 or 62b3a52044de00
|
||||
VPCLMULQDQ $0, Y20, Y27, Y3 // 62b3252044dc00 or 62b3a52044dc00
|
||||
VPCLMULQDQ $0, 99(R15)(R15*4), Y27, Y3 // 62932520449cbf6300000000 or 6293a520449cbf6300000000
|
||||
VPCLMULQDQ $0, 15(DX), Y27, Y3 // 62f32520449a0f00000000 or 62f3a520449a0f00000000
|
||||
VPCLMULQDQ $0, Y22, Y2, Y14 // 62336d2844f600 or 6233ed2844f600
|
||||
VPCLMULQDQ $0, Y20, Y2, Y14 // 62336d2844f400 or 6233ed2844f400
|
||||
VPCLMULQDQ $0, Y22, Y13, Y14 // 6233152844f600 or 6233952844f600
|
||||
VPCLMULQDQ $0, Y20, Y13, Y14 // 6233152844f400 or 6233952844f400
|
||||
VPCLMULQDQ $0, Y15, Y27, Y14 // 6253252044f700 or 6253a52044f700
|
||||
VPCLMULQDQ $0, Y22, Y27, Y14 // 6233252044f600 or 6233a52044f600
|
||||
VPCLMULQDQ $0, Y20, Y27, Y14 // 6233252044f400 or 6233a52044f400
|
||||
VPCLMULQDQ $0, 99(R15)(R15*4), Y27, Y14 // 6213252044b4bf6300000000 or 6213a52044b4bf6300000000
|
||||
VPCLMULQDQ $0, 15(DX), Y27, Y14 // 6273252044b20f00000000 or 6273a52044b20f00000000
|
||||
VPCLMULQDQ $97, Z9, Z0, Z24 // 62437d4844c161 or 6243fd4844c161
|
||||
VPCLMULQDQ $97, Z3, Z0, Z24 // 62637d4844c361 or 6263fd4844c361
|
||||
VPCLMULQDQ $97, 7(SI)(DI*1), Z0, Z24 // 62637d4844843e0700000061 or 6263fd4844843e0700000061
|
||||
VPCLMULQDQ $97, 15(DX)(BX*8), Z0, Z24 // 62637d484484da0f00000061 or 6263fd484484da0f00000061
|
||||
VPCLMULQDQ $97, Z9, Z26, Z24 // 62432d4044c161 or 6243ad4044c161
|
||||
VPCLMULQDQ $97, Z3, Z26, Z24 // 62632d4044c361 or 6263ad4044c361
|
||||
VPCLMULQDQ $97, 7(SI)(DI*1), Z26, Z24 // 62632d4044843e0700000061 or 6263ad4044843e0700000061
|
||||
VPCLMULQDQ $97, 15(DX)(BX*8), Z26, Z24 // 62632d404484da0f00000061 or 6263ad404484da0f00000061
|
||||
VPCLMULQDQ $97, Z9, Z0, Z12 // 62537d4844e161 or 6253fd4844e161
|
||||
VPCLMULQDQ $97, Z3, Z0, Z12 // 62737d4844e361 or 6273fd4844e361
|
||||
VPCLMULQDQ $97, 7(SI)(DI*1), Z0, Z12 // 62737d4844a43e0700000061 or 6273fd4844a43e0700000061
|
||||
VPCLMULQDQ $97, 15(DX)(BX*8), Z0, Z12 // 62737d4844a4da0f00000061 or 6273fd4844a4da0f00000061
|
||||
VPCLMULQDQ $97, Z9, Z26, Z12 // 62532d4044e161 or 6253ad4044e161
|
||||
VPCLMULQDQ $97, Z3, Z26, Z12 // 62732d4044e361 or 6273ad4044e361
|
||||
VPCLMULQDQ $97, 7(SI)(DI*1), Z26, Z12 // 62732d4044a43e0700000061 or 6273ad4044a43e0700000061
|
||||
VPCLMULQDQ $97, 15(DX)(BX*8), Z26, Z12 // 62732d4044a4da0f00000061 or 6273ad4044a4da0f00000061
|
||||
RET
|
||||
|
|
|
|||
|
|
@ -642,8 +642,10 @@ var knownFormats = map[string]string{
|
|||
"cmd/compile/internal/ssa.GCNode %v": "",
|
||||
"cmd/compile/internal/ssa.ID %d": "",
|
||||
"cmd/compile/internal/ssa.ID %v": "",
|
||||
"cmd/compile/internal/ssa.LocPair %s": "",
|
||||
"cmd/compile/internal/ssa.LocalSlot %s": "",
|
||||
"cmd/compile/internal/ssa.LocalSlot %v": "",
|
||||
"cmd/compile/internal/ssa.Location %T": "",
|
||||
"cmd/compile/internal/ssa.Location %s": "",
|
||||
"cmd/compile/internal/ssa.Op %s": "",
|
||||
"cmd/compile/internal/ssa.Op %v": "",
|
||||
|
|
|
|||
|
|
@ -117,6 +117,21 @@ func (bv bvec) Next(i int32) int32 {
|
|||
return i
|
||||
}
|
||||
|
||||
// Len returns the minimum number of bits required to represent bv.
|
||||
// The result is 0 if no bits are set in bv.
|
||||
func (bv bvec) Len() int32 {
|
||||
for wi := len(bv.b) - 1; wi >= 0; wi-- {
|
||||
if w := bv.b[wi]; w != 0 {
|
||||
for i := wordBits - 1; i >= 0; i-- {
|
||||
if w>>uint(i) != 0 {
|
||||
return int32(wi)*wordBits + int32(i) + 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (bv bvec) IsEmpty() bool {
|
||||
for _, x := range bv.b {
|
||||
if x != 0 {
|
||||
|
|
@ -186,3 +201,104 @@ func (bv bvec) Clear() {
|
|||
bv.b[i] = 0
|
||||
}
|
||||
}
|
||||
|
||||
// FNV-1 hash function constants.
|
||||
const (
|
||||
H0 = 2166136261
|
||||
Hp = 16777619
|
||||
)
|
||||
|
||||
func hashbitmap(h uint32, bv bvec) uint32 {
|
||||
n := int((bv.n + 31) / 32)
|
||||
for i := 0; i < n; i++ {
|
||||
w := bv.b[i]
|
||||
h = (h * Hp) ^ (w & 0xff)
|
||||
h = (h * Hp) ^ ((w >> 8) & 0xff)
|
||||
h = (h * Hp) ^ ((w >> 16) & 0xff)
|
||||
h = (h * Hp) ^ ((w >> 24) & 0xff)
|
||||
}
|
||||
|
||||
return h
|
||||
}
|
||||
|
||||
// bvecSet is a set of bvecs, in initial insertion order.
|
||||
type bvecSet struct {
|
||||
index []int // hash -> uniq index. -1 indicates empty slot.
|
||||
uniq []bvec // unique bvecs, in insertion order
|
||||
}
|
||||
|
||||
func newBvecSet(size int) bvecSet {
|
||||
// bvecSet is a linear probing hash table.
|
||||
// The hash table has 4n entries to keep the linear
|
||||
// scan short.
|
||||
index := make([]int, size*4)
|
||||
for i := range index {
|
||||
index[i] = -1
|
||||
}
|
||||
return bvecSet{index, nil}
|
||||
}
|
||||
|
||||
func (m *bvecSet) grow() {
|
||||
// Allocate new index.
|
||||
n := len(m.index) * 2
|
||||
if n == 0 {
|
||||
n = 32
|
||||
}
|
||||
newIndex := make([]int, n)
|
||||
for i := range newIndex {
|
||||
newIndex[i] = -1
|
||||
}
|
||||
|
||||
// Rehash into newIndex.
|
||||
for i, bv := range m.uniq {
|
||||
h := hashbitmap(H0, bv) % uint32(len(newIndex))
|
||||
for {
|
||||
j := newIndex[h]
|
||||
if j < 0 {
|
||||
newIndex[h] = i
|
||||
break
|
||||
}
|
||||
h++
|
||||
if h == uint32(len(newIndex)) {
|
||||
h = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
m.index = newIndex
|
||||
}
|
||||
|
||||
// add adds bv to the set and returns its index in m.extractUniqe.
|
||||
// The caller must not modify bv after this.
|
||||
func (m *bvecSet) add(bv bvec) int {
|
||||
if len(m.uniq)*4 >= len(m.index) {
|
||||
m.grow()
|
||||
}
|
||||
|
||||
index := m.index
|
||||
h := hashbitmap(H0, bv) % uint32(len(index))
|
||||
for {
|
||||
j := index[h]
|
||||
if j < 0 {
|
||||
// New bvec.
|
||||
index[h] = len(m.uniq)
|
||||
m.uniq = append(m.uniq, bv)
|
||||
return len(m.uniq) - 1
|
||||
}
|
||||
jlive := m.uniq[j]
|
||||
if bv.Eq(jlive) {
|
||||
// Existing bvec.
|
||||
return j
|
||||
}
|
||||
|
||||
h++
|
||||
if h == uint32(len(index)) {
|
||||
h = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// extractUniqe returns this slice of unique bit vectors in m, as
|
||||
// indexed by the result of bvecSet.add.
|
||||
func (m *bvecSet) extractUniqe() []bvec {
|
||||
return m.uniq
|
||||
}
|
||||
|
|
|
|||
|
|
@ -994,6 +994,10 @@ func (n *Node) stmtfmt(s fmt.State, mode fmtMode) {
|
|||
fmt.Fprint(s, ";")
|
||||
}
|
||||
|
||||
if n.Op == OFORUNTIL && n.List.Len() != 0 {
|
||||
mode.Fprintf(s, "; %v", n.List)
|
||||
}
|
||||
|
||||
mode.Fprintf(s, " { %v }", n.Nbody)
|
||||
|
||||
case ORANGE:
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
package gc
|
||||
|
||||
import (
|
||||
"cmd/compile/internal/ssa"
|
||||
"cmd/compile/internal/types"
|
||||
"cmd/internal/obj"
|
||||
"cmd/internal/objabi"
|
||||
|
|
@ -48,6 +49,9 @@ type Progs struct {
|
|||
curfn *Node // fn these Progs are for
|
||||
progcache []obj.Prog // local progcache
|
||||
cacheidx int // first free element of progcache
|
||||
|
||||
nextLive LivenessIndex // liveness index for the next Prog
|
||||
prevLive LivenessIndex // last emitted liveness index
|
||||
}
|
||||
|
||||
// newProgs returns a new Progs for fn.
|
||||
|
|
@ -66,6 +70,8 @@ func newProgs(fn *Node, worker int) *Progs {
|
|||
|
||||
pp.pos = fn.Pos
|
||||
pp.settext(fn)
|
||||
pp.nextLive = LivenessInvalid
|
||||
pp.prevLive = LivenessInvalid
|
||||
return pp
|
||||
}
|
||||
|
||||
|
|
@ -102,6 +108,23 @@ func (pp *Progs) Free() {
|
|||
|
||||
// Prog adds a Prog with instruction As to pp.
|
||||
func (pp *Progs) Prog(as obj.As) *obj.Prog {
|
||||
if pp.nextLive.stackMapIndex != pp.prevLive.stackMapIndex {
|
||||
// Emit stack map index change.
|
||||
idx := pp.nextLive.stackMapIndex
|
||||
pp.prevLive.stackMapIndex = idx
|
||||
p := pp.Prog(obj.APCDATA)
|
||||
Addrconst(&p.From, objabi.PCDATA_StackMapIndex)
|
||||
Addrconst(&p.To, int64(idx))
|
||||
}
|
||||
if pp.nextLive.regMapIndex != pp.prevLive.regMapIndex {
|
||||
// Emit register map index change.
|
||||
idx := pp.nextLive.regMapIndex
|
||||
pp.prevLive.regMapIndex = idx
|
||||
p := pp.Prog(obj.APCDATA)
|
||||
Addrconst(&p.From, objabi.PCDATA_RegMapIndex)
|
||||
Addrconst(&p.To, int64(idx))
|
||||
}
|
||||
|
||||
p := pp.next
|
||||
pp.next = pp.NewProg()
|
||||
pp.clearp(pp.next)
|
||||
|
|
@ -114,12 +137,8 @@ func (pp *Progs) Prog(as obj.As) *obj.Prog {
|
|||
p.As = as
|
||||
p.Pos = pp.pos
|
||||
if pp.pos.IsStmt() == src.PosIsStmt {
|
||||
// Clear IsStmt for later Progs at this pos provided that as generates executable code.
|
||||
switch as {
|
||||
// TODO: this is an artifact of how funcpctab combines information for instructions at a single PC.
|
||||
// Should try to fix it there. There is a similar workaround in *SSAGenState.Prog in gc/ssa.go.
|
||||
case obj.APCDATA, obj.AFUNCDATA:
|
||||
// is_stmt does not work for these; it DOES for ANOP
|
||||
// Clear IsStmt for later Progs at this pos provided that as can be marked as a stmt
|
||||
if ssa.LosesStmtMark(as) {
|
||||
return p
|
||||
}
|
||||
pp.pos = pp.pos.WithNotStmt()
|
||||
|
|
@ -178,6 +197,12 @@ func (pp *Progs) settext(fn *Node) {
|
|||
p.To.Type = obj.TYPE_MEM
|
||||
p.To.Name = obj.NAME_EXTERN
|
||||
p.To.Sym = &fn.Func.lsym.Func.GCLocals
|
||||
|
||||
p = pp.Prog(obj.AFUNCDATA)
|
||||
Addrconst(&p.From, objabi.FUNCDATA_RegPointerMaps)
|
||||
p.To.Type = obj.TYPE_MEM
|
||||
p.To.Name = obj.NAME_EXTERN
|
||||
p.To.Sym = &fn.Func.lsym.Func.GCRegs
|
||||
}
|
||||
|
||||
func (f *Func) initLSym() {
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
// making 1 the default and -l disable. Additional levels (beyond -l) may be buggy and
|
||||
// are not supported.
|
||||
// 0: disabled
|
||||
// 1: 80-nodes leaf functions, oneliners, lazy typechecking (default)
|
||||
// 1: 80-nodes leaf functions, oneliners, panic, lazy typechecking (default)
|
||||
// 2: (unassigned)
|
||||
// 3: (unassigned)
|
||||
// 4: allow non-leaf functions
|
||||
|
|
@ -34,6 +34,15 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
// Inlining budget parameters, gathered in one place
|
||||
const (
|
||||
inlineMaxBudget = 80
|
||||
inlineExtraAppendCost = 0
|
||||
inlineExtraCallCost = inlineMaxBudget // default is do not inline, -l=4 enables by using 1 instead.
|
||||
inlineExtraPanicCost = 1 // do not penalize inlining panics.
|
||||
inlineExtraThrowCost = inlineMaxBudget // with current (2018-05/1.11) code, inlining runtime.throw does not help.
|
||||
)
|
||||
|
||||
// Get the function's package. For ordinary functions it's on the ->sym, but for imported methods
|
||||
// the ->sym can be re-used in the local package, so peel it off the receiver's type.
|
||||
func fnpkg(fn *Node) *types.Pkg {
|
||||
|
|
@ -155,20 +164,37 @@ func caninl(fn *Node) {
|
|||
}
|
||||
defer n.Func.SetInlinabilityChecked(true)
|
||||
|
||||
const maxBudget = 80
|
||||
visitor := hairyVisitor{budget: maxBudget}
|
||||
cc := int32(inlineExtraCallCost)
|
||||
if Debug['l'] == 4 {
|
||||
cc = 1 // this appears to yield better performance than 0.
|
||||
}
|
||||
|
||||
// At this point in the game the function we're looking at may
|
||||
// have "stale" autos, vars that still appear in the Dcl list, but
|
||||
// which no longer have any uses in the function body (due to
|
||||
// elimination by deadcode). We'd like to exclude these dead vars
|
||||
// when creating the "Inline.Dcl" field below; to accomplish this,
|
||||
// the hairyVisitor below builds up a map of used/referenced
|
||||
// locals, and we use this map to produce a pruned Inline.Dcl
|
||||
// list. See issue 25249 for more context.
|
||||
|
||||
visitor := hairyVisitor{
|
||||
budget: inlineMaxBudget,
|
||||
extraCallCost: cc,
|
||||
usedLocals: make(map[*Node]bool),
|
||||
}
|
||||
if visitor.visitList(fn.Nbody) {
|
||||
reason = visitor.reason
|
||||
return
|
||||
}
|
||||
if visitor.budget < 0 {
|
||||
reason = fmt.Sprintf("function too complex: cost %d exceeds budget %d", maxBudget-visitor.budget, maxBudget)
|
||||
reason = fmt.Sprintf("function too complex: cost %d exceeds budget %d", inlineMaxBudget-visitor.budget, inlineMaxBudget)
|
||||
return
|
||||
}
|
||||
|
||||
n.Func.Inl = &Inline{
|
||||
Cost: maxBudget - visitor.budget,
|
||||
Dcl: inlcopylist(n.Name.Defn.Func.Dcl),
|
||||
Cost: inlineMaxBudget - visitor.budget,
|
||||
Dcl: inlcopylist(pruneUnusedAutos(n.Name.Defn.Func.Dcl, &visitor)),
|
||||
Body: inlcopylist(fn.Nbody.Slice()),
|
||||
}
|
||||
|
||||
|
|
@ -229,8 +255,10 @@ func inlFlood(n *Node) {
|
|||
// hairyVisitor visits a function body to determine its inlining
|
||||
// hairiness and whether or not it can be inlined.
|
||||
type hairyVisitor struct {
|
||||
budget int32
|
||||
reason string
|
||||
budget int32
|
||||
reason string
|
||||
extraCallCost int32
|
||||
usedLocals map[*Node]bool
|
||||
}
|
||||
|
||||
// Look for anything we want to punt on.
|
||||
|
|
@ -257,12 +285,18 @@ func (v *hairyVisitor) visit(n *Node) bool {
|
|||
}
|
||||
// Functions that call runtime.getcaller{pc,sp} can not be inlined
|
||||
// because getcaller{pc,sp} expect a pointer to the caller's first argument.
|
||||
//
|
||||
// runtime.throw is a "cheap call" like panic in normal code.
|
||||
if n.Left.Op == ONAME && n.Left.Class() == PFUNC && isRuntimePkg(n.Left.Sym.Pkg) {
|
||||
fn := n.Left.Sym.Name
|
||||
if fn == "getcallerpc" || fn == "getcallersp" {
|
||||
v.reason = "call to " + fn
|
||||
return true
|
||||
}
|
||||
if fn == "throw" {
|
||||
v.budget -= inlineExtraThrowCost
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if fn := n.Left.Func; fn != nil && fn.Inl != nil {
|
||||
|
|
@ -277,10 +311,9 @@ func (v *hairyVisitor) visit(n *Node) bool {
|
|||
}
|
||||
// TODO(mdempsky): Budget for OCLOSURE calls if we
|
||||
// ever allow that. See #15561 and #23093.
|
||||
if Debug['l'] < 4 {
|
||||
v.reason = "non-leaf function"
|
||||
return true
|
||||
}
|
||||
|
||||
// Call cost for non-leaf inlining.
|
||||
v.budget -= v.extraCallCost
|
||||
|
||||
// Call is okay if inlinable and we have the budget for the body.
|
||||
case OCALLMETH:
|
||||
|
|
@ -310,17 +343,16 @@ func (v *hairyVisitor) visit(n *Node) bool {
|
|||
v.budget -= inlfn.Inl.Cost
|
||||
break
|
||||
}
|
||||
if Debug['l'] < 4 {
|
||||
v.reason = "non-leaf method"
|
||||
return true
|
||||
}
|
||||
// Call cost for non-leaf inlining.
|
||||
v.budget -= v.extraCallCost
|
||||
|
||||
// Things that are too hairy, irrespective of the budget
|
||||
case OCALL, OCALLINTER, OPANIC:
|
||||
if Debug['l'] < 4 {
|
||||
v.reason = "non-leaf op " + n.Op.String()
|
||||
return true
|
||||
}
|
||||
case OCALL, OCALLINTER:
|
||||
// Call cost for non-leaf inlining.
|
||||
v.budget -= v.extraCallCost
|
||||
|
||||
case OPANIC:
|
||||
v.budget -= v.extraCallCost
|
||||
|
||||
case ORECOVER:
|
||||
// recover matches the argument frame pointer to find
|
||||
|
|
@ -343,6 +375,9 @@ func (v *hairyVisitor) visit(n *Node) bool {
|
|||
v.reason = "unhandled op " + n.Op.String()
|
||||
return true
|
||||
|
||||
case OAPPEND:
|
||||
v.budget -= inlineExtraAppendCost
|
||||
|
||||
case ODCLCONST, OEMPTY, OFALL, OLABEL:
|
||||
// These nodes don't produce code; omit from inlining budget.
|
||||
return false
|
||||
|
|
@ -353,6 +388,12 @@ func (v *hairyVisitor) visit(n *Node) bool {
|
|||
return v.visitList(n.Ninit) || v.visitList(n.Nbody) ||
|
||||
v.visitList(n.Rlist)
|
||||
}
|
||||
|
||||
case ONAME:
|
||||
if n.Class() == PAUTO {
|
||||
v.usedLocals[n] = true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
v.budget--
|
||||
|
|
@ -1229,3 +1270,16 @@ func (subst *inlsubst) updatedPos(xpos src.XPos) src.XPos {
|
|||
pos.SetBase(newbase)
|
||||
return Ctxt.PosTable.XPos(pos)
|
||||
}
|
||||
|
||||
func pruneUnusedAutos(ll []*Node, vis *hairyVisitor) []*Node {
|
||||
s := make([]*Node, 0, len(ll))
|
||||
for _, n := range ll {
|
||||
if n.Class() == PAUTO {
|
||||
if _, found := vis.usedLocals[n]; !found {
|
||||
continue
|
||||
}
|
||||
}
|
||||
s = append(s, n)
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ func addGCLocals() {
|
|||
if s.Func == nil {
|
||||
continue
|
||||
}
|
||||
for _, gcsym := range []*obj.LSym{&s.Func.GCArgs, &s.Func.GCLocals} {
|
||||
for _, gcsym := range []*obj.LSym{&s.Func.GCArgs, &s.Func.GCLocals, &s.Func.GCRegs} {
|
||||
if seen[gcsym.Name] {
|
||||
continue
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -6,7 +6,6 @@ package gc
|
|||
|
||||
import (
|
||||
"cmd/compile/internal/types"
|
||||
"cmd/internal/objabi"
|
||||
"cmd/internal/sys"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
|
@ -254,13 +253,21 @@ func walkrange(n *Node) *Node {
|
|||
break
|
||||
}
|
||||
|
||||
if objabi.Preemptibleloops_enabled != 0 {
|
||||
// Doing this transformation makes a bounds check removal less trivial; see #20711
|
||||
// TODO enhance the preemption check insertion so that this transformation is not necessary.
|
||||
ifGuard = nod(OIF, nil, nil)
|
||||
ifGuard.Left = nod(OLT, hv1, hn)
|
||||
translatedLoopOp = OFORUNTIL
|
||||
}
|
||||
// TODO(austin): OFORUNTIL is a strange beast, but is
|
||||
// necessary for expressing the control flow we need
|
||||
// while also making "break" and "continue" work. It
|
||||
// would be nice to just lower ORANGE during SSA, but
|
||||
// racewalk needs to see many of the operations
|
||||
// involved in ORANGE's implementation. If racewalk
|
||||
// moves into SSA, consider moving ORANGE into SSA and
|
||||
// eliminating OFORUNTIL.
|
||||
|
||||
// TODO(austin): OFORUNTIL inhibits bounds-check
|
||||
// elimination on the index variable (see #20711).
|
||||
// Enhance the prove pass to understand this.
|
||||
ifGuard = nod(OIF, nil, nil)
|
||||
ifGuard.Left = nod(OLT, hv1, hn)
|
||||
translatedLoopOp = OFORUNTIL
|
||||
|
||||
hp := temp(types.NewPtr(n.Type.Elem()))
|
||||
tmp := nod(OINDEX, ha, nodintconst(0))
|
||||
|
|
@ -274,14 +281,11 @@ func walkrange(n *Node) *Node {
|
|||
a.Rlist.Set2(hv1, nod(OIND, hp, nil))
|
||||
body = append(body, a)
|
||||
|
||||
// Advance pointer as part of increment.
|
||||
// We used to advance the pointer before executing the loop body,
|
||||
// but doing so would make the pointer point past the end of the
|
||||
// array during the final iteration, possibly causing another unrelated
|
||||
// piece of memory not to be garbage collected until the loop finished.
|
||||
// Advancing during the increment ensures that the pointer p only points
|
||||
// pass the end of the array during the final "p++; i++; if(i >= len(x)) break;",
|
||||
// after which p is dead, so it cannot confuse the collector.
|
||||
// Advance pointer as part of the late increment.
|
||||
//
|
||||
// This runs *after* the condition check, so we know
|
||||
// advancing the pointer is safe and won't go past the
|
||||
// end of the allocation.
|
||||
tmp = nod(OADD, hp, nodintconst(t.Elem().Width))
|
||||
|
||||
tmp.Type = hp.Type
|
||||
|
|
@ -290,7 +294,7 @@ func walkrange(n *Node) *Node {
|
|||
tmp.Right.SetTypecheck(1)
|
||||
a = nod(OAS, hp, tmp)
|
||||
a = typecheck(a, Etop)
|
||||
n.Right.Ninit.Set1(a)
|
||||
n.List.Set1(a)
|
||||
|
||||
case TMAP:
|
||||
// orderstmt allocated the iterator for us.
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ import (
|
|||
"cmd/compile/internal/ssa"
|
||||
"cmd/compile/internal/types"
|
||||
"cmd/internal/obj"
|
||||
"cmd/internal/objabi"
|
||||
"cmd/internal/src"
|
||||
"cmd/internal/sys"
|
||||
)
|
||||
|
|
@ -971,8 +970,10 @@ func (s *state) stmt(n *Node) {
|
|||
|
||||
case OFOR, OFORUNTIL:
|
||||
// OFOR: for Ninit; Left; Right { Nbody }
|
||||
// For = cond; body; incr
|
||||
// Foruntil = body; incr; cond
|
||||
// cond (Left); body (Nbody); incr (Right)
|
||||
//
|
||||
// OFORUNTIL: for Ninit; Left; Right; List { Nbody }
|
||||
// => body: { Nbody }; incr: Right; if Left { lateincr: List; goto body }; end:
|
||||
bCond := s.f.NewBlock(ssa.BlockPlain)
|
||||
bBody := s.f.NewBlock(ssa.BlockPlain)
|
||||
bIncr := s.f.NewBlock(ssa.BlockPlain)
|
||||
|
|
@ -1025,30 +1026,29 @@ func (s *state) stmt(n *Node) {
|
|||
b.AddEdgeTo(bIncr)
|
||||
}
|
||||
|
||||
// generate incr
|
||||
// generate incr (and, for OFORUNTIL, condition)
|
||||
s.startBlock(bIncr)
|
||||
if n.Right != nil {
|
||||
s.stmt(n.Right)
|
||||
}
|
||||
if b := s.endBlock(); b != nil {
|
||||
b.AddEdgeTo(bCond)
|
||||
// It can happen that bIncr ends in a block containing only VARKILL,
|
||||
// and that muddles the debugging experience.
|
||||
if n.Op != OFORUNTIL && b.Pos == src.NoXPos {
|
||||
b.Pos = bCond.Pos
|
||||
}
|
||||
}
|
||||
|
||||
if n.Op == OFORUNTIL {
|
||||
// generate code to test condition
|
||||
s.startBlock(bCond)
|
||||
if n.Left != nil {
|
||||
s.condBranch(n.Left, bBody, bEnd, 1)
|
||||
} else {
|
||||
b := s.endBlock()
|
||||
b.Kind = ssa.BlockPlain
|
||||
b.AddEdgeTo(bBody)
|
||||
if n.Op == OFOR {
|
||||
if b := s.endBlock(); b != nil {
|
||||
b.AddEdgeTo(bCond)
|
||||
// It can happen that bIncr ends in a block containing only VARKILL,
|
||||
// and that muddles the debugging experience.
|
||||
if n.Op != OFORUNTIL && b.Pos == src.NoXPos {
|
||||
b.Pos = bCond.Pos
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// bCond is unused in OFORUNTIL, so repurpose it.
|
||||
bLateIncr := bCond
|
||||
// test condition
|
||||
s.condBranch(n.Left, bLateIncr, bEnd, 1)
|
||||
// generate late increment
|
||||
s.startBlock(bLateIncr)
|
||||
s.stmtList(n.List)
|
||||
s.endBlock().AddEdgeTo(bBody)
|
||||
}
|
||||
|
||||
s.startBlock(bEnd)
|
||||
|
|
@ -4693,22 +4693,23 @@ type SSAGenState struct {
|
|||
|
||||
maxarg int64 // largest frame size for arguments to calls made by the function
|
||||
|
||||
// Map from GC safe points to stack map index, generated by
|
||||
// Map from GC safe points to liveness index, generated by
|
||||
// liveness analysis.
|
||||
stackMapIndex map[*ssa.Value]int
|
||||
livenessMap LivenessMap
|
||||
|
||||
// lineRunStart records the beginning of the current run of instructions
|
||||
// within a single block sharing the same line number
|
||||
// Used to move statement marks to the beginning of such runs.
|
||||
lineRunStart *obj.Prog
|
||||
|
||||
// wasm: The number of values on the WebAssembly stack. This is only used as a safeguard.
|
||||
OnWasmStackSkipped int
|
||||
}
|
||||
|
||||
// Prog appends a new Prog.
|
||||
func (s *SSAGenState) Prog(as obj.As) *obj.Prog {
|
||||
p := s.pp.Prog(as)
|
||||
switch as {
|
||||
case obj.APCDATA, obj.AFUNCDATA:
|
||||
// is_stmt does not work for these; it DOES for ANOP
|
||||
if ssa.LosesStmtMark(as) {
|
||||
return p
|
||||
}
|
||||
// Float a statement start to the beginning of any same-line run.
|
||||
|
|
@ -4773,7 +4774,7 @@ func genssa(f *ssa.Func, pp *Progs) {
|
|||
|
||||
e := f.Frontend().(*ssafn)
|
||||
|
||||
s.stackMapIndex = liveness(e, f)
|
||||
s.livenessMap = liveness(e, f)
|
||||
|
||||
// Remember where each block starts.
|
||||
s.bstart = make([]*obj.Prog, f.NumBlocks())
|
||||
|
|
@ -4819,12 +4820,17 @@ func genssa(f *ssa.Func, pp *Progs) {
|
|||
// Emit basic blocks
|
||||
for i, b := range f.Blocks {
|
||||
s.bstart[b.ID] = s.pp.next
|
||||
s.pp.nextLive = LivenessInvalid
|
||||
s.lineRunStart = nil
|
||||
|
||||
// Emit values in block
|
||||
thearch.SSAMarkMoves(&s, b)
|
||||
for _, v := range b.Values {
|
||||
x := s.pp.next
|
||||
s.DebugFriendlySetPosFrom(v)
|
||||
// Attach this safe point to the next
|
||||
// instruction.
|
||||
s.pp.nextLive = s.livenessMap.Get(v)
|
||||
switch v.Op {
|
||||
case ssa.OpInitMem:
|
||||
// memory arg needs no code
|
||||
|
|
@ -5271,13 +5277,15 @@ func (s *SSAGenState) Call(v *ssa.Value) *obj.Prog {
|
|||
// It must be called immediately before emitting the actual CALL instruction,
|
||||
// since it emits PCDATA for the stack map at the call (calls are safe points).
|
||||
func (s *SSAGenState) PrepareCall(v *ssa.Value) {
|
||||
idx, ok := s.stackMapIndex[v]
|
||||
if !ok {
|
||||
Fatalf("missing stack map index for %v", v.LongString())
|
||||
idx := s.livenessMap.Get(v)
|
||||
if !idx.Valid() {
|
||||
// typedmemclr and typedmemmove are write barriers and
|
||||
// deeply non-preemptible. They are unsafe points and
|
||||
// hence should not have liveness maps.
|
||||
if sym, _ := v.Aux.(*obj.LSym); !(sym == typedmemclr || sym == typedmemmove) {
|
||||
Fatalf("missing stack map index for %v", v.LongString())
|
||||
}
|
||||
}
|
||||
p := s.Prog(obj.APCDATA)
|
||||
Addrconst(&p.From, objabi.PCDATA_StackMapIndex)
|
||||
Addrconst(&p.To, int64(idx))
|
||||
|
||||
if sym, _ := v.Aux.(*obj.LSym); sym == Deferreturn {
|
||||
// Deferred calls will appear to be returning to
|
||||
|
|
|
|||
|
|
@ -700,16 +700,25 @@ const (
|
|||
OEMPTY // no-op (empty statement)
|
||||
OFALL // fallthrough
|
||||
OFOR // for Ninit; Left; Right { Nbody }
|
||||
OFORUNTIL // for Ninit; Left; Right { Nbody } ; test applied after executing body, not before
|
||||
OGOTO // goto Left
|
||||
OIF // if Ninit; Left { Nbody } else { Rlist }
|
||||
OLABEL // Left:
|
||||
OPROC // go Left (Left must be call)
|
||||
ORANGE // for List = range Right { Nbody }
|
||||
ORETURN // return List
|
||||
OSELECT // select { List } (List is list of OXCASE or OCASE)
|
||||
OSWITCH // switch Ninit; Left { List } (List is a list of OXCASE or OCASE)
|
||||
OTYPESW // Left = Right.(type) (appears as .Left of OSWITCH)
|
||||
// OFORUNTIL is like OFOR, but the test (Left) is applied after the body:
|
||||
// Ninit
|
||||
// top: { Nbody } // Execute the body at least once
|
||||
// cont: Right
|
||||
// if Left { // And then test the loop condition
|
||||
// List // Before looping to top, execute List
|
||||
// goto top
|
||||
// }
|
||||
// OFORUNTIL is created by walk. There's no way to write this in Go code.
|
||||
OFORUNTIL
|
||||
OGOTO // goto Left
|
||||
OIF // if Ninit; Left { Nbody } else { Rlist }
|
||||
OLABEL // Left:
|
||||
OPROC // go Left (Left must be call)
|
||||
ORANGE // for List = range Right { Nbody }
|
||||
ORETURN // return List
|
||||
OSELECT // select { List } (List is list of OXCASE or OCASE)
|
||||
OSWITCH // switch Ninit; Left { List } (List is a list of OXCASE or OCASE)
|
||||
OTYPESW // Left = Right.(type) (appears as .Left of OSWITCH)
|
||||
|
||||
// types
|
||||
OTCHAN // chan int
|
||||
|
|
|
|||
|
|
@ -2010,6 +2010,9 @@ func typecheck1(n *Node, top int) *Node {
|
|||
}
|
||||
}
|
||||
n.Right = typecheck(n.Right, Etop)
|
||||
if n.Op == OFORUNTIL {
|
||||
typecheckslice(n.List.Slice(), Etop)
|
||||
}
|
||||
typecheckslice(n.Nbody.Slice(), Etop)
|
||||
decldepth--
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ func walk(fn *Node) {
|
|||
Curfn = fn
|
||||
|
||||
if Debug['W'] != 0 {
|
||||
s := fmt.Sprintf("\nbefore %v", Curfn.Func.Nname.Sym)
|
||||
s := fmt.Sprintf("\nbefore walk %v", Curfn.Func.Nname.Sym)
|
||||
dumplist(s, Curfn.Nbody)
|
||||
}
|
||||
|
||||
|
|
@ -276,6 +276,9 @@ func walkstmt(n *Node) *Node {
|
|||
}
|
||||
|
||||
n.Right = walkstmt(n.Right)
|
||||
if n.Op == OFORUNTIL {
|
||||
walkstmtlist(n.List.Slice())
|
||||
}
|
||||
walkstmtlist(n.Nbody.Slice())
|
||||
|
||||
case OIF:
|
||||
|
|
@ -470,7 +473,7 @@ func walkexpr(n *Node, init *Nodes) *Node {
|
|||
lno := setlineno(n)
|
||||
|
||||
if Debug['w'] > 1 {
|
||||
Dump("walk-before", n)
|
||||
Dump("before walk expr", n)
|
||||
}
|
||||
|
||||
if n.Typecheck() != 1 {
|
||||
|
|
@ -1760,7 +1763,7 @@ opswitch:
|
|||
updateHasCall(n)
|
||||
|
||||
if Debug['w'] != 0 && n != nil {
|
||||
Dump("walk", n)
|
||||
Dump("after walk expr", n)
|
||||
}
|
||||
|
||||
lineno = lno
|
||||
|
|
@ -1833,10 +1836,7 @@ func ascompatee(op Op, nl, nr []*Node, init *Nodes) []*Node {
|
|||
return nn
|
||||
}
|
||||
|
||||
// l is an lv and rt is the type of an rv
|
||||
// return 1 if this implies a function call
|
||||
// evaluating the lv or a function call
|
||||
// in the conversion of the types
|
||||
// fncall reports whether assigning an rvalue of type rt to an lvalue l might involve a function call.
|
||||
func fncall(l *Node, rt *types.Type) bool {
|
||||
if l.HasCall() || l.Op == OINDEXMAP {
|
||||
return true
|
||||
|
|
@ -1844,6 +1844,7 @@ func fncall(l *Node, rt *types.Type) bool {
|
|||
if eqtype(l.Type, rt) {
|
||||
return false
|
||||
}
|
||||
// There might be a conversion required, which might involve a runtime call.
|
||||
return true
|
||||
}
|
||||
|
||||
|
|
@ -1862,9 +1863,8 @@ func ascompatet(nl Nodes, nr *types.Type) []*Node {
|
|||
}
|
||||
r := nr.Field(i)
|
||||
|
||||
// any lv that causes a fn call must be
|
||||
// deferred until all the return arguments
|
||||
// have been pulled from the output arguments
|
||||
// Any assignment to an lvalue that might cause a function call must be
|
||||
// deferred until all the returned values have been read.
|
||||
if fncall(l, r.Type) {
|
||||
tmp := temp(r.Type)
|
||||
tmp = typecheck(tmp, Erv)
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build !go1.9
|
||||
|
||||
package ssa
|
||||
|
||||
const deBruijn64 = 0x03f79d71b4ca8b09
|
||||
|
||||
var deBruijn64tab = [64]byte{
|
||||
0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4,
|
||||
62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5,
|
||||
63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11,
|
||||
54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6,
|
||||
}
|
||||
|
||||
// TrailingZeros64 returns the number of trailing zero bits in x; the result is 64 for x == 0.
|
||||
func TrailingZeros64(x uint64) int {
|
||||
if x == 0 {
|
||||
return 64
|
||||
}
|
||||
return int(deBruijn64tab[(x&-x)*deBruijn64>>(64-6)])
|
||||
}
|
||||
|
|
@ -28,6 +28,8 @@ type Cache struct {
|
|||
|
||||
ValueToProgAfter []*obj.Prog
|
||||
debugState debugState
|
||||
|
||||
Liveness interface{} // *gc.livenessFuncCache
|
||||
}
|
||||
|
||||
func (c *Cache) Reset() {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ type Config struct {
|
|||
gpRegMask regMask // general purpose integer register mask
|
||||
fpRegMask regMask // floating point register mask
|
||||
specialRegMask regMask // special register mask
|
||||
GCRegMap []*Register // garbage collector register map, by GC register index
|
||||
FPReg int8 // register number of frame pointer, -1 if not used
|
||||
LinkReg int8 // register number of link register if it is a general purpose register, -1 if not used
|
||||
hasGReg bool // has hardware g register
|
||||
|
|
@ -375,6 +376,21 @@ func NewConfig(arch string, types Types, ctxt *obj.Link, optimize bool) *Config
|
|||
c.sparsePhiCutoff = uint64(v) // convert -1 to maxint, for never use sparse
|
||||
}
|
||||
|
||||
// Create the GC register map index.
|
||||
// TODO: This is only used for debug printing. Maybe export config.registers?
|
||||
gcRegMapSize := int16(0)
|
||||
for _, r := range c.registers {
|
||||
if r.gcNum+1 > gcRegMapSize {
|
||||
gcRegMapSize = r.gcNum + 1
|
||||
}
|
||||
}
|
||||
c.GCRegMap = make([]*Register, gcRegMapSize)
|
||||
for i, r := range c.registers {
|
||||
if r.gcNum != -1 {
|
||||
c.GCRegMap[r.gcNum] = &c.registers[i]
|
||||
}
|
||||
}
|
||||
|
||||
return c
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import (
|
|||
"cmd/internal/obj"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"math/bits"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
|
@ -92,7 +93,7 @@ func (state *stateAtPC) reset(live []liveSlot) {
|
|||
if mask == 0 {
|
||||
break
|
||||
}
|
||||
reg := uint8(TrailingZeros64(mask))
|
||||
reg := uint8(bits.TrailingZeros64(mask))
|
||||
mask &^= 1 << reg
|
||||
|
||||
registers[reg] = append(registers[reg], live.slot)
|
||||
|
|
@ -116,7 +117,7 @@ func (s *debugState) LocString(loc VarLoc) string {
|
|||
if mask == 0 {
|
||||
break
|
||||
}
|
||||
reg := uint8(TrailingZeros64(mask))
|
||||
reg := uint8(bits.TrailingZeros64(mask))
|
||||
mask &^= 1 << reg
|
||||
|
||||
storage = append(storage, s.registers[reg].String())
|
||||
|
|
@ -152,14 +153,6 @@ var BlockEnd = &Value{
|
|||
// RegisterSet is a bitmap of registers, indexed by Register.num.
|
||||
type RegisterSet uint64
|
||||
|
||||
// unexpected is used to indicate an inconsistency or bug in the debug info
|
||||
// generation process. These are not fixable by users. At time of writing,
|
||||
// changing this to a Fprintf(os.Stderr) and running make.bash generates
|
||||
// thousands of warnings.
|
||||
func (s *debugState) unexpected(v *Value, msg string, args ...interface{}) {
|
||||
s.f.Logf("debug info generation: "+fmt.Sprint(v)+": "+msg, args...)
|
||||
}
|
||||
|
||||
func (s *debugState) logf(msg string, args ...interface{}) {
|
||||
s.f.Logf(msg, args...)
|
||||
}
|
||||
|
|
@ -343,6 +336,10 @@ func BuildFuncDebug(ctxt *obj.Link, f *Func, loggingEnabled bool, stackOffset fu
|
|||
state.stackOffset = stackOffset
|
||||
state.ctxt = ctxt
|
||||
|
||||
if state.loggingEnabled {
|
||||
state.logf("Generating location lists for function %q\n", f.Name)
|
||||
}
|
||||
|
||||
if state.varParts == nil {
|
||||
state.varParts = make(map[GCNode][]SlotID)
|
||||
} else {
|
||||
|
|
@ -472,12 +469,14 @@ func (state *debugState) liveness() []*BlockDebug {
|
|||
source = v.Args[0]
|
||||
case OpLoadReg:
|
||||
switch a := v.Args[0]; a.Op {
|
||||
case OpArg:
|
||||
case OpArg, OpPhi:
|
||||
source = a
|
||||
case OpStoreReg:
|
||||
source = a.Args[0]
|
||||
default:
|
||||
state.unexpected(v, "load with unexpected source op: %v (%v)\n", a.Op, a)
|
||||
if state.loggingEnabled {
|
||||
state.logf("at %v: load with unexpected source op: %v (%v)\n", v, a.Op, a)
|
||||
}
|
||||
}
|
||||
}
|
||||
// Update valueNames with the source so that later steps
|
||||
|
|
@ -613,7 +612,7 @@ func (state *debugState) mergePredecessors(b *Block, blockLocs []*BlockDebug) ([
|
|||
if mask == 0 {
|
||||
break
|
||||
}
|
||||
reg := uint8(TrailingZeros64(mask))
|
||||
reg := uint8(bits.TrailingZeros64(mask))
|
||||
mask &^= 1 << reg
|
||||
|
||||
state.currentState.registers[reg] = append(state.currentState.registers[reg], predSlot.slot)
|
||||
|
|
@ -643,12 +642,12 @@ func (state *debugState) processValue(v *Value, vSlots []SlotID, vReg *Register)
|
|||
if clobbers == 0 {
|
||||
break
|
||||
}
|
||||
reg := uint8(TrailingZeros64(clobbers))
|
||||
reg := uint8(bits.TrailingZeros64(clobbers))
|
||||
clobbers &^= 1 << reg
|
||||
|
||||
for _, slot := range locs.registers[reg] {
|
||||
if state.loggingEnabled {
|
||||
state.logf("at %v: %v clobbered out of %v\n", v.ID, state.slots[slot], &state.registers[reg])
|
||||
state.logf("at %v: %v clobbered out of %v\n", v, state.slots[slot], &state.registers[reg])
|
||||
}
|
||||
|
||||
last := locs.slots[slot]
|
||||
|
|
@ -678,9 +677,9 @@ func (state *debugState) processValue(v *Value, vSlots []SlotID, vReg *Register)
|
|||
setSlot(slotID, VarLoc{0, stackOffset})
|
||||
if state.loggingEnabled {
|
||||
if v.Op == OpVarDef {
|
||||
state.logf("at %v: stack-only var %v now live\n", v.ID, state.slots[slotID])
|
||||
state.logf("at %v: stack-only var %v now live\n", v, state.slots[slotID])
|
||||
} else {
|
||||
state.logf("at %v: stack-only var %v now dead\n", v.ID, state.slots[slotID])
|
||||
state.logf("at %v: stack-only var %v now dead\n", v, state.slots[slotID])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -689,9 +688,9 @@ func (state *debugState) processValue(v *Value, vSlots []SlotID, vReg *Register)
|
|||
stackOffset := state.stackOffset(home)<<1 | 1
|
||||
for _, slot := range vSlots {
|
||||
if state.loggingEnabled {
|
||||
state.logf("at %v: arg %v now on stack in location %v\n", v.ID, state.slots[slot], home)
|
||||
state.logf("at %v: arg %v now on stack in location %v\n", v, state.slots[slot], home)
|
||||
if last := locs.slots[slot]; !last.absent() {
|
||||
state.unexpected(v, "Arg op on already-live slot %v", state.slots[slot])
|
||||
state.logf("at %v: unexpected arg op on already-live slot %v\n", v, state.slots[slot])
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -704,13 +703,15 @@ func (state *debugState) processValue(v *Value, vSlots []SlotID, vReg *Register)
|
|||
for _, slot := range vSlots {
|
||||
last := locs.slots[slot]
|
||||
if last.absent() {
|
||||
state.unexpected(v, "spill of unnamed register %s\n", vReg)
|
||||
if state.loggingEnabled {
|
||||
state.logf("at %v: unexpected spill of unnamed register %s\n", v, vReg)
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
setSlot(slot, VarLoc{last.Registers, StackOffset(stackOffset)})
|
||||
if state.loggingEnabled {
|
||||
state.logf("at %v: %v spilled to stack location %v\n", v.ID, state.slots[slot], home)
|
||||
state.logf("at %v: %v spilled to stack location %v\n", v, state.slots[slot], home)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -736,7 +737,7 @@ func (state *debugState) processValue(v *Value, vSlots []SlotID, vReg *Register)
|
|||
locs.registers[vReg.num] = append(locs.registers[vReg.num], vSlots...)
|
||||
for _, slot := range vSlots {
|
||||
if state.loggingEnabled {
|
||||
state.logf("at %v: %v now in %s\n", v.ID, state.slots[slot], vReg)
|
||||
state.logf("at %v: %v now in %s\n", v, state.slots[slot], vReg)
|
||||
}
|
||||
|
||||
last := locs.slots[slot]
|
||||
|
|
@ -812,7 +813,7 @@ func firstReg(set RegisterSet) uint8 {
|
|||
// produce locations with no storage.
|
||||
return 0
|
||||
}
|
||||
return uint8(TrailingZeros64(uint64(set)))
|
||||
return uint8(bits.TrailingZeros64(uint64(set)))
|
||||
}
|
||||
|
||||
// buildLocationLists builds location lists for all the user variables in
|
||||
|
|
@ -864,12 +865,12 @@ func (state *debugState) buildLocationLists(blockLocs []*BlockDebug) {
|
|||
for varID := range state.lists {
|
||||
state.writePendingEntry(VarID(varID), state.f.Blocks[len(state.f.Blocks)-1].ID, BlockEnd.ID)
|
||||
list := state.lists[varID]
|
||||
if len(list) == 0 {
|
||||
state.logf("\t%v : empty list\n", state.vars[varID])
|
||||
}
|
||||
|
||||
if state.loggingEnabled {
|
||||
state.logf("\t%v : %q\n", state.vars[varID], hex.EncodeToString(state.lists[varID]))
|
||||
if len(list) == 0 {
|
||||
state.logf("\t%v : empty list\n", state.vars[varID])
|
||||
} else {
|
||||
state.logf("\t%v : %q\n", state.vars[varID], hex.EncodeToString(state.lists[varID]))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,6 +53,12 @@ type Func struct {
|
|||
// of keys to make iteration order deterministic.
|
||||
Names []LocalSlot
|
||||
|
||||
// WBLoads is a list of Blocks that branch on the write
|
||||
// barrier flag. Safe-points are disabled from the OpLoad that
|
||||
// reads the write-barrier flag until the control flow rejoins
|
||||
// below the two successors of this block.
|
||||
WBLoads []*Block
|
||||
|
||||
freeValues *Value // free Values linked by argstorage[0]. All other fields except ID are 0/nil.
|
||||
freeBlocks *Block // free Blocks linked by succstorage[0].b. All other fields except ID are 0/nil.
|
||||
|
||||
|
|
|
|||
|
|
@ -155,21 +155,21 @@ func fuseBlockPlain(b *Block) bool {
|
|||
// debugging information depends on the order of *Values in Blocks.
|
||||
// This can also cause changes in the order (which may affect other
|
||||
// optimizations and possibly compiler output) for 32-vs-64 bit compilation
|
||||
// platforms (word size affects allocation bucket size affects slice size).
|
||||
// platforms (word size affects allocation bucket size affects slice capacity).
|
||||
if cap(c.Values) >= cap(b.Values) || len(b.Values) <= len(b.valstorage) {
|
||||
bl := len(b.Values)
|
||||
cl := len(c.Values)
|
||||
var t []*Value // construct t = b.Values followed-by c.Values, but with attention to allocation.
|
||||
if cap(c.Values) < bl+cl {
|
||||
// reallocate
|
||||
t := make([]*Value, 0, bl+cl)
|
||||
t = append(t, b.Values...)
|
||||
c.Values = append(t, c.Values...)
|
||||
t = make([]*Value, bl+cl)
|
||||
} else {
|
||||
// in place.
|
||||
c.Values = c.Values[0 : bl+cl]
|
||||
copy(c.Values[bl:], c.Values)
|
||||
copy(c.Values, b.Values)
|
||||
t = c.Values[0 : bl+cl]
|
||||
}
|
||||
copy(t[bl:], c.Values) // possibly in-place
|
||||
c.Values = t
|
||||
copy(c.Values, b.Values)
|
||||
} else {
|
||||
c.Values = append(b.Values, c.Values...)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,10 +50,16 @@
|
|||
(OffPtr [off] ptr) && off > 0 -> (I64AddConst [off] ptr)
|
||||
|
||||
// Lowering extension
|
||||
// It is unnecessary to extend loads
|
||||
(SignExt32to64 x:(I64Load32S _ _)) -> x
|
||||
(SignExt16to(64|32) x:(I64Load16S _ _)) -> x
|
||||
(SignExt8to(64|32|16) x:(I64Load8S _ _)) -> x
|
||||
(ZeroExt32to64 x:(I64Load32U _ _)) -> x
|
||||
(ZeroExt16to(64|32) x:(I64Load16U _ _)) -> x
|
||||
(ZeroExt8to(64|32|16) x:(I64Load8U _ _)) -> x
|
||||
(SignExt32to64 x) -> (I64ShrS (I64Shl x (I64Const [32])) (I64Const [32]))
|
||||
(SignExt16to(64|32) x) -> (I64ShrS (I64Shl x (I64Const [48])) (I64Const [48]))
|
||||
(SignExt8to(64|32|16) x) -> (I64ShrS (I64Shl x (I64Const [56])) (I64Const [56]))
|
||||
|
||||
(ZeroExt32to64 x) -> (I64ShrU (I64Shl x (I64Const [32])) (I64Const [32]))
|
||||
(ZeroExt16to(64|32) x) -> (I64ShrU (I64Shl x (I64Const [48])) (I64Const [48]))
|
||||
(ZeroExt8to(64|32|16) x) -> (I64ShrU (I64Shl x (I64Const [56])) (I64Const [56]))
|
||||
|
|
@ -364,6 +370,10 @@
|
|||
(I64Ne (I64Const [x]) (I64Const [y])) && x == y -> (I64Const [0])
|
||||
(I64Ne (I64Const [x]) (I64Const [y])) && x != y -> (I64Const [1])
|
||||
|
||||
(I64Shl (I64Const [x]) (I64Const [y])) -> (I64Const [x << uint64(y)])
|
||||
(I64ShrU (I64Const [x]) (I64Const [y])) -> (I64Const [int64(uint64(x) >> uint64(y))])
|
||||
(I64ShrS (I64Const [x]) (I64Const [y])) -> (I64Const [x >> uint64(y)])
|
||||
|
||||
(I64Add (I64Const [x]) y) -> (I64Add y (I64Const [x]))
|
||||
(I64Mul (I64Const [x]) y) -> (I64Mul y (I64Const [x]))
|
||||
(I64And (I64Const [x]) y) -> (I64And y (I64Const [x]))
|
||||
|
|
@ -374,6 +384,9 @@
|
|||
(I64Eq (I64Const [x]) y) -> (I64Eq y (I64Const [x]))
|
||||
(I64Ne (I64Const [x]) y) -> (I64Ne y (I64Const [x]))
|
||||
|
||||
(I64Eq x (I64Const [0])) -> (I64Eqz x)
|
||||
(I64Ne x (I64Const [0])) -> (I64Eqz (I64Eqz x))
|
||||
|
||||
(I64Add x (I64Const [y])) -> (I64AddConst [y] x)
|
||||
(I64Eqz (I64Eqz (I64Eqz x))) -> (I64Eqz x)
|
||||
|
||||
|
|
|
|||
|
|
@ -301,6 +301,7 @@ func genOp() {
|
|||
continue
|
||||
}
|
||||
fmt.Fprintf(w, "var registers%s = [...]Register {\n", a.name)
|
||||
var gcRegN int
|
||||
for i, r := range a.regnames {
|
||||
pkg := a.pkg[len("cmd/internal/obj/"):]
|
||||
var objname string // name in cmd/internal/obj/$ARCH
|
||||
|
|
@ -315,7 +316,18 @@ func genOp() {
|
|||
default:
|
||||
objname = pkg + ".REG_" + r
|
||||
}
|
||||
fmt.Fprintf(w, " {%d, %s, \"%s\"},\n", i, objname, r)
|
||||
// Assign a GC register map index to registers
|
||||
// that may contain pointers.
|
||||
gcRegIdx := -1
|
||||
if a.gpregmask&(1<<uint(i)) != 0 {
|
||||
gcRegIdx = gcRegN
|
||||
gcRegN++
|
||||
}
|
||||
fmt.Fprintf(w, " {%d, %s, %d, \"%s\"},\n", i, objname, gcRegIdx, r)
|
||||
}
|
||||
if gcRegN > 32 {
|
||||
// Won't fit in a uint32 mask.
|
||||
log.Fatalf("too many GC registers (%d > 32) on %s", gcRegN, a.name)
|
||||
}
|
||||
fmt.Fprintln(w, "}")
|
||||
fmt.Fprintf(w, "var gpRegMask%s = regMask(%d)\n", a.name, a.gpregmask)
|
||||
|
|
|
|||
|
|
@ -548,7 +548,7 @@ func genResult0(w io.Writer, arch arch, result string, alloc *int, top, move boo
|
|||
}
|
||||
} else {
|
||||
if typ == "" {
|
||||
log.Fatalf("sub-expression %s (op=Op%s%s) must have a type", result, oparch, op.name)
|
||||
log.Fatalf("sub-expression %s (op=Op%s%s) at %s must have a type", result, oparch, op.name, loc)
|
||||
}
|
||||
v = fmt.Sprintf("v%d", *alloc)
|
||||
*alloc++
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ type Location interface {
|
|||
type Register struct {
|
||||
num int32 // dense numbering
|
||||
objNum int16 // register number from cmd/internal/obj/$ARCH
|
||||
gcNum int16 // GC register map number (dense numbering of registers that can contain pointers)
|
||||
name string
|
||||
}
|
||||
|
||||
|
|
@ -32,6 +33,12 @@ func (r *Register) ObjNum() int16 {
|
|||
return r.objNum
|
||||
}
|
||||
|
||||
// GCNum returns the runtime GC register index of r, or -1 if this
|
||||
// register can't contain pointers.
|
||||
func (r *Register) GCNum() int16 {
|
||||
return r.gcNum
|
||||
}
|
||||
|
||||
// A LocalSlot is a location in the stack frame, which identifies and stores
|
||||
// part or all of a PPARAM, PPARAMOUT, or PAUTO ONAME node.
|
||||
// It can represent a whole variable, part of a larger stack slot, or part of a
|
||||
|
|
|
|||
|
|
@ -165,30 +165,7 @@ nextb:
|
|||
}
|
||||
|
||||
if f.pass.debug >= 1 {
|
||||
mb1, mb2 := "[", "]"
|
||||
if flags&indVarMinExc != 0 {
|
||||
mb1 = "("
|
||||
}
|
||||
if flags&indVarMaxInc == 0 {
|
||||
mb2 = ")"
|
||||
}
|
||||
|
||||
mlim1, mlim2 := fmt.Sprint(min.AuxInt), fmt.Sprint(max.AuxInt)
|
||||
if !min.isGenericIntConst() {
|
||||
if f.pass.debug >= 2 {
|
||||
mlim1 = fmt.Sprint(min)
|
||||
} else {
|
||||
mlim1 = "?"
|
||||
}
|
||||
}
|
||||
if !max.isGenericIntConst() {
|
||||
if f.pass.debug >= 2 {
|
||||
mlim2 = fmt.Sprint(max)
|
||||
} else {
|
||||
mlim2 = "?"
|
||||
}
|
||||
}
|
||||
b.Func.Warnl(b.Pos, "Induction variable: limits %v%v,%v%v, increment %d", mb1, mlim1, mlim2, mb2, inc.AuxInt)
|
||||
printIndVar(b, ind, min, max, inc.AuxInt, flags)
|
||||
}
|
||||
|
||||
iv = append(iv, indVar{
|
||||
|
|
@ -215,3 +192,34 @@ func dropAdd64(v *Value) (*Value, int64) {
|
|||
}
|
||||
return v, 0
|
||||
}
|
||||
|
||||
func printIndVar(b *Block, i, min, max *Value, inc int64, flags indVarFlags) {
|
||||
mb1, mb2 := "[", "]"
|
||||
if flags&indVarMinExc != 0 {
|
||||
mb1 = "("
|
||||
}
|
||||
if flags&indVarMaxInc == 0 {
|
||||
mb2 = ")"
|
||||
}
|
||||
|
||||
mlim1, mlim2 := fmt.Sprint(min.AuxInt), fmt.Sprint(max.AuxInt)
|
||||
if !min.isGenericIntConst() {
|
||||
if b.Func.pass.debug >= 2 {
|
||||
mlim1 = fmt.Sprint(min)
|
||||
} else {
|
||||
mlim1 = "?"
|
||||
}
|
||||
}
|
||||
if !max.isGenericIntConst() {
|
||||
if b.Func.pass.debug >= 2 {
|
||||
mlim2 = fmt.Sprint(max)
|
||||
} else {
|
||||
mlim2 = "?"
|
||||
}
|
||||
}
|
||||
extra := ""
|
||||
if b.Func.pass.debug >= 2 {
|
||||
extra = fmt.Sprintf(" (%s)", i)
|
||||
}
|
||||
b.Func.Warnl(b.Pos, "Induction variable: limits %v%v,%v%v, increment %d%s", mb1, mlim1, mlim2, mb2, inc, extra)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
package ssa
|
||||
|
||||
import (
|
||||
"cmd/internal/obj"
|
||||
"cmd/internal/src"
|
||||
"math"
|
||||
)
|
||||
|
|
@ -19,6 +20,15 @@ func isPoorStatementOp(op Op) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// LosesStmtMark returns whether a prog with op as loses its statement mark on the way to DWARF.
|
||||
// The attributes from some opcodes are lost in translation.
|
||||
// TODO: this is an artifact of how funcpctab combines information for instructions at a single PC.
|
||||
// Should try to fix it there.
|
||||
func LosesStmtMark(as obj.As) bool {
|
||||
// is_stmt does not work for these; it DOES for ANOP even though that generates no code.
|
||||
return as == obj.APCDATA || as == obj.AFUNCDATA
|
||||
}
|
||||
|
||||
// nextGoodStatementIndex returns an index at i or later that is believed
|
||||
// to be a good place to start the statement for b. This decision is
|
||||
// based on v's Op, the possibility of a better later operation, and
|
||||
|
|
|
|||
|
|
@ -27831,23 +27831,23 @@ func (o Op) SymEffect() SymEffect { return opcodeTable[o].symEffect }
|
|||
func (o Op) IsCall() bool { return opcodeTable[o].call }
|
||||
|
||||
var registers386 = [...]Register{
|
||||
{0, x86.REG_AX, "AX"},
|
||||
{1, x86.REG_CX, "CX"},
|
||||
{2, x86.REG_DX, "DX"},
|
||||
{3, x86.REG_BX, "BX"},
|
||||
{4, x86.REGSP, "SP"},
|
||||
{5, x86.REG_BP, "BP"},
|
||||
{6, x86.REG_SI, "SI"},
|
||||
{7, x86.REG_DI, "DI"},
|
||||
{8, x86.REG_X0, "X0"},
|
||||
{9, x86.REG_X1, "X1"},
|
||||
{10, x86.REG_X2, "X2"},
|
||||
{11, x86.REG_X3, "X3"},
|
||||
{12, x86.REG_X4, "X4"},
|
||||
{13, x86.REG_X5, "X5"},
|
||||
{14, x86.REG_X6, "X6"},
|
||||
{15, x86.REG_X7, "X7"},
|
||||
{16, 0, "SB"},
|
||||
{0, x86.REG_AX, 0, "AX"},
|
||||
{1, x86.REG_CX, 1, "CX"},
|
||||
{2, x86.REG_DX, 2, "DX"},
|
||||
{3, x86.REG_BX, 3, "BX"},
|
||||
{4, x86.REGSP, -1, "SP"},
|
||||
{5, x86.REG_BP, 4, "BP"},
|
||||
{6, x86.REG_SI, 5, "SI"},
|
||||
{7, x86.REG_DI, 6, "DI"},
|
||||
{8, x86.REG_X0, -1, "X0"},
|
||||
{9, x86.REG_X1, -1, "X1"},
|
||||
{10, x86.REG_X2, -1, "X2"},
|
||||
{11, x86.REG_X3, -1, "X3"},
|
||||
{12, x86.REG_X4, -1, "X4"},
|
||||
{13, x86.REG_X5, -1, "X5"},
|
||||
{14, x86.REG_X6, -1, "X6"},
|
||||
{15, x86.REG_X7, -1, "X7"},
|
||||
{16, 0, -1, "SB"},
|
||||
}
|
||||
var gpRegMask386 = regMask(239)
|
||||
var fpRegMask386 = regMask(65280)
|
||||
|
|
@ -27855,39 +27855,39 @@ var specialRegMask386 = regMask(0)
|
|||
var framepointerReg386 = int8(5)
|
||||
var linkReg386 = int8(-1)
|
||||
var registersAMD64 = [...]Register{
|
||||
{0, x86.REG_AX, "AX"},
|
||||
{1, x86.REG_CX, "CX"},
|
||||
{2, x86.REG_DX, "DX"},
|
||||
{3, x86.REG_BX, "BX"},
|
||||
{4, x86.REGSP, "SP"},
|
||||
{5, x86.REG_BP, "BP"},
|
||||
{6, x86.REG_SI, "SI"},
|
||||
{7, x86.REG_DI, "DI"},
|
||||
{8, x86.REG_R8, "R8"},
|
||||
{9, x86.REG_R9, "R9"},
|
||||
{10, x86.REG_R10, "R10"},
|
||||
{11, x86.REG_R11, "R11"},
|
||||
{12, x86.REG_R12, "R12"},
|
||||
{13, x86.REG_R13, "R13"},
|
||||
{14, x86.REG_R14, "R14"},
|
||||
{15, x86.REG_R15, "R15"},
|
||||
{16, x86.REG_X0, "X0"},
|
||||
{17, x86.REG_X1, "X1"},
|
||||
{18, x86.REG_X2, "X2"},
|
||||
{19, x86.REG_X3, "X3"},
|
||||
{20, x86.REG_X4, "X4"},
|
||||
{21, x86.REG_X5, "X5"},
|
||||
{22, x86.REG_X6, "X6"},
|
||||
{23, x86.REG_X7, "X7"},
|
||||
{24, x86.REG_X8, "X8"},
|
||||
{25, x86.REG_X9, "X9"},
|
||||
{26, x86.REG_X10, "X10"},
|
||||
{27, x86.REG_X11, "X11"},
|
||||
{28, x86.REG_X12, "X12"},
|
||||
{29, x86.REG_X13, "X13"},
|
||||
{30, x86.REG_X14, "X14"},
|
||||
{31, x86.REG_X15, "X15"},
|
||||
{32, 0, "SB"},
|
||||
{0, x86.REG_AX, 0, "AX"},
|
||||
{1, x86.REG_CX, 1, "CX"},
|
||||
{2, x86.REG_DX, 2, "DX"},
|
||||
{3, x86.REG_BX, 3, "BX"},
|
||||
{4, x86.REGSP, -1, "SP"},
|
||||
{5, x86.REG_BP, 4, "BP"},
|
||||
{6, x86.REG_SI, 5, "SI"},
|
||||
{7, x86.REG_DI, 6, "DI"},
|
||||
{8, x86.REG_R8, 7, "R8"},
|
||||
{9, x86.REG_R9, 8, "R9"},
|
||||
{10, x86.REG_R10, 9, "R10"},
|
||||
{11, x86.REG_R11, 10, "R11"},
|
||||
{12, x86.REG_R12, 11, "R12"},
|
||||
{13, x86.REG_R13, 12, "R13"},
|
||||
{14, x86.REG_R14, 13, "R14"},
|
||||
{15, x86.REG_R15, 14, "R15"},
|
||||
{16, x86.REG_X0, -1, "X0"},
|
||||
{17, x86.REG_X1, -1, "X1"},
|
||||
{18, x86.REG_X2, -1, "X2"},
|
||||
{19, x86.REG_X3, -1, "X3"},
|
||||
{20, x86.REG_X4, -1, "X4"},
|
||||
{21, x86.REG_X5, -1, "X5"},
|
||||
{22, x86.REG_X6, -1, "X6"},
|
||||
{23, x86.REG_X7, -1, "X7"},
|
||||
{24, x86.REG_X8, -1, "X8"},
|
||||
{25, x86.REG_X9, -1, "X9"},
|
||||
{26, x86.REG_X10, -1, "X10"},
|
||||
{27, x86.REG_X11, -1, "X11"},
|
||||
{28, x86.REG_X12, -1, "X12"},
|
||||
{29, x86.REG_X13, -1, "X13"},
|
||||
{30, x86.REG_X14, -1, "X14"},
|
||||
{31, x86.REG_X15, -1, "X15"},
|
||||
{32, 0, -1, "SB"},
|
||||
}
|
||||
var gpRegMaskAMD64 = regMask(65519)
|
||||
var fpRegMaskAMD64 = regMask(4294901760)
|
||||
|
|
@ -27895,39 +27895,39 @@ var specialRegMaskAMD64 = regMask(0)
|
|||
var framepointerRegAMD64 = int8(5)
|
||||
var linkRegAMD64 = int8(-1)
|
||||
var registersARM = [...]Register{
|
||||
{0, arm.REG_R0, "R0"},
|
||||
{1, arm.REG_R1, "R1"},
|
||||
{2, arm.REG_R2, "R2"},
|
||||
{3, arm.REG_R3, "R3"},
|
||||
{4, arm.REG_R4, "R4"},
|
||||
{5, arm.REG_R5, "R5"},
|
||||
{6, arm.REG_R6, "R6"},
|
||||
{7, arm.REG_R7, "R7"},
|
||||
{8, arm.REG_R8, "R8"},
|
||||
{9, arm.REG_R9, "R9"},
|
||||
{10, arm.REGG, "g"},
|
||||
{11, arm.REG_R11, "R11"},
|
||||
{12, arm.REG_R12, "R12"},
|
||||
{13, arm.REGSP, "SP"},
|
||||
{14, arm.REG_R14, "R14"},
|
||||
{15, arm.REG_R15, "R15"},
|
||||
{16, arm.REG_F0, "F0"},
|
||||
{17, arm.REG_F1, "F1"},
|
||||
{18, arm.REG_F2, "F2"},
|
||||
{19, arm.REG_F3, "F3"},
|
||||
{20, arm.REG_F4, "F4"},
|
||||
{21, arm.REG_F5, "F5"},
|
||||
{22, arm.REG_F6, "F6"},
|
||||
{23, arm.REG_F7, "F7"},
|
||||
{24, arm.REG_F8, "F8"},
|
||||
{25, arm.REG_F9, "F9"},
|
||||
{26, arm.REG_F10, "F10"},
|
||||
{27, arm.REG_F11, "F11"},
|
||||
{28, arm.REG_F12, "F12"},
|
||||
{29, arm.REG_F13, "F13"},
|
||||
{30, arm.REG_F14, "F14"},
|
||||
{31, arm.REG_F15, "F15"},
|
||||
{32, 0, "SB"},
|
||||
{0, arm.REG_R0, 0, "R0"},
|
||||
{1, arm.REG_R1, 1, "R1"},
|
||||
{2, arm.REG_R2, 2, "R2"},
|
||||
{3, arm.REG_R3, 3, "R3"},
|
||||
{4, arm.REG_R4, 4, "R4"},
|
||||
{5, arm.REG_R5, 5, "R5"},
|
||||
{6, arm.REG_R6, 6, "R6"},
|
||||
{7, arm.REG_R7, 7, "R7"},
|
||||
{8, arm.REG_R8, 8, "R8"},
|
||||
{9, arm.REG_R9, 9, "R9"},
|
||||
{10, arm.REGG, -1, "g"},
|
||||
{11, arm.REG_R11, -1, "R11"},
|
||||
{12, arm.REG_R12, 10, "R12"},
|
||||
{13, arm.REGSP, -1, "SP"},
|
||||
{14, arm.REG_R14, 11, "R14"},
|
||||
{15, arm.REG_R15, -1, "R15"},
|
||||
{16, arm.REG_F0, -1, "F0"},
|
||||
{17, arm.REG_F1, -1, "F1"},
|
||||
{18, arm.REG_F2, -1, "F2"},
|
||||
{19, arm.REG_F3, -1, "F3"},
|
||||
{20, arm.REG_F4, -1, "F4"},
|
||||
{21, arm.REG_F5, -1, "F5"},
|
||||
{22, arm.REG_F6, -1, "F6"},
|
||||
{23, arm.REG_F7, -1, "F7"},
|
||||
{24, arm.REG_F8, -1, "F8"},
|
||||
{25, arm.REG_F9, -1, "F9"},
|
||||
{26, arm.REG_F10, -1, "F10"},
|
||||
{27, arm.REG_F11, -1, "F11"},
|
||||
{28, arm.REG_F12, -1, "F12"},
|
||||
{29, arm.REG_F13, -1, "F13"},
|
||||
{30, arm.REG_F14, -1, "F14"},
|
||||
{31, arm.REG_F15, -1, "F15"},
|
||||
{32, 0, -1, "SB"},
|
||||
}
|
||||
var gpRegMaskARM = regMask(21503)
|
||||
var fpRegMaskARM = regMask(4294901760)
|
||||
|
|
@ -27935,70 +27935,70 @@ var specialRegMaskARM = regMask(0)
|
|||
var framepointerRegARM = int8(-1)
|
||||
var linkRegARM = int8(14)
|
||||
var registersARM64 = [...]Register{
|
||||
{0, arm64.REG_R0, "R0"},
|
||||
{1, arm64.REG_R1, "R1"},
|
||||
{2, arm64.REG_R2, "R2"},
|
||||
{3, arm64.REG_R3, "R3"},
|
||||
{4, arm64.REG_R4, "R4"},
|
||||
{5, arm64.REG_R5, "R5"},
|
||||
{6, arm64.REG_R6, "R6"},
|
||||
{7, arm64.REG_R7, "R7"},
|
||||
{8, arm64.REG_R8, "R8"},
|
||||
{9, arm64.REG_R9, "R9"},
|
||||
{10, arm64.REG_R10, "R10"},
|
||||
{11, arm64.REG_R11, "R11"},
|
||||
{12, arm64.REG_R12, "R12"},
|
||||
{13, arm64.REG_R13, "R13"},
|
||||
{14, arm64.REG_R14, "R14"},
|
||||
{15, arm64.REG_R15, "R15"},
|
||||
{16, arm64.REG_R16, "R16"},
|
||||
{17, arm64.REG_R17, "R17"},
|
||||
{18, arm64.REG_R18, "R18"},
|
||||
{19, arm64.REG_R19, "R19"},
|
||||
{20, arm64.REG_R20, "R20"},
|
||||
{21, arm64.REG_R21, "R21"},
|
||||
{22, arm64.REG_R22, "R22"},
|
||||
{23, arm64.REG_R23, "R23"},
|
||||
{24, arm64.REG_R24, "R24"},
|
||||
{25, arm64.REG_R25, "R25"},
|
||||
{26, arm64.REG_R26, "R26"},
|
||||
{27, arm64.REGG, "g"},
|
||||
{28, arm64.REG_R29, "R29"},
|
||||
{29, arm64.REG_R30, "R30"},
|
||||
{30, arm64.REGSP, "SP"},
|
||||
{31, arm64.REG_F0, "F0"},
|
||||
{32, arm64.REG_F1, "F1"},
|
||||
{33, arm64.REG_F2, "F2"},
|
||||
{34, arm64.REG_F3, "F3"},
|
||||
{35, arm64.REG_F4, "F4"},
|
||||
{36, arm64.REG_F5, "F5"},
|
||||
{37, arm64.REG_F6, "F6"},
|
||||
{38, arm64.REG_F7, "F7"},
|
||||
{39, arm64.REG_F8, "F8"},
|
||||
{40, arm64.REG_F9, "F9"},
|
||||
{41, arm64.REG_F10, "F10"},
|
||||
{42, arm64.REG_F11, "F11"},
|
||||
{43, arm64.REG_F12, "F12"},
|
||||
{44, arm64.REG_F13, "F13"},
|
||||
{45, arm64.REG_F14, "F14"},
|
||||
{46, arm64.REG_F15, "F15"},
|
||||
{47, arm64.REG_F16, "F16"},
|
||||
{48, arm64.REG_F17, "F17"},
|
||||
{49, arm64.REG_F18, "F18"},
|
||||
{50, arm64.REG_F19, "F19"},
|
||||
{51, arm64.REG_F20, "F20"},
|
||||
{52, arm64.REG_F21, "F21"},
|
||||
{53, arm64.REG_F22, "F22"},
|
||||
{54, arm64.REG_F23, "F23"},
|
||||
{55, arm64.REG_F24, "F24"},
|
||||
{56, arm64.REG_F25, "F25"},
|
||||
{57, arm64.REG_F26, "F26"},
|
||||
{58, arm64.REG_F27, "F27"},
|
||||
{59, arm64.REG_F28, "F28"},
|
||||
{60, arm64.REG_F29, "F29"},
|
||||
{61, arm64.REG_F30, "F30"},
|
||||
{62, arm64.REG_F31, "F31"},
|
||||
{63, 0, "SB"},
|
||||
{0, arm64.REG_R0, 0, "R0"},
|
||||
{1, arm64.REG_R1, 1, "R1"},
|
||||
{2, arm64.REG_R2, 2, "R2"},
|
||||
{3, arm64.REG_R3, 3, "R3"},
|
||||
{4, arm64.REG_R4, 4, "R4"},
|
||||
{5, arm64.REG_R5, 5, "R5"},
|
||||
{6, arm64.REG_R6, 6, "R6"},
|
||||
{7, arm64.REG_R7, 7, "R7"},
|
||||
{8, arm64.REG_R8, 8, "R8"},
|
||||
{9, arm64.REG_R9, 9, "R9"},
|
||||
{10, arm64.REG_R10, 10, "R10"},
|
||||
{11, arm64.REG_R11, 11, "R11"},
|
||||
{12, arm64.REG_R12, 12, "R12"},
|
||||
{13, arm64.REG_R13, 13, "R13"},
|
||||
{14, arm64.REG_R14, 14, "R14"},
|
||||
{15, arm64.REG_R15, 15, "R15"},
|
||||
{16, arm64.REG_R16, 16, "R16"},
|
||||
{17, arm64.REG_R17, 17, "R17"},
|
||||
{18, arm64.REG_R18, -1, "R18"},
|
||||
{19, arm64.REG_R19, 18, "R19"},
|
||||
{20, arm64.REG_R20, 19, "R20"},
|
||||
{21, arm64.REG_R21, 20, "R21"},
|
||||
{22, arm64.REG_R22, 21, "R22"},
|
||||
{23, arm64.REG_R23, 22, "R23"},
|
||||
{24, arm64.REG_R24, 23, "R24"},
|
||||
{25, arm64.REG_R25, 24, "R25"},
|
||||
{26, arm64.REG_R26, 25, "R26"},
|
||||
{27, arm64.REGG, -1, "g"},
|
||||
{28, arm64.REG_R29, -1, "R29"},
|
||||
{29, arm64.REG_R30, 26, "R30"},
|
||||
{30, arm64.REGSP, -1, "SP"},
|
||||
{31, arm64.REG_F0, -1, "F0"},
|
||||
{32, arm64.REG_F1, -1, "F1"},
|
||||
{33, arm64.REG_F2, -1, "F2"},
|
||||
{34, arm64.REG_F3, -1, "F3"},
|
||||
{35, arm64.REG_F4, -1, "F4"},
|
||||
{36, arm64.REG_F5, -1, "F5"},
|
||||
{37, arm64.REG_F6, -1, "F6"},
|
||||
{38, arm64.REG_F7, -1, "F7"},
|
||||
{39, arm64.REG_F8, -1, "F8"},
|
||||
{40, arm64.REG_F9, -1, "F9"},
|
||||
{41, arm64.REG_F10, -1, "F10"},
|
||||
{42, arm64.REG_F11, -1, "F11"},
|
||||
{43, arm64.REG_F12, -1, "F12"},
|
||||
{44, arm64.REG_F13, -1, "F13"},
|
||||
{45, arm64.REG_F14, -1, "F14"},
|
||||
{46, arm64.REG_F15, -1, "F15"},
|
||||
{47, arm64.REG_F16, -1, "F16"},
|
||||
{48, arm64.REG_F17, -1, "F17"},
|
||||
{49, arm64.REG_F18, -1, "F18"},
|
||||
{50, arm64.REG_F19, -1, "F19"},
|
||||
{51, arm64.REG_F20, -1, "F20"},
|
||||
{52, arm64.REG_F21, -1, "F21"},
|
||||
{53, arm64.REG_F22, -1, "F22"},
|
||||
{54, arm64.REG_F23, -1, "F23"},
|
||||
{55, arm64.REG_F24, -1, "F24"},
|
||||
{56, arm64.REG_F25, -1, "F25"},
|
||||
{57, arm64.REG_F26, -1, "F26"},
|
||||
{58, arm64.REG_F27, -1, "F27"},
|
||||
{59, arm64.REG_F28, -1, "F28"},
|
||||
{60, arm64.REG_F29, -1, "F29"},
|
||||
{61, arm64.REG_F30, -1, "F30"},
|
||||
{62, arm64.REG_F31, -1, "F31"},
|
||||
{63, 0, -1, "SB"},
|
||||
}
|
||||
var gpRegMaskARM64 = regMask(670826495)
|
||||
var fpRegMaskARM64 = regMask(9223372034707292160)
|
||||
|
|
@ -28006,54 +28006,54 @@ var specialRegMaskARM64 = regMask(0)
|
|||
var framepointerRegARM64 = int8(-1)
|
||||
var linkRegARM64 = int8(29)
|
||||
var registersMIPS = [...]Register{
|
||||
{0, mips.REG_R0, "R0"},
|
||||
{1, mips.REG_R1, "R1"},
|
||||
{2, mips.REG_R2, "R2"},
|
||||
{3, mips.REG_R3, "R3"},
|
||||
{4, mips.REG_R4, "R4"},
|
||||
{5, mips.REG_R5, "R5"},
|
||||
{6, mips.REG_R6, "R6"},
|
||||
{7, mips.REG_R7, "R7"},
|
||||
{8, mips.REG_R8, "R8"},
|
||||
{9, mips.REG_R9, "R9"},
|
||||
{10, mips.REG_R10, "R10"},
|
||||
{11, mips.REG_R11, "R11"},
|
||||
{12, mips.REG_R12, "R12"},
|
||||
{13, mips.REG_R13, "R13"},
|
||||
{14, mips.REG_R14, "R14"},
|
||||
{15, mips.REG_R15, "R15"},
|
||||
{16, mips.REG_R16, "R16"},
|
||||
{17, mips.REG_R17, "R17"},
|
||||
{18, mips.REG_R18, "R18"},
|
||||
{19, mips.REG_R19, "R19"},
|
||||
{20, mips.REG_R20, "R20"},
|
||||
{21, mips.REG_R21, "R21"},
|
||||
{22, mips.REG_R22, "R22"},
|
||||
{23, mips.REG_R24, "R24"},
|
||||
{24, mips.REG_R25, "R25"},
|
||||
{25, mips.REG_R28, "R28"},
|
||||
{26, mips.REGSP, "SP"},
|
||||
{27, mips.REGG, "g"},
|
||||
{28, mips.REG_R31, "R31"},
|
||||
{29, mips.REG_F0, "F0"},
|
||||
{30, mips.REG_F2, "F2"},
|
||||
{31, mips.REG_F4, "F4"},
|
||||
{32, mips.REG_F6, "F6"},
|
||||
{33, mips.REG_F8, "F8"},
|
||||
{34, mips.REG_F10, "F10"},
|
||||
{35, mips.REG_F12, "F12"},
|
||||
{36, mips.REG_F14, "F14"},
|
||||
{37, mips.REG_F16, "F16"},
|
||||
{38, mips.REG_F18, "F18"},
|
||||
{39, mips.REG_F20, "F20"},
|
||||
{40, mips.REG_F22, "F22"},
|
||||
{41, mips.REG_F24, "F24"},
|
||||
{42, mips.REG_F26, "F26"},
|
||||
{43, mips.REG_F28, "F28"},
|
||||
{44, mips.REG_F30, "F30"},
|
||||
{45, mips.REG_HI, "HI"},
|
||||
{46, mips.REG_LO, "LO"},
|
||||
{47, 0, "SB"},
|
||||
{0, mips.REG_R0, -1, "R0"},
|
||||
{1, mips.REG_R1, 0, "R1"},
|
||||
{2, mips.REG_R2, 1, "R2"},
|
||||
{3, mips.REG_R3, 2, "R3"},
|
||||
{4, mips.REG_R4, 3, "R4"},
|
||||
{5, mips.REG_R5, 4, "R5"},
|
||||
{6, mips.REG_R6, 5, "R6"},
|
||||
{7, mips.REG_R7, 6, "R7"},
|
||||
{8, mips.REG_R8, 7, "R8"},
|
||||
{9, mips.REG_R9, 8, "R9"},
|
||||
{10, mips.REG_R10, 9, "R10"},
|
||||
{11, mips.REG_R11, 10, "R11"},
|
||||
{12, mips.REG_R12, 11, "R12"},
|
||||
{13, mips.REG_R13, 12, "R13"},
|
||||
{14, mips.REG_R14, 13, "R14"},
|
||||
{15, mips.REG_R15, 14, "R15"},
|
||||
{16, mips.REG_R16, 15, "R16"},
|
||||
{17, mips.REG_R17, 16, "R17"},
|
||||
{18, mips.REG_R18, 17, "R18"},
|
||||
{19, mips.REG_R19, 18, "R19"},
|
||||
{20, mips.REG_R20, 19, "R20"},
|
||||
{21, mips.REG_R21, 20, "R21"},
|
||||
{22, mips.REG_R22, 21, "R22"},
|
||||
{23, mips.REG_R24, 22, "R24"},
|
||||
{24, mips.REG_R25, 23, "R25"},
|
||||
{25, mips.REG_R28, 24, "R28"},
|
||||
{26, mips.REGSP, -1, "SP"},
|
||||
{27, mips.REGG, -1, "g"},
|
||||
{28, mips.REG_R31, 25, "R31"},
|
||||
{29, mips.REG_F0, -1, "F0"},
|
||||
{30, mips.REG_F2, -1, "F2"},
|
||||
{31, mips.REG_F4, -1, "F4"},
|
||||
{32, mips.REG_F6, -1, "F6"},
|
||||
{33, mips.REG_F8, -1, "F8"},
|
||||
{34, mips.REG_F10, -1, "F10"},
|
||||
{35, mips.REG_F12, -1, "F12"},
|
||||
{36, mips.REG_F14, -1, "F14"},
|
||||
{37, mips.REG_F16, -1, "F16"},
|
||||
{38, mips.REG_F18, -1, "F18"},
|
||||
{39, mips.REG_F20, -1, "F20"},
|
||||
{40, mips.REG_F22, -1, "F22"},
|
||||
{41, mips.REG_F24, -1, "F24"},
|
||||
{42, mips.REG_F26, -1, "F26"},
|
||||
{43, mips.REG_F28, -1, "F28"},
|
||||
{44, mips.REG_F30, -1, "F30"},
|
||||
{45, mips.REG_HI, -1, "HI"},
|
||||
{46, mips.REG_LO, -1, "LO"},
|
||||
{47, 0, -1, "SB"},
|
||||
}
|
||||
var gpRegMaskMIPS = regMask(335544318)
|
||||
var fpRegMaskMIPS = regMask(35183835217920)
|
||||
|
|
@ -28061,69 +28061,69 @@ var specialRegMaskMIPS = regMask(105553116266496)
|
|||
var framepointerRegMIPS = int8(-1)
|
||||
var linkRegMIPS = int8(28)
|
||||
var registersMIPS64 = [...]Register{
|
||||
{0, mips.REG_R0, "R0"},
|
||||
{1, mips.REG_R1, "R1"},
|
||||
{2, mips.REG_R2, "R2"},
|
||||
{3, mips.REG_R3, "R3"},
|
||||
{4, mips.REG_R4, "R4"},
|
||||
{5, mips.REG_R5, "R5"},
|
||||
{6, mips.REG_R6, "R6"},
|
||||
{7, mips.REG_R7, "R7"},
|
||||
{8, mips.REG_R8, "R8"},
|
||||
{9, mips.REG_R9, "R9"},
|
||||
{10, mips.REG_R10, "R10"},
|
||||
{11, mips.REG_R11, "R11"},
|
||||
{12, mips.REG_R12, "R12"},
|
||||
{13, mips.REG_R13, "R13"},
|
||||
{14, mips.REG_R14, "R14"},
|
||||
{15, mips.REG_R15, "R15"},
|
||||
{16, mips.REG_R16, "R16"},
|
||||
{17, mips.REG_R17, "R17"},
|
||||
{18, mips.REG_R18, "R18"},
|
||||
{19, mips.REG_R19, "R19"},
|
||||
{20, mips.REG_R20, "R20"},
|
||||
{21, mips.REG_R21, "R21"},
|
||||
{22, mips.REG_R22, "R22"},
|
||||
{23, mips.REG_R24, "R24"},
|
||||
{24, mips.REG_R25, "R25"},
|
||||
{25, mips.REGSP, "SP"},
|
||||
{26, mips.REGG, "g"},
|
||||
{27, mips.REG_R31, "R31"},
|
||||
{28, mips.REG_F0, "F0"},
|
||||
{29, mips.REG_F1, "F1"},
|
||||
{30, mips.REG_F2, "F2"},
|
||||
{31, mips.REG_F3, "F3"},
|
||||
{32, mips.REG_F4, "F4"},
|
||||
{33, mips.REG_F5, "F5"},
|
||||
{34, mips.REG_F6, "F6"},
|
||||
{35, mips.REG_F7, "F7"},
|
||||
{36, mips.REG_F8, "F8"},
|
||||
{37, mips.REG_F9, "F9"},
|
||||
{38, mips.REG_F10, "F10"},
|
||||
{39, mips.REG_F11, "F11"},
|
||||
{40, mips.REG_F12, "F12"},
|
||||
{41, mips.REG_F13, "F13"},
|
||||
{42, mips.REG_F14, "F14"},
|
||||
{43, mips.REG_F15, "F15"},
|
||||
{44, mips.REG_F16, "F16"},
|
||||
{45, mips.REG_F17, "F17"},
|
||||
{46, mips.REG_F18, "F18"},
|
||||
{47, mips.REG_F19, "F19"},
|
||||
{48, mips.REG_F20, "F20"},
|
||||
{49, mips.REG_F21, "F21"},
|
||||
{50, mips.REG_F22, "F22"},
|
||||
{51, mips.REG_F23, "F23"},
|
||||
{52, mips.REG_F24, "F24"},
|
||||
{53, mips.REG_F25, "F25"},
|
||||
{54, mips.REG_F26, "F26"},
|
||||
{55, mips.REG_F27, "F27"},
|
||||
{56, mips.REG_F28, "F28"},
|
||||
{57, mips.REG_F29, "F29"},
|
||||
{58, mips.REG_F30, "F30"},
|
||||
{59, mips.REG_F31, "F31"},
|
||||
{60, mips.REG_HI, "HI"},
|
||||
{61, mips.REG_LO, "LO"},
|
||||
{62, 0, "SB"},
|
||||
{0, mips.REG_R0, -1, "R0"},
|
||||
{1, mips.REG_R1, 0, "R1"},
|
||||
{2, mips.REG_R2, 1, "R2"},
|
||||
{3, mips.REG_R3, 2, "R3"},
|
||||
{4, mips.REG_R4, 3, "R4"},
|
||||
{5, mips.REG_R5, 4, "R5"},
|
||||
{6, mips.REG_R6, 5, "R6"},
|
||||
{7, mips.REG_R7, 6, "R7"},
|
||||
{8, mips.REG_R8, 7, "R8"},
|
||||
{9, mips.REG_R9, 8, "R9"},
|
||||
{10, mips.REG_R10, 9, "R10"},
|
||||
{11, mips.REG_R11, 10, "R11"},
|
||||
{12, mips.REG_R12, 11, "R12"},
|
||||
{13, mips.REG_R13, 12, "R13"},
|
||||
{14, mips.REG_R14, 13, "R14"},
|
||||
{15, mips.REG_R15, 14, "R15"},
|
||||
{16, mips.REG_R16, 15, "R16"},
|
||||
{17, mips.REG_R17, 16, "R17"},
|
||||
{18, mips.REG_R18, 17, "R18"},
|
||||
{19, mips.REG_R19, 18, "R19"},
|
||||
{20, mips.REG_R20, 19, "R20"},
|
||||
{21, mips.REG_R21, 20, "R21"},
|
||||
{22, mips.REG_R22, 21, "R22"},
|
||||
{23, mips.REG_R24, 22, "R24"},
|
||||
{24, mips.REG_R25, 23, "R25"},
|
||||
{25, mips.REGSP, -1, "SP"},
|
||||
{26, mips.REGG, -1, "g"},
|
||||
{27, mips.REG_R31, 24, "R31"},
|
||||
{28, mips.REG_F0, -1, "F0"},
|
||||
{29, mips.REG_F1, -1, "F1"},
|
||||
{30, mips.REG_F2, -1, "F2"},
|
||||
{31, mips.REG_F3, -1, "F3"},
|
||||
{32, mips.REG_F4, -1, "F4"},
|
||||
{33, mips.REG_F5, -1, "F5"},
|
||||
{34, mips.REG_F6, -1, "F6"},
|
||||
{35, mips.REG_F7, -1, "F7"},
|
||||
{36, mips.REG_F8, -1, "F8"},
|
||||
{37, mips.REG_F9, -1, "F9"},
|
||||
{38, mips.REG_F10, -1, "F10"},
|
||||
{39, mips.REG_F11, -1, "F11"},
|
||||
{40, mips.REG_F12, -1, "F12"},
|
||||
{41, mips.REG_F13, -1, "F13"},
|
||||
{42, mips.REG_F14, -1, "F14"},
|
||||
{43, mips.REG_F15, -1, "F15"},
|
||||
{44, mips.REG_F16, -1, "F16"},
|
||||
{45, mips.REG_F17, -1, "F17"},
|
||||
{46, mips.REG_F18, -1, "F18"},
|
||||
{47, mips.REG_F19, -1, "F19"},
|
||||
{48, mips.REG_F20, -1, "F20"},
|
||||
{49, mips.REG_F21, -1, "F21"},
|
||||
{50, mips.REG_F22, -1, "F22"},
|
||||
{51, mips.REG_F23, -1, "F23"},
|
||||
{52, mips.REG_F24, -1, "F24"},
|
||||
{53, mips.REG_F25, -1, "F25"},
|
||||
{54, mips.REG_F26, -1, "F26"},
|
||||
{55, mips.REG_F27, -1, "F27"},
|
||||
{56, mips.REG_F28, -1, "F28"},
|
||||
{57, mips.REG_F29, -1, "F29"},
|
||||
{58, mips.REG_F30, -1, "F30"},
|
||||
{59, mips.REG_F31, -1, "F31"},
|
||||
{60, mips.REG_HI, -1, "HI"},
|
||||
{61, mips.REG_LO, -1, "LO"},
|
||||
{62, 0, -1, "SB"},
|
||||
}
|
||||
var gpRegMaskMIPS64 = regMask(167772158)
|
||||
var fpRegMaskMIPS64 = regMask(1152921504338411520)
|
||||
|
|
@ -28131,70 +28131,70 @@ var specialRegMaskMIPS64 = regMask(3458764513820540928)
|
|||
var framepointerRegMIPS64 = int8(-1)
|
||||
var linkRegMIPS64 = int8(27)
|
||||
var registersPPC64 = [...]Register{
|
||||
{0, ppc64.REG_R0, "R0"},
|
||||
{1, ppc64.REGSP, "SP"},
|
||||
{2, 0, "SB"},
|
||||
{3, ppc64.REG_R3, "R3"},
|
||||
{4, ppc64.REG_R4, "R4"},
|
||||
{5, ppc64.REG_R5, "R5"},
|
||||
{6, ppc64.REG_R6, "R6"},
|
||||
{7, ppc64.REG_R7, "R7"},
|
||||
{8, ppc64.REG_R8, "R8"},
|
||||
{9, ppc64.REG_R9, "R9"},
|
||||
{10, ppc64.REG_R10, "R10"},
|
||||
{11, ppc64.REG_R11, "R11"},
|
||||
{12, ppc64.REG_R12, "R12"},
|
||||
{13, ppc64.REG_R13, "R13"},
|
||||
{14, ppc64.REG_R14, "R14"},
|
||||
{15, ppc64.REG_R15, "R15"},
|
||||
{16, ppc64.REG_R16, "R16"},
|
||||
{17, ppc64.REG_R17, "R17"},
|
||||
{18, ppc64.REG_R18, "R18"},
|
||||
{19, ppc64.REG_R19, "R19"},
|
||||
{20, ppc64.REG_R20, "R20"},
|
||||
{21, ppc64.REG_R21, "R21"},
|
||||
{22, ppc64.REG_R22, "R22"},
|
||||
{23, ppc64.REG_R23, "R23"},
|
||||
{24, ppc64.REG_R24, "R24"},
|
||||
{25, ppc64.REG_R25, "R25"},
|
||||
{26, ppc64.REG_R26, "R26"},
|
||||
{27, ppc64.REG_R27, "R27"},
|
||||
{28, ppc64.REG_R28, "R28"},
|
||||
{29, ppc64.REG_R29, "R29"},
|
||||
{30, ppc64.REGG, "g"},
|
||||
{31, ppc64.REG_R31, "R31"},
|
||||
{32, ppc64.REG_F0, "F0"},
|
||||
{33, ppc64.REG_F1, "F1"},
|
||||
{34, ppc64.REG_F2, "F2"},
|
||||
{35, ppc64.REG_F3, "F3"},
|
||||
{36, ppc64.REG_F4, "F4"},
|
||||
{37, ppc64.REG_F5, "F5"},
|
||||
{38, ppc64.REG_F6, "F6"},
|
||||
{39, ppc64.REG_F7, "F7"},
|
||||
{40, ppc64.REG_F8, "F8"},
|
||||
{41, ppc64.REG_F9, "F9"},
|
||||
{42, ppc64.REG_F10, "F10"},
|
||||
{43, ppc64.REG_F11, "F11"},
|
||||
{44, ppc64.REG_F12, "F12"},
|
||||
{45, ppc64.REG_F13, "F13"},
|
||||
{46, ppc64.REG_F14, "F14"},
|
||||
{47, ppc64.REG_F15, "F15"},
|
||||
{48, ppc64.REG_F16, "F16"},
|
||||
{49, ppc64.REG_F17, "F17"},
|
||||
{50, ppc64.REG_F18, "F18"},
|
||||
{51, ppc64.REG_F19, "F19"},
|
||||
{52, ppc64.REG_F20, "F20"},
|
||||
{53, ppc64.REG_F21, "F21"},
|
||||
{54, ppc64.REG_F22, "F22"},
|
||||
{55, ppc64.REG_F23, "F23"},
|
||||
{56, ppc64.REG_F24, "F24"},
|
||||
{57, ppc64.REG_F25, "F25"},
|
||||
{58, ppc64.REG_F26, "F26"},
|
||||
{59, ppc64.REG_F27, "F27"},
|
||||
{60, ppc64.REG_F28, "F28"},
|
||||
{61, ppc64.REG_F29, "F29"},
|
||||
{62, ppc64.REG_F30, "F30"},
|
||||
{63, ppc64.REG_F31, "F31"},
|
||||
{0, ppc64.REG_R0, -1, "R0"},
|
||||
{1, ppc64.REGSP, -1, "SP"},
|
||||
{2, 0, -1, "SB"},
|
||||
{3, ppc64.REG_R3, 0, "R3"},
|
||||
{4, ppc64.REG_R4, 1, "R4"},
|
||||
{5, ppc64.REG_R5, 2, "R5"},
|
||||
{6, ppc64.REG_R6, 3, "R6"},
|
||||
{7, ppc64.REG_R7, 4, "R7"},
|
||||
{8, ppc64.REG_R8, 5, "R8"},
|
||||
{9, ppc64.REG_R9, 6, "R9"},
|
||||
{10, ppc64.REG_R10, 7, "R10"},
|
||||
{11, ppc64.REG_R11, 8, "R11"},
|
||||
{12, ppc64.REG_R12, 9, "R12"},
|
||||
{13, ppc64.REG_R13, -1, "R13"},
|
||||
{14, ppc64.REG_R14, 10, "R14"},
|
||||
{15, ppc64.REG_R15, 11, "R15"},
|
||||
{16, ppc64.REG_R16, 12, "R16"},
|
||||
{17, ppc64.REG_R17, 13, "R17"},
|
||||
{18, ppc64.REG_R18, 14, "R18"},
|
||||
{19, ppc64.REG_R19, 15, "R19"},
|
||||
{20, ppc64.REG_R20, 16, "R20"},
|
||||
{21, ppc64.REG_R21, 17, "R21"},
|
||||
{22, ppc64.REG_R22, 18, "R22"},
|
||||
{23, ppc64.REG_R23, 19, "R23"},
|
||||
{24, ppc64.REG_R24, 20, "R24"},
|
||||
{25, ppc64.REG_R25, 21, "R25"},
|
||||
{26, ppc64.REG_R26, 22, "R26"},
|
||||
{27, ppc64.REG_R27, 23, "R27"},
|
||||
{28, ppc64.REG_R28, 24, "R28"},
|
||||
{29, ppc64.REG_R29, 25, "R29"},
|
||||
{30, ppc64.REGG, -1, "g"},
|
||||
{31, ppc64.REG_R31, -1, "R31"},
|
||||
{32, ppc64.REG_F0, -1, "F0"},
|
||||
{33, ppc64.REG_F1, -1, "F1"},
|
||||
{34, ppc64.REG_F2, -1, "F2"},
|
||||
{35, ppc64.REG_F3, -1, "F3"},
|
||||
{36, ppc64.REG_F4, -1, "F4"},
|
||||
{37, ppc64.REG_F5, -1, "F5"},
|
||||
{38, ppc64.REG_F6, -1, "F6"},
|
||||
{39, ppc64.REG_F7, -1, "F7"},
|
||||
{40, ppc64.REG_F8, -1, "F8"},
|
||||
{41, ppc64.REG_F9, -1, "F9"},
|
||||
{42, ppc64.REG_F10, -1, "F10"},
|
||||
{43, ppc64.REG_F11, -1, "F11"},
|
||||
{44, ppc64.REG_F12, -1, "F12"},
|
||||
{45, ppc64.REG_F13, -1, "F13"},
|
||||
{46, ppc64.REG_F14, -1, "F14"},
|
||||
{47, ppc64.REG_F15, -1, "F15"},
|
||||
{48, ppc64.REG_F16, -1, "F16"},
|
||||
{49, ppc64.REG_F17, -1, "F17"},
|
||||
{50, ppc64.REG_F18, -1, "F18"},
|
||||
{51, ppc64.REG_F19, -1, "F19"},
|
||||
{52, ppc64.REG_F20, -1, "F20"},
|
||||
{53, ppc64.REG_F21, -1, "F21"},
|
||||
{54, ppc64.REG_F22, -1, "F22"},
|
||||
{55, ppc64.REG_F23, -1, "F23"},
|
||||
{56, ppc64.REG_F24, -1, "F24"},
|
||||
{57, ppc64.REG_F25, -1, "F25"},
|
||||
{58, ppc64.REG_F26, -1, "F26"},
|
||||
{59, ppc64.REG_F27, -1, "F27"},
|
||||
{60, ppc64.REG_F28, -1, "F28"},
|
||||
{61, ppc64.REG_F29, -1, "F29"},
|
||||
{62, ppc64.REG_F30, -1, "F30"},
|
||||
{63, ppc64.REG_F31, -1, "F31"},
|
||||
}
|
||||
var gpRegMaskPPC64 = regMask(1073733624)
|
||||
var fpRegMaskPPC64 = regMask(576460743713488896)
|
||||
|
|
@ -28202,39 +28202,39 @@ var specialRegMaskPPC64 = regMask(0)
|
|||
var framepointerRegPPC64 = int8(1)
|
||||
var linkRegPPC64 = int8(-1)
|
||||
var registersS390X = [...]Register{
|
||||
{0, s390x.REG_R0, "R0"},
|
||||
{1, s390x.REG_R1, "R1"},
|
||||
{2, s390x.REG_R2, "R2"},
|
||||
{3, s390x.REG_R3, "R3"},
|
||||
{4, s390x.REG_R4, "R4"},
|
||||
{5, s390x.REG_R5, "R5"},
|
||||
{6, s390x.REG_R6, "R6"},
|
||||
{7, s390x.REG_R7, "R7"},
|
||||
{8, s390x.REG_R8, "R8"},
|
||||
{9, s390x.REG_R9, "R9"},
|
||||
{10, s390x.REG_R10, "R10"},
|
||||
{11, s390x.REG_R11, "R11"},
|
||||
{12, s390x.REG_R12, "R12"},
|
||||
{13, s390x.REGG, "g"},
|
||||
{14, s390x.REG_R14, "R14"},
|
||||
{15, s390x.REGSP, "SP"},
|
||||
{16, s390x.REG_F0, "F0"},
|
||||
{17, s390x.REG_F1, "F1"},
|
||||
{18, s390x.REG_F2, "F2"},
|
||||
{19, s390x.REG_F3, "F3"},
|
||||
{20, s390x.REG_F4, "F4"},
|
||||
{21, s390x.REG_F5, "F5"},
|
||||
{22, s390x.REG_F6, "F6"},
|
||||
{23, s390x.REG_F7, "F7"},
|
||||
{24, s390x.REG_F8, "F8"},
|
||||
{25, s390x.REG_F9, "F9"},
|
||||
{26, s390x.REG_F10, "F10"},
|
||||
{27, s390x.REG_F11, "F11"},
|
||||
{28, s390x.REG_F12, "F12"},
|
||||
{29, s390x.REG_F13, "F13"},
|
||||
{30, s390x.REG_F14, "F14"},
|
||||
{31, s390x.REG_F15, "F15"},
|
||||
{32, 0, "SB"},
|
||||
{0, s390x.REG_R0, 0, "R0"},
|
||||
{1, s390x.REG_R1, 1, "R1"},
|
||||
{2, s390x.REG_R2, 2, "R2"},
|
||||
{3, s390x.REG_R3, 3, "R3"},
|
||||
{4, s390x.REG_R4, 4, "R4"},
|
||||
{5, s390x.REG_R5, 5, "R5"},
|
||||
{6, s390x.REG_R6, 6, "R6"},
|
||||
{7, s390x.REG_R7, 7, "R7"},
|
||||
{8, s390x.REG_R8, 8, "R8"},
|
||||
{9, s390x.REG_R9, 9, "R9"},
|
||||
{10, s390x.REG_R10, -1, "R10"},
|
||||
{11, s390x.REG_R11, 10, "R11"},
|
||||
{12, s390x.REG_R12, 11, "R12"},
|
||||
{13, s390x.REGG, -1, "g"},
|
||||
{14, s390x.REG_R14, 12, "R14"},
|
||||
{15, s390x.REGSP, -1, "SP"},
|
||||
{16, s390x.REG_F0, -1, "F0"},
|
||||
{17, s390x.REG_F1, -1, "F1"},
|
||||
{18, s390x.REG_F2, -1, "F2"},
|
||||
{19, s390x.REG_F3, -1, "F3"},
|
||||
{20, s390x.REG_F4, -1, "F4"},
|
||||
{21, s390x.REG_F5, -1, "F5"},
|
||||
{22, s390x.REG_F6, -1, "F6"},
|
||||
{23, s390x.REG_F7, -1, "F7"},
|
||||
{24, s390x.REG_F8, -1, "F8"},
|
||||
{25, s390x.REG_F9, -1, "F9"},
|
||||
{26, s390x.REG_F10, -1, "F10"},
|
||||
{27, s390x.REG_F11, -1, "F11"},
|
||||
{28, s390x.REG_F12, -1, "F12"},
|
||||
{29, s390x.REG_F13, -1, "F13"},
|
||||
{30, s390x.REG_F14, -1, "F14"},
|
||||
{31, s390x.REG_F15, -1, "F15"},
|
||||
{32, 0, -1, "SB"},
|
||||
}
|
||||
var gpRegMaskS390X = regMask(23551)
|
||||
var fpRegMaskS390X = regMask(4294901760)
|
||||
|
|
@ -28242,41 +28242,41 @@ var specialRegMaskS390X = regMask(0)
|
|||
var framepointerRegS390X = int8(-1)
|
||||
var linkRegS390X = int8(14)
|
||||
var registersWasm = [...]Register{
|
||||
{0, wasm.REG_R0, "R0"},
|
||||
{1, wasm.REG_R1, "R1"},
|
||||
{2, wasm.REG_R2, "R2"},
|
||||
{3, wasm.REG_R3, "R3"},
|
||||
{4, wasm.REG_R4, "R4"},
|
||||
{5, wasm.REG_R5, "R5"},
|
||||
{6, wasm.REG_R6, "R6"},
|
||||
{7, wasm.REG_R7, "R7"},
|
||||
{8, wasm.REG_R8, "R8"},
|
||||
{9, wasm.REG_R9, "R9"},
|
||||
{10, wasm.REG_R10, "R10"},
|
||||
{11, wasm.REG_R11, "R11"},
|
||||
{12, wasm.REG_R12, "R12"},
|
||||
{13, wasm.REG_R13, "R13"},
|
||||
{14, wasm.REG_R14, "R14"},
|
||||
{15, wasm.REG_R15, "R15"},
|
||||
{16, wasm.REG_F0, "F0"},
|
||||
{17, wasm.REG_F1, "F1"},
|
||||
{18, wasm.REG_F2, "F2"},
|
||||
{19, wasm.REG_F3, "F3"},
|
||||
{20, wasm.REG_F4, "F4"},
|
||||
{21, wasm.REG_F5, "F5"},
|
||||
{22, wasm.REG_F6, "F6"},
|
||||
{23, wasm.REG_F7, "F7"},
|
||||
{24, wasm.REG_F8, "F8"},
|
||||
{25, wasm.REG_F9, "F9"},
|
||||
{26, wasm.REG_F10, "F10"},
|
||||
{27, wasm.REG_F11, "F11"},
|
||||
{28, wasm.REG_F12, "F12"},
|
||||
{29, wasm.REG_F13, "F13"},
|
||||
{30, wasm.REG_F14, "F14"},
|
||||
{31, wasm.REG_F15, "F15"},
|
||||
{32, wasm.REGSP, "SP"},
|
||||
{33, wasm.REGG, "g"},
|
||||
{34, 0, "SB"},
|
||||
{0, wasm.REG_R0, 0, "R0"},
|
||||
{1, wasm.REG_R1, 1, "R1"},
|
||||
{2, wasm.REG_R2, 2, "R2"},
|
||||
{3, wasm.REG_R3, 3, "R3"},
|
||||
{4, wasm.REG_R4, 4, "R4"},
|
||||
{5, wasm.REG_R5, 5, "R5"},
|
||||
{6, wasm.REG_R6, 6, "R6"},
|
||||
{7, wasm.REG_R7, 7, "R7"},
|
||||
{8, wasm.REG_R8, 8, "R8"},
|
||||
{9, wasm.REG_R9, 9, "R9"},
|
||||
{10, wasm.REG_R10, 10, "R10"},
|
||||
{11, wasm.REG_R11, 11, "R11"},
|
||||
{12, wasm.REG_R12, 12, "R12"},
|
||||
{13, wasm.REG_R13, 13, "R13"},
|
||||
{14, wasm.REG_R14, 14, "R14"},
|
||||
{15, wasm.REG_R15, 15, "R15"},
|
||||
{16, wasm.REG_F0, -1, "F0"},
|
||||
{17, wasm.REG_F1, -1, "F1"},
|
||||
{18, wasm.REG_F2, -1, "F2"},
|
||||
{19, wasm.REG_F3, -1, "F3"},
|
||||
{20, wasm.REG_F4, -1, "F4"},
|
||||
{21, wasm.REG_F5, -1, "F5"},
|
||||
{22, wasm.REG_F6, -1, "F6"},
|
||||
{23, wasm.REG_F7, -1, "F7"},
|
||||
{24, wasm.REG_F8, -1, "F8"},
|
||||
{25, wasm.REG_F9, -1, "F9"},
|
||||
{26, wasm.REG_F10, -1, "F10"},
|
||||
{27, wasm.REG_F11, -1, "F11"},
|
||||
{28, wasm.REG_F12, -1, "F12"},
|
||||
{29, wasm.REG_F13, -1, "F13"},
|
||||
{30, wasm.REG_F14, -1, "F14"},
|
||||
{31, wasm.REG_F15, -1, "F15"},
|
||||
{32, wasm.REGSP, -1, "SP"},
|
||||
{33, wasm.REGG, -1, "g"},
|
||||
{34, 0, -1, "SB"},
|
||||
}
|
||||
var gpRegMaskWasm = regMask(65535)
|
||||
var fpRegMaskWasm = regMask(4294901760)
|
||||
|
|
|
|||
|
|
@ -279,6 +279,21 @@ func (ft *factsTable) update(parent *Block, v, w *Value, d domain, r relation) {
|
|||
old, ok := ft.limits[v.ID]
|
||||
if !ok {
|
||||
old = noLimit
|
||||
if v.isGenericIntConst() {
|
||||
switch d {
|
||||
case signed:
|
||||
old.min, old.max = v.AuxInt, v.AuxInt
|
||||
if v.AuxInt >= 0 {
|
||||
old.umin, old.umax = uint64(v.AuxInt), uint64(v.AuxInt)
|
||||
}
|
||||
case unsigned:
|
||||
old.umin = v.AuxUnsigned()
|
||||
old.umax = old.umin
|
||||
if int64(old.umin) >= 0 {
|
||||
old.min, old.max = int64(old.umin), int64(old.umin)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
lim := noLimit
|
||||
switch d {
|
||||
|
|
@ -354,6 +369,37 @@ func (ft *factsTable) update(parent *Block, v, w *Value, d domain, r relation) {
|
|||
}
|
||||
}
|
||||
|
||||
// Derived facts below here are only about numbers.
|
||||
if d != signed && d != unsigned {
|
||||
return
|
||||
}
|
||||
|
||||
// Additional facts we know given the relationship between len and cap.
|
||||
//
|
||||
// TODO: Since prove now derives transitive relations, it
|
||||
// should be sufficient to learn that len(w) <= cap(w) at the
|
||||
// beginning of prove where we look for all len/cap ops.
|
||||
if v.Op == OpSliceLen && r< == 0 && ft.caps[v.Args[0].ID] != nil {
|
||||
// len(s) > w implies cap(s) > w
|
||||
// len(s) >= w implies cap(s) >= w
|
||||
// len(s) == w implies cap(s) >= w
|
||||
ft.update(parent, ft.caps[v.Args[0].ID], w, d, r|gt)
|
||||
}
|
||||
if w.Op == OpSliceLen && r> == 0 && ft.caps[w.Args[0].ID] != nil {
|
||||
// same, length on the RHS.
|
||||
ft.update(parent, v, ft.caps[w.Args[0].ID], d, r|lt)
|
||||
}
|
||||
if v.Op == OpSliceCap && r> == 0 && ft.lens[v.Args[0].ID] != nil {
|
||||
// cap(s) < w implies len(s) < w
|
||||
// cap(s) <= w implies len(s) <= w
|
||||
// cap(s) == w implies len(s) <= w
|
||||
ft.update(parent, ft.lens[v.Args[0].ID], w, d, r|lt)
|
||||
}
|
||||
if w.Op == OpSliceCap && r< == 0 && ft.lens[w.Args[0].ID] != nil {
|
||||
// same, capacity on the RHS.
|
||||
ft.update(parent, v, ft.lens[w.Args[0].ID], d, r|gt)
|
||||
}
|
||||
|
||||
// Process fence-post implications.
|
||||
//
|
||||
// First, make the condition > or >=.
|
||||
|
|
@ -781,6 +827,9 @@ func prove(f *Func) {
|
|||
// ft when we unwind.
|
||||
}
|
||||
|
||||
// Add inductive facts for phis in this block.
|
||||
addLocalInductiveFacts(ft, node.block)
|
||||
|
||||
work = append(work, bp{
|
||||
block: node.block,
|
||||
state: simplify,
|
||||
|
|
@ -916,30 +965,107 @@ func addRestrictions(parent *Block, ft *factsTable, t domain, v, w *Value, r rel
|
|||
continue
|
||||
}
|
||||
ft.update(parent, v, w, i, r)
|
||||
}
|
||||
}
|
||||
|
||||
// Additional facts we know given the relationship between len and cap.
|
||||
if i != signed && i != unsigned {
|
||||
// addLocalInductiveFacts adds inductive facts when visiting b, where
|
||||
// b is a join point in a loop. In contrast with findIndVar, this
|
||||
// depends on facts established for b, which is why it happens when
|
||||
// visiting b. addLocalInductiveFacts specifically targets the pattern
|
||||
// created by OFORUNTIL, which isn't detected by findIndVar.
|
||||
//
|
||||
// TODO: It would be nice to combine this with findIndVar.
|
||||
func addLocalInductiveFacts(ft *factsTable, b *Block) {
|
||||
// This looks for a specific pattern of induction:
|
||||
//
|
||||
// 1. i1 = OpPhi(min, i2) in b
|
||||
// 2. i2 = i1 + 1
|
||||
// 3. i2 < max at exit from b.Preds[1]
|
||||
// 4. min < max
|
||||
//
|
||||
// If all of these conditions are true, then i1 < max and i1 >= min.
|
||||
|
||||
for _, i1 := range b.Values {
|
||||
if i1.Op != OpPhi {
|
||||
continue
|
||||
}
|
||||
if v.Op == OpSliceLen && r< == 0 && ft.caps[v.Args[0].ID] != nil {
|
||||
// len(s) > w implies cap(s) > w
|
||||
// len(s) >= w implies cap(s) >= w
|
||||
// len(s) == w implies cap(s) >= w
|
||||
ft.update(parent, ft.caps[v.Args[0].ID], w, i, r|gt)
|
||||
|
||||
// Check for conditions 1 and 2. This is easy to do
|
||||
// and will throw out most phis.
|
||||
min, i2 := i1.Args[0], i1.Args[1]
|
||||
if i1q, delta := isConstDelta(i2); i1q != i1 || delta != 1 {
|
||||
continue
|
||||
}
|
||||
if w.Op == OpSliceLen && r> == 0 && ft.caps[w.Args[0].ID] != nil {
|
||||
// same, length on the RHS.
|
||||
ft.update(parent, v, ft.caps[w.Args[0].ID], i, r|lt)
|
||||
|
||||
// Try to prove condition 3. We can't just query the
|
||||
// fact table for this because we don't know what the
|
||||
// facts of b.Preds[1] are (in general, b.Preds[1] is
|
||||
// a loop-back edge, so we haven't even been there
|
||||
// yet). As a conservative approximation, we look for
|
||||
// this condition in the predecessor chain until we
|
||||
// hit a join point.
|
||||
uniquePred := func(b *Block) *Block {
|
||||
if len(b.Preds) == 1 {
|
||||
return b.Preds[0].b
|
||||
}
|
||||
return nil
|
||||
}
|
||||
if v.Op == OpSliceCap && r> == 0 && ft.lens[v.Args[0].ID] != nil {
|
||||
// cap(s) < w implies len(s) < w
|
||||
// cap(s) <= w implies len(s) <= w
|
||||
// cap(s) == w implies len(s) <= w
|
||||
ft.update(parent, ft.lens[v.Args[0].ID], w, i, r|lt)
|
||||
}
|
||||
if w.Op == OpSliceCap && r< == 0 && ft.lens[w.Args[0].ID] != nil {
|
||||
// same, capacity on the RHS.
|
||||
ft.update(parent, v, ft.lens[w.Args[0].ID], i, r|gt)
|
||||
pred, child := b.Preds[1].b, b
|
||||
for ; pred != nil; pred = uniquePred(pred) {
|
||||
if pred.Kind != BlockIf {
|
||||
continue
|
||||
}
|
||||
|
||||
br := unknown
|
||||
if pred.Succs[0].b == child {
|
||||
br = positive
|
||||
}
|
||||
if pred.Succs[1].b == child {
|
||||
if br != unknown {
|
||||
continue
|
||||
}
|
||||
br = negative
|
||||
}
|
||||
|
||||
tr, has := domainRelationTable[pred.Control.Op]
|
||||
if !has {
|
||||
continue
|
||||
}
|
||||
r := tr.r
|
||||
if br == negative {
|
||||
// Negative branch taken to reach b.
|
||||
// Complement the relations.
|
||||
r = (lt | eq | gt) ^ r
|
||||
}
|
||||
|
||||
// Check for i2 < max or max > i2.
|
||||
var max *Value
|
||||
if r == lt && pred.Control.Args[0] == i2 {
|
||||
max = pred.Control.Args[1]
|
||||
} else if r == gt && pred.Control.Args[1] == i2 {
|
||||
max = pred.Control.Args[0]
|
||||
} else {
|
||||
continue
|
||||
}
|
||||
|
||||
// Check condition 4 now that we have a
|
||||
// candidate max. For this we can query the
|
||||
// fact table. We "prove" min < max by showing
|
||||
// that min >= max is unsat. (This may simply
|
||||
// compare two constants; that's fine.)
|
||||
ft.checkpoint()
|
||||
ft.update(b, min, max, tr.d, gt|eq)
|
||||
proved := ft.unsat
|
||||
ft.restore()
|
||||
|
||||
if proved {
|
||||
// We know that min <= i1 < max.
|
||||
if b.Func.pass.debug > 0 {
|
||||
printIndVar(b, i1, min, max, 1, 0)
|
||||
}
|
||||
ft.update(b, min, i1, tr.d, lt|eq)
|
||||
ft.update(b, i1, max, tr.d, lt)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ import (
|
|||
"cmd/compile/internal/types"
|
||||
"cmd/internal/objabi"
|
||||
"cmd/internal/src"
|
||||
"cmd/internal/sys"
|
||||
"fmt"
|
||||
"unsafe"
|
||||
)
|
||||
|
|
@ -372,6 +373,10 @@ func (s *regAllocState) assignReg(r register, v *Value, c *Value) {
|
|||
// If there is no unused register, a Value will be kicked out of
|
||||
// a register to make room.
|
||||
func (s *regAllocState) allocReg(mask regMask, v *Value) register {
|
||||
if v.OnWasmStack {
|
||||
return noRegister
|
||||
}
|
||||
|
||||
mask &= s.allocatable
|
||||
mask &^= s.nospill
|
||||
if mask == 0 {
|
||||
|
|
@ -411,6 +416,14 @@ func (s *regAllocState) allocReg(mask regMask, v *Value) register {
|
|||
s.f.Fatalf("couldn't find register to spill")
|
||||
}
|
||||
|
||||
if s.f.Config.ctxt.Arch.Arch == sys.ArchWasm {
|
||||
// TODO(neelance): In theory this should never happen, because all wasm registers are equal.
|
||||
// So if there is still a free register, the allocation should have picked that one in the first place insead of
|
||||
// trying to kick some other value out. In practice, this case does happen and it breaks the stack optimization.
|
||||
s.freeReg(r)
|
||||
return r
|
||||
}
|
||||
|
||||
// Try to move it around before kicking out, if there is a free register.
|
||||
// We generate a Copy and record it. It will be deleted if never used.
|
||||
v2 := s.regs[r].v
|
||||
|
|
@ -458,6 +471,16 @@ func (s *regAllocState) makeSpill(v *Value, b *Block) *Value {
|
|||
// undone until the caller allows it by clearing nospill. Returns a
|
||||
// *Value which is either v or a copy of v allocated to the chosen register.
|
||||
func (s *regAllocState) allocValToReg(v *Value, mask regMask, nospill bool, pos src.XPos) *Value {
|
||||
if s.f.Config.ctxt.Arch.Arch == sys.ArchWasm && v.rematerializeable() {
|
||||
c := v.copyIntoWithXPos(s.curBlock, pos)
|
||||
c.OnWasmStack = true
|
||||
s.setOrig(c, v)
|
||||
return c
|
||||
}
|
||||
if v.OnWasmStack {
|
||||
return v
|
||||
}
|
||||
|
||||
vi := &s.values[v.ID]
|
||||
pos = pos.WithNotStmt()
|
||||
// Check if v is already in a requested register.
|
||||
|
|
@ -472,8 +495,13 @@ func (s *regAllocState) allocValToReg(v *Value, mask regMask, nospill bool, pos
|
|||
return s.regs[r].c
|
||||
}
|
||||
|
||||
// Allocate a register.
|
||||
r := s.allocReg(mask, v)
|
||||
var r register
|
||||
// If nospill is set, the value is used immedately, so it can live on the WebAssembly stack.
|
||||
onWasmStack := nospill && s.f.Config.ctxt.Arch.Arch == sys.ArchWasm
|
||||
if !onWasmStack {
|
||||
// Allocate a register.
|
||||
r = s.allocReg(mask, v)
|
||||
}
|
||||
|
||||
// Allocate v to the new register.
|
||||
var c *Value
|
||||
|
|
@ -495,7 +523,14 @@ func (s *regAllocState) allocValToReg(v *Value, mask regMask, nospill bool, pos
|
|||
}
|
||||
c = s.curBlock.NewValue1(pos, OpLoadReg, v.Type, spill)
|
||||
}
|
||||
|
||||
s.setOrig(c, v)
|
||||
|
||||
if onWasmStack {
|
||||
c.OnWasmStack = true
|
||||
return c
|
||||
}
|
||||
|
||||
s.assignReg(r, v, c)
|
||||
if nospill {
|
||||
s.nospill |= regMask(1) << r
|
||||
|
|
@ -656,6 +691,39 @@ func (s *regAllocState) init(f *Func) {
|
|||
s.startRegs = make([][]startReg, f.NumBlocks())
|
||||
s.spillLive = make([][]ID, f.NumBlocks())
|
||||
s.sdom = f.sdom()
|
||||
|
||||
// wasm: Mark instructions that can be optimized to have their values only on the WebAssembly stack.
|
||||
if f.Config.ctxt.Arch.Arch == sys.ArchWasm {
|
||||
canLiveOnStack := f.newSparseSet(f.NumValues())
|
||||
defer f.retSparseSet(canLiveOnStack)
|
||||
for _, b := range f.Blocks {
|
||||
// New block. Clear candidate set.
|
||||
canLiveOnStack.clear()
|
||||
if b.Control != nil && b.Control.Uses == 1 && !opcodeTable[b.Control.Op].generic {
|
||||
canLiveOnStack.add(b.Control.ID)
|
||||
}
|
||||
// Walking backwards.
|
||||
for i := len(b.Values) - 1; i >= 0; i-- {
|
||||
v := b.Values[i]
|
||||
if canLiveOnStack.contains(v.ID) {
|
||||
v.OnWasmStack = true
|
||||
} else {
|
||||
// Value can not live on stack. Values are not allowed to be reordered, so clear candidate set.
|
||||
canLiveOnStack.clear()
|
||||
}
|
||||
for _, arg := range v.Args {
|
||||
// Value can live on the stack if:
|
||||
// - it is only used once
|
||||
// - it is used in the same basic block
|
||||
// - it is not a "mem" value
|
||||
// - it is a WebAssembly op
|
||||
if arg.Uses == 1 && arg.Block == v.Block && !arg.Type.IsMemory() && !opcodeTable[arg.Op].generic {
|
||||
canLiveOnStack.add(arg.ID)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Adds a use record for id at distance dist from the start of the block.
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
"math"
|
||||
"math/bits"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
|
@ -322,17 +323,16 @@ func isSameSym(sym interface{}, name string) bool {
|
|||
|
||||
// nlz returns the number of leading zeros.
|
||||
func nlz(x int64) int64 {
|
||||
// log2(0) == 1, so nlz(0) == 64
|
||||
return 63 - log2(x)
|
||||
return int64(bits.LeadingZeros64(uint64(x)))
|
||||
}
|
||||
|
||||
// ntz returns the number of trailing zeros.
|
||||
func ntz(x int64) int64 {
|
||||
return 64 - nlz(^x&(x-1))
|
||||
return int64(bits.TrailingZeros64(uint64(x)))
|
||||
}
|
||||
|
||||
func oneBit(x int64) bool {
|
||||
return nlz(x)+ntz(x) == 63
|
||||
return bits.OnesCount64(uint64(x)) == 1
|
||||
}
|
||||
|
||||
// nlo returns the number of leading ones.
|
||||
|
|
@ -347,34 +347,14 @@ func nto(x int64) int64 {
|
|||
|
||||
// log2 returns logarithm in base 2 of uint64(n), with log2(0) = -1.
|
||||
// Rounds down.
|
||||
func log2(n int64) (l int64) {
|
||||
l = -1
|
||||
x := uint64(n)
|
||||
for ; x >= 0x8000; x >>= 16 {
|
||||
l += 16
|
||||
}
|
||||
if x >= 0x80 {
|
||||
x >>= 8
|
||||
l += 8
|
||||
}
|
||||
if x >= 0x8 {
|
||||
x >>= 4
|
||||
l += 4
|
||||
}
|
||||
if x >= 0x2 {
|
||||
x >>= 2
|
||||
l += 2
|
||||
}
|
||||
if x >= 0x1 {
|
||||
l++
|
||||
}
|
||||
return
|
||||
func log2(n int64) int64 {
|
||||
return int64(bits.Len64(uint64(n))) - 1
|
||||
}
|
||||
|
||||
// log2uint32 returns logarithm in base 2 of uint32(n), with log2(0) = -1.
|
||||
// Rounds down.
|
||||
func log2uint32(n int64) (l int64) {
|
||||
return log2(int64(uint32(n)))
|
||||
func log2uint32(n int64) int64 {
|
||||
return int64(bits.Len32(uint32(n))) - 1
|
||||
}
|
||||
|
||||
// isPowerOfTwo reports whether n is a power of 2.
|
||||
|
|
|
|||
|
|
@ -489,6 +489,12 @@ func rewriteValueWasm(v *Value) bool {
|
|||
return rewriteValueWasm_OpWasmI64Ne_0(v)
|
||||
case OpWasmI64Or:
|
||||
return rewriteValueWasm_OpWasmI64Or_0(v)
|
||||
case OpWasmI64Shl:
|
||||
return rewriteValueWasm_OpWasmI64Shl_0(v)
|
||||
case OpWasmI64ShrS:
|
||||
return rewriteValueWasm_OpWasmI64ShrS_0(v)
|
||||
case OpWasmI64ShrU:
|
||||
return rewriteValueWasm_OpWasmI64ShrU_0(v)
|
||||
case OpWasmI64Store:
|
||||
return rewriteValueWasm_OpWasmI64Store_0(v)
|
||||
case OpWasmI64Store16:
|
||||
|
|
@ -4503,6 +4509,20 @@ func rewriteValueWasm_OpSignExt16to32_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (SignExt16to32 x:(I64Load16S _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load16S {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (SignExt16to32 x)
|
||||
// cond:
|
||||
// result: (I64ShrS (I64Shl x (I64Const [48])) (I64Const [48]))
|
||||
|
|
@ -4526,6 +4546,20 @@ func rewriteValueWasm_OpSignExt16to64_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (SignExt16to64 x:(I64Load16S _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load16S {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (SignExt16to64 x)
|
||||
// cond:
|
||||
// result: (I64ShrS (I64Shl x (I64Const [48])) (I64Const [48]))
|
||||
|
|
@ -4549,6 +4583,20 @@ func rewriteValueWasm_OpSignExt32to64_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (SignExt32to64 x:(I64Load32S _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load32S {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (SignExt32to64 x)
|
||||
// cond:
|
||||
// result: (I64ShrS (I64Shl x (I64Const [32])) (I64Const [32]))
|
||||
|
|
@ -4572,6 +4620,20 @@ func rewriteValueWasm_OpSignExt8to16_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (SignExt8to16 x:(I64Load8S _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load8S {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (SignExt8to16 x)
|
||||
// cond:
|
||||
// result: (I64ShrS (I64Shl x (I64Const [56])) (I64Const [56]))
|
||||
|
|
@ -4595,6 +4657,20 @@ func rewriteValueWasm_OpSignExt8to32_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (SignExt8to32 x:(I64Load8S _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load8S {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (SignExt8to32 x)
|
||||
// cond:
|
||||
// result: (I64ShrS (I64Shl x (I64Const [56])) (I64Const [56]))
|
||||
|
|
@ -4618,6 +4694,20 @@ func rewriteValueWasm_OpSignExt8to64_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (SignExt8to64 x:(I64Load8S _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load8S {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (SignExt8to64 x)
|
||||
// cond:
|
||||
// result: (I64ShrS (I64Shl x (I64Const [56])) (I64Const [56]))
|
||||
|
|
@ -5232,6 +5322,23 @@ func rewriteValueWasm_OpWasmI64Eq_0(v *Value) bool {
|
|||
v.AddArg(v0)
|
||||
return true
|
||||
}
|
||||
// match: (I64Eq x (I64Const [0]))
|
||||
// cond:
|
||||
// result: (I64Eqz x)
|
||||
for {
|
||||
_ = v.Args[1]
|
||||
x := v.Args[0]
|
||||
v_1 := v.Args[1]
|
||||
if v_1.Op != OpWasmI64Const {
|
||||
break
|
||||
}
|
||||
if v_1.AuxInt != 0 {
|
||||
break
|
||||
}
|
||||
v.reset(OpWasmI64Eqz)
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValueWasm_OpWasmI64Eqz_0(v *Value) bool {
|
||||
|
|
@ -5540,6 +5647,25 @@ func rewriteValueWasm_OpWasmI64Ne_0(v *Value) bool {
|
|||
v.AddArg(v0)
|
||||
return true
|
||||
}
|
||||
// match: (I64Ne x (I64Const [0]))
|
||||
// cond:
|
||||
// result: (I64Eqz (I64Eqz x))
|
||||
for {
|
||||
_ = v.Args[1]
|
||||
x := v.Args[0]
|
||||
v_1 := v.Args[1]
|
||||
if v_1.Op != OpWasmI64Const {
|
||||
break
|
||||
}
|
||||
if v_1.AuxInt != 0 {
|
||||
break
|
||||
}
|
||||
v.reset(OpWasmI64Eqz)
|
||||
v0 := b.NewValue0(v.Pos, OpWasmI64Eqz, typ.Bool)
|
||||
v0.AddArg(x)
|
||||
v.AddArg(v0)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValueWasm_OpWasmI64Or_0(v *Value) bool {
|
||||
|
|
@ -5586,6 +5712,72 @@ func rewriteValueWasm_OpWasmI64Or_0(v *Value) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValueWasm_OpWasmI64Shl_0(v *Value) bool {
|
||||
// match: (I64Shl (I64Const [x]) (I64Const [y]))
|
||||
// cond:
|
||||
// result: (I64Const [x << uint64(y)])
|
||||
for {
|
||||
_ = v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
if v_0.Op != OpWasmI64Const {
|
||||
break
|
||||
}
|
||||
x := v_0.AuxInt
|
||||
v_1 := v.Args[1]
|
||||
if v_1.Op != OpWasmI64Const {
|
||||
break
|
||||
}
|
||||
y := v_1.AuxInt
|
||||
v.reset(OpWasmI64Const)
|
||||
v.AuxInt = x << uint64(y)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValueWasm_OpWasmI64ShrS_0(v *Value) bool {
|
||||
// match: (I64ShrS (I64Const [x]) (I64Const [y]))
|
||||
// cond:
|
||||
// result: (I64Const [x >> uint64(y)])
|
||||
for {
|
||||
_ = v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
if v_0.Op != OpWasmI64Const {
|
||||
break
|
||||
}
|
||||
x := v_0.AuxInt
|
||||
v_1 := v.Args[1]
|
||||
if v_1.Op != OpWasmI64Const {
|
||||
break
|
||||
}
|
||||
y := v_1.AuxInt
|
||||
v.reset(OpWasmI64Const)
|
||||
v.AuxInt = x >> uint64(y)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValueWasm_OpWasmI64ShrU_0(v *Value) bool {
|
||||
// match: (I64ShrU (I64Const [x]) (I64Const [y]))
|
||||
// cond:
|
||||
// result: (I64Const [int64(uint64(x) >> uint64(y))])
|
||||
for {
|
||||
_ = v.Args[1]
|
||||
v_0 := v.Args[0]
|
||||
if v_0.Op != OpWasmI64Const {
|
||||
break
|
||||
}
|
||||
x := v_0.AuxInt
|
||||
v_1 := v.Args[1]
|
||||
if v_1.Op != OpWasmI64Const {
|
||||
break
|
||||
}
|
||||
y := v_1.AuxInt
|
||||
v.reset(OpWasmI64Const)
|
||||
v.AuxInt = int64(uint64(x) >> uint64(y))
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
func rewriteValueWasm_OpWasmI64Store_0(v *Value) bool {
|
||||
// match: (I64Store [off] (I64AddConst [off2] ptr) val mem)
|
||||
// cond: isU32Bit(off+off2)
|
||||
|
|
@ -6138,6 +6330,20 @@ func rewriteValueWasm_OpZeroExt16to32_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (ZeroExt16to32 x:(I64Load16U _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load16U {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (ZeroExt16to32 x)
|
||||
// cond:
|
||||
// result: (I64ShrU (I64Shl x (I64Const [48])) (I64Const [48]))
|
||||
|
|
@ -6161,6 +6367,20 @@ func rewriteValueWasm_OpZeroExt16to64_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (ZeroExt16to64 x:(I64Load16U _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load16U {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (ZeroExt16to64 x)
|
||||
// cond:
|
||||
// result: (I64ShrU (I64Shl x (I64Const [48])) (I64Const [48]))
|
||||
|
|
@ -6184,6 +6404,20 @@ func rewriteValueWasm_OpZeroExt32to64_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (ZeroExt32to64 x:(I64Load32U _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load32U {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (ZeroExt32to64 x)
|
||||
// cond:
|
||||
// result: (I64ShrU (I64Shl x (I64Const [32])) (I64Const [32]))
|
||||
|
|
@ -6207,6 +6441,20 @@ func rewriteValueWasm_OpZeroExt8to16_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (ZeroExt8to16 x:(I64Load8U _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load8U {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (ZeroExt8to16 x)
|
||||
// cond:
|
||||
// result: (I64ShrU (I64Shl x (I64Const [56])) (I64Const [56]))
|
||||
|
|
@ -6230,6 +6478,20 @@ func rewriteValueWasm_OpZeroExt8to32_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (ZeroExt8to32 x:(I64Load8U _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load8U {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (ZeroExt8to32 x)
|
||||
// cond:
|
||||
// result: (I64ShrU (I64Shl x (I64Const [56])) (I64Const [56]))
|
||||
|
|
@ -6253,6 +6515,20 @@ func rewriteValueWasm_OpZeroExt8to64_0(v *Value) bool {
|
|||
_ = b
|
||||
typ := &b.Func.Config.Types
|
||||
_ = typ
|
||||
// match: (ZeroExt8to64 x:(I64Load8U _ _))
|
||||
// cond:
|
||||
// result: x
|
||||
for {
|
||||
x := v.Args[0]
|
||||
if x.Op != OpWasmI64Load8U {
|
||||
break
|
||||
}
|
||||
_ = x.Args[1]
|
||||
v.reset(OpCopy)
|
||||
v.Type = x.Type
|
||||
v.AddArg(x)
|
||||
return true
|
||||
}
|
||||
// match: (ZeroExt8to64 x)
|
||||
// cond:
|
||||
// result: (I64ShrU (I64Shl x (I64Const [56])) (I64Const [56]))
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ func TestSizeof(t *testing.T) {
|
|||
_32bit uintptr // size on 32bit platforms
|
||||
_64bit uintptr // size on 64bit platforms
|
||||
}{
|
||||
{Value{}, 68, 112},
|
||||
{Value{}, 72, 112},
|
||||
{Block{}, 152, 288},
|
||||
{LocalSlot{}, 32, 48},
|
||||
{valState{}, 28, 40},
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ func (s *stackAllocState) init(f *Func, spillLive [][]ID) {
|
|||
for _, b := range f.Blocks {
|
||||
for _, v := range b.Values {
|
||||
s.values[v.ID].typ = v.Type
|
||||
s.values[v.ID].needSlot = !v.Type.IsMemory() && !v.Type.IsVoid() && !v.Type.IsFlags() && f.getHome(v.ID) == nil && !v.rematerializeable()
|
||||
s.values[v.ID].needSlot = !v.Type.IsMemory() && !v.Type.IsVoid() && !v.Type.IsFlags() && f.getHome(v.ID) == nil && !v.rematerializeable() && !v.OnWasmStack
|
||||
s.values[v.ID].isArg = v.Op == OpArg
|
||||
if f.pass.debug > stackDebug && s.values[v.ID].needSlot {
|
||||
fmt.Printf("%s needs a stack slot\n", v)
|
||||
|
|
|
|||
|
|
@ -96,4 +96,4 @@
|
|||
87: if a == 0 { //gdb-opt=(a,n,t)
|
||||
88: continue
|
||||
86: for i, a := range hist {
|
||||
98: }
|
||||
99: }
|
||||
|
|
|
|||
|
|
@ -148,4 +148,4 @@
|
|||
86: for i, a := range hist {
|
||||
87: if a == 0 { //gdb-opt=(a,n,t)
|
||||
86: for i, a := range hist {
|
||||
98: }
|
||||
99: }
|
||||
|
|
|
|||
|
|
@ -120,4 +120,4 @@ t = 22
|
|||
87: if a == 0 { //gdb-opt=(a,n,t)
|
||||
88: continue
|
||||
86: for i, a := range hist {
|
||||
98: }
|
||||
99: }
|
||||
|
|
|
|||
|
|
@ -158,4 +158,4 @@ a = 0
|
|||
n = 9
|
||||
t = 22
|
||||
86: for i, a := range hist {
|
||||
98: }
|
||||
99: }
|
||||
|
|
|
|||
|
|
@ -94,5 +94,13 @@ func test() {
|
|||
}
|
||||
|
||||
func main() {
|
||||
growstack() // Use stack early to prevent growth during test, which confuses gdb
|
||||
test()
|
||||
}
|
||||
|
||||
var snk string
|
||||
|
||||
//go:noinline
|
||||
func growstack() {
|
||||
snk = fmt.Sprintf("%#v,%#v,%#v", 1, true, "cat")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@
|
|||
27: for _, p := range t.stuff {
|
||||
28: if isFoo(t, p) {
|
||||
29: return
|
||||
43: }
|
||||
44: }
|
||||
|
|
|
|||
|
|
@ -37,7 +37,15 @@ func isFoo(t *thing, b big) bool {
|
|||
}
|
||||
|
||||
func main() {
|
||||
growstack() // Use stack early to prevent growth during test, which confuses gdb
|
||||
t := &thing{name: "t", self: nil, next: nil, stuff: make([]big, 1)}
|
||||
u := thing{name: "u", self: t, next: t, stuff: make([]big, 1)}
|
||||
test(t, &u)
|
||||
}
|
||||
|
||||
var snk string
|
||||
|
||||
//go:noinline
|
||||
func growstack() {
|
||||
snk = fmt.Sprintf("%#v,%#v,%#v", 1, true, "cat")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@
|
|||
10: if err != nil {
|
||||
14: fmt.Println(pwd)
|
||||
15: }
|
||||
19: }
|
||||
20: }
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@
|
|||
10: if err != nil {
|
||||
14: fmt.Println(pwd)
|
||||
15: }
|
||||
19: }
|
||||
20: }
|
||||
|
|
|
|||
|
|
@ -15,5 +15,13 @@ func test() {
|
|||
}
|
||||
|
||||
func main() {
|
||||
growstack() // Use stack early to prevent growth during test, which confuses gdb
|
||||
test()
|
||||
}
|
||||
|
||||
var snk string
|
||||
|
||||
//go:noinline
|
||||
func growstack() {
|
||||
snk = fmt.Sprintf("%#v,%#v,%#v", 1, true, "cat")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,56 +1,56 @@
|
|||
./testdata/scopes.go
|
||||
21: func test() {
|
||||
22: x := id(0)
|
||||
23: y := id(0)
|
||||
24: fmt.Println(x)
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
29: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
30: fmt.Println(x, y)
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
33: a := y
|
||||
34: f1(a)
|
||||
36: b := 0
|
||||
37: f2(b)
|
||||
38: if gretbool() {
|
||||
39: c := 0
|
||||
40: f3(c)
|
||||
45: f5(b)
|
||||
47: f6(a)
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
33: a := y
|
||||
34: f1(a)
|
||||
36: b := 0
|
||||
37: f2(b)
|
||||
38: if gretbool() {
|
||||
42: c := 1.1
|
||||
43: f4(int(c))
|
||||
45: f5(b)
|
||||
47: f6(a)
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
52: j = id(1)
|
||||
53: f = id(2)
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
56: j += j * (j ^ 3) / 100
|
||||
57: if i == f {
|
||||
61: sleepytime()
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
56: j += j * (j ^ 3) / 100
|
||||
57: if i == f {
|
||||
61: sleepytime()
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
56: j += j * (j ^ 3) / 100
|
||||
57: if i == f {
|
||||
58: fmt.Println("foo")
|
||||
59: break
|
||||
63: helloworld()
|
||||
65: }
|
||||
14: }
|
||||
22: func test() {
|
||||
23: x := id(0)
|
||||
24: y := id(0)
|
||||
25: fmt.Println(x)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
30: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
31: fmt.Println(x, y)
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
34: a := y
|
||||
35: f1(a)
|
||||
37: b := 0
|
||||
38: f2(b)
|
||||
39: if gretbool() {
|
||||
40: c := 0
|
||||
41: f3(c)
|
||||
46: f5(b)
|
||||
48: f6(a)
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
34: a := y
|
||||
35: f1(a)
|
||||
37: b := 0
|
||||
38: f2(b)
|
||||
39: if gretbool() {
|
||||
43: c := 1.1
|
||||
44: f4(int(c))
|
||||
46: f5(b)
|
||||
48: f6(a)
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
53: j = id(1)
|
||||
54: f = id(2)
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
57: j += j * (j ^ 3) / 100
|
||||
58: if i == f {
|
||||
62: sleepytime()
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
57: j += j * (j ^ 3) / 100
|
||||
58: if i == f {
|
||||
62: sleepytime()
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
57: j += j * (j ^ 3) / 100
|
||||
58: if i == f {
|
||||
59: fmt.Println("foo")
|
||||
60: break
|
||||
64: helloworld()
|
||||
66: }
|
||||
15: }
|
||||
|
|
|
|||
|
|
@ -1,63 +1,63 @@
|
|||
./testdata/scopes.go
|
||||
21: func test() {
|
||||
22: x := id(0)
|
||||
23: y := id(0)
|
||||
24: fmt.Println(x)
|
||||
25: for i := x; i < 3; i++ {
|
||||
29: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
29: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
29: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
29: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
29: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
25: for i := x; i < 3; i++ {
|
||||
30: fmt.Println(x, y)
|
||||
29: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
30: fmt.Println(x, y)
|
||||
21: func test() {
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
34: f1(a)
|
||||
37: f2(b)
|
||||
38: if gretbool() {
|
||||
40: f3(c)
|
||||
45: f5(b)
|
||||
47: f6(a)
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
34: f1(a)
|
||||
37: f2(b)
|
||||
38: if gretbool() {
|
||||
43: f4(int(c))
|
||||
45: f5(b)
|
||||
47: f6(a)
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
52: j = id(1)
|
||||
53: f = id(2)
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
57: if i == f {
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
61: sleepytime()
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
57: if i == f {
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
61: sleepytime()
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
57: if i == f {
|
||||
58: fmt.Println("foo")
|
||||
63: helloworld()
|
||||
65: }
|
||||
14: }
|
||||
22: func test() {
|
||||
23: x := id(0)
|
||||
24: y := id(0)
|
||||
25: fmt.Println(x)
|
||||
26: for i := x; i < 3; i++ {
|
||||
30: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
30: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
30: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
30: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
30: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
31: fmt.Println(x, y)
|
||||
30: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
31: fmt.Println(x, y)
|
||||
22: func test() {
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
35: f1(a)
|
||||
38: f2(b)
|
||||
39: if gretbool() {
|
||||
41: f3(c)
|
||||
46: f5(b)
|
||||
48: f6(a)
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
35: f1(a)
|
||||
38: f2(b)
|
||||
39: if gretbool() {
|
||||
44: f4(int(c))
|
||||
46: f5(b)
|
||||
48: f6(a)
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
53: j = id(1)
|
||||
54: f = id(2)
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
58: if i == f {
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
62: sleepytime()
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
58: if i == f {
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
62: sleepytime()
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
58: if i == f {
|
||||
59: fmt.Println("foo")
|
||||
64: helloworld()
|
||||
66: }
|
||||
15: }
|
||||
|
|
|
|||
|
|
@ -1,64 +1,64 @@
|
|||
src/cmd/compile/internal/ssa/testdata/scopes.go
|
||||
21: func test() {
|
||||
22: x := id(0)
|
||||
23: y := id(0)
|
||||
24: fmt.Println(x)
|
||||
22: func test() {
|
||||
23: x := id(0)
|
||||
24: y := id(0)
|
||||
25: fmt.Println(x)
|
||||
0:
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
x = 0
|
||||
y = 0
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
x = 1
|
||||
y = 0
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
x = 4
|
||||
y = 1
|
||||
25: for i := x; i < 3; i++ {
|
||||
29: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
30: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
x = 0
|
||||
y = 5
|
||||
30: fmt.Println(x, y)
|
||||
31: fmt.Println(x, y)
|
||||
0: 5
|
||||
33: a := y
|
||||
34: f1(a)
|
||||
36: b := 0
|
||||
37: f2(b)
|
||||
38: if gretbool() {
|
||||
39: c := 0
|
||||
40: f3(c)
|
||||
45: f5(b)
|
||||
47: f6(a)
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
33: a := y
|
||||
34: f1(a)
|
||||
36: b := 0
|
||||
37: f2(b)
|
||||
38: if gretbool() {
|
||||
42: c := 1.1
|
||||
43: f4(int(c))
|
||||
45: f5(b)
|
||||
47: f6(a)
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
52: j = id(1)
|
||||
53: f = id(2)
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
56: j += j * (j ^ 3) / 100
|
||||
57: if i == f {
|
||||
61: sleepytime()
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
56: j += j * (j ^ 3) / 100
|
||||
57: if i == f {
|
||||
61: sleepytime()
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
56: j += j * (j ^ 3) / 100
|
||||
57: if i == f {
|
||||
58: fmt.Println("foo")
|
||||
59: break
|
||||
63: helloworld()
|
||||
65: }
|
||||
14: }
|
||||
34: a := y
|
||||
35: f1(a)
|
||||
37: b := 0
|
||||
38: f2(b)
|
||||
39: if gretbool() {
|
||||
40: c := 0
|
||||
41: f3(c)
|
||||
46: f5(b)
|
||||
48: f6(a)
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
34: a := y
|
||||
35: f1(a)
|
||||
37: b := 0
|
||||
38: f2(b)
|
||||
39: if gretbool() {
|
||||
43: c := 1.1
|
||||
44: f4(int(c))
|
||||
46: f5(b)
|
||||
48: f6(a)
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
53: j = id(1)
|
||||
54: f = id(2)
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
57: j += j * (j ^ 3) / 100
|
||||
58: if i == f {
|
||||
62: sleepytime()
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
57: j += j * (j ^ 3) / 100
|
||||
58: if i == f {
|
||||
62: sleepytime()
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
57: j += j * (j ^ 3) / 100
|
||||
58: if i == f {
|
||||
59: fmt.Println("foo")
|
||||
60: break
|
||||
64: helloworld()
|
||||
66: }
|
||||
15: }
|
||||
|
|
|
|||
|
|
@ -1,54 +1,54 @@
|
|||
src/cmd/compile/internal/ssa/testdata/scopes.go
|
||||
21: func test() {
|
||||
22: x := id(0)
|
||||
23: y := id(0)
|
||||
24: fmt.Println(x)
|
||||
22: func test() {
|
||||
23: x := id(0)
|
||||
24: y := id(0)
|
||||
25: fmt.Println(x)
|
||||
0:
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
x = 0
|
||||
y = 0
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
x = 1
|
||||
y = 0
|
||||
25: for i := x; i < 3; i++ {
|
||||
26: x := i * i
|
||||
27: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
27: x := i * i
|
||||
28: y += id(x) //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
x = 4
|
||||
y = 1
|
||||
25: for i := x; i < 3; i++ {
|
||||
30: fmt.Println(x, y)
|
||||
29: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
26: for i := x; i < 3; i++ {
|
||||
31: fmt.Println(x, y)
|
||||
30: y = x + y //gdb-dbg=(x,y)//gdb-opt=(x,y)
|
||||
x = 0
|
||||
y = 5
|
||||
0: 5
|
||||
34: f1(a)
|
||||
37: f2(b)
|
||||
38: if gretbool() {
|
||||
40: f3(c)
|
||||
45: f5(b)
|
||||
47: f6(a)
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
34: f1(a)
|
||||
37: f2(b)
|
||||
38: if gretbool() {
|
||||
43: f4(int(c))
|
||||
45: f5(b)
|
||||
47: f6(a)
|
||||
32: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
52: j = id(1)
|
||||
53: f = id(2)
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
57: if i == f {
|
||||
61: sleepytime()
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
57: if i == f {
|
||||
61: sleepytime()
|
||||
55: for i := 0; i <= 5; i++ {
|
||||
57: if i == f {
|
||||
58: fmt.Println("foo")
|
||||
63: helloworld()
|
||||
65: }
|
||||
14: }
|
||||
35: f1(a)
|
||||
38: f2(b)
|
||||
39: if gretbool() {
|
||||
41: f3(c)
|
||||
46: f5(b)
|
||||
48: f6(a)
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
35: f1(a)
|
||||
38: f2(b)
|
||||
39: if gretbool() {
|
||||
44: f4(int(c))
|
||||
46: f5(b)
|
||||
48: f6(a)
|
||||
33: for x := 0; x <= 1; x++ { // From delve scopetest.go
|
||||
53: j = id(1)
|
||||
54: f = id(2)
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
58: if i == f {
|
||||
62: sleepytime()
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
58: if i == f {
|
||||
62: sleepytime()
|
||||
56: for i := 0; i <= 5; i++ {
|
||||
58: if i == f {
|
||||
59: fmt.Println("foo")
|
||||
64: helloworld()
|
||||
66: }
|
||||
15: }
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
growstack() // Use stack early to prevent growth during test, which confuses gdb
|
||||
test()
|
||||
}
|
||||
|
||||
|
|
@ -97,3 +98,10 @@ func gretbool() bool {
|
|||
boolvar = !boolvar
|
||||
return x
|
||||
}
|
||||
|
||||
var sink string
|
||||
|
||||
//go:noinline
|
||||
func growstack() {
|
||||
sink = fmt.Sprintf("%#v,%#v,%#v", 1, true, "cat")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,6 +50,10 @@ type Value struct {
|
|||
// Use count. Each appearance in Value.Args and Block.Control counts once.
|
||||
Uses int32
|
||||
|
||||
// wasm: Value stays on the WebAssembly stack. This value will not get a "register" (WebAssembly variable)
|
||||
// nor a slot on Go stack, and the generation of this value is delayed to its use time.
|
||||
OnWasmStack bool
|
||||
|
||||
// Storage for the first three args
|
||||
argstorage [3]*Value
|
||||
}
|
||||
|
|
@ -200,6 +204,9 @@ func (v *Value) auxString() string {
|
|||
return ""
|
||||
}
|
||||
|
||||
// If/when midstack inlining is enabled (-l=4), the compiler gets both larger and slower.
|
||||
// Not-inlining this method is a help (*Value.reset and *Block.NewValue0 are similar).
|
||||
//go:noinline
|
||||
func (v *Value) AddArg(w *Value) {
|
||||
if v.Args == nil {
|
||||
v.resetArgs() // use argstorage
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ func writebarrier(f *Func) {
|
|||
// order values in store order
|
||||
b.Values = storeOrder(b.Values, sset, storeNumber)
|
||||
|
||||
firstSplit := true
|
||||
again:
|
||||
// find the start and end of the last contiguous WB store sequence.
|
||||
// a branch will be inserted there. values after it will be moved
|
||||
|
|
@ -268,6 +269,23 @@ func writebarrier(f *Func) {
|
|||
w.Block = bEnd
|
||||
}
|
||||
|
||||
// Preemption is unsafe between loading the write
|
||||
// barrier-enabled flag and performing the write
|
||||
// because that would allow a GC phase transition,
|
||||
// which would invalidate the flag. Remember the
|
||||
// conditional block so liveness analysis can disable
|
||||
// safe-points. This is somewhat subtle because we're
|
||||
// splitting b bottom-up.
|
||||
if firstSplit {
|
||||
// Add b itself.
|
||||
b.Func.WBLoads = append(b.Func.WBLoads, b)
|
||||
firstSplit = false
|
||||
} else {
|
||||
// We've already split b, so we just pushed a
|
||||
// write barrier test into bEnd.
|
||||
b.Func.WBLoads = append(b.Func.WBLoads, bEnd)
|
||||
}
|
||||
|
||||
// if we have more stores in this block, do this block again
|
||||
if nWBops > 0 {
|
||||
goto again
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ func ssaGenBlock(s *gc.SSAGenState, b, next *ssa.Block) {
|
|||
goToBlock(b.Succs[0].Block(), true)
|
||||
|
||||
case ssa.BlockIf:
|
||||
getReg32(s, b.Control)
|
||||
getValue32(s, b.Control)
|
||||
s.Prog(wasm.AI32Eqz)
|
||||
s.Prog(wasm.AIf)
|
||||
goToBlock(b.Succs[1].Block(), false)
|
||||
|
|
@ -113,6 +113,10 @@ func ssaGenBlock(s *gc.SSAGenState, b, next *ssa.Block) {
|
|||
|
||||
// Entry point for the next block. Used by the JMP in goToBlock.
|
||||
s.Prog(wasm.ARESUMEPOINT)
|
||||
|
||||
if s.OnWasmStackSkipped != 0 {
|
||||
panic("wasm: bad stack")
|
||||
}
|
||||
}
|
||||
|
||||
func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
|
||||
|
|
@ -124,33 +128,33 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
|
|||
s.Prog(wasm.ARESUMEPOINT)
|
||||
}
|
||||
if v.Op == ssa.OpWasmLoweredClosureCall {
|
||||
getReg64(s, v.Args[1])
|
||||
getValue64(s, v.Args[1])
|
||||
setReg(s, wasm.REG_CTXT)
|
||||
}
|
||||
if sym, ok := v.Aux.(*obj.LSym); ok {
|
||||
p := s.Prog(obj.ACALL)
|
||||
p.To = obj.Addr{Type: obj.TYPE_MEM, Name: obj.NAME_EXTERN, Sym: sym}
|
||||
} else {
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
p := s.Prog(obj.ACALL)
|
||||
p.To = obj.Addr{Type: obj.TYPE_NONE}
|
||||
}
|
||||
|
||||
case ssa.OpWasmLoweredMove:
|
||||
getReg32(s, v.Args[0])
|
||||
getReg32(s, v.Args[1])
|
||||
getValue32(s, v.Args[0])
|
||||
getValue32(s, v.Args[1])
|
||||
i32Const(s, int32(v.AuxInt))
|
||||
p := s.Prog(wasm.ACall)
|
||||
p.To = obj.Addr{Type: obj.TYPE_MEM, Name: obj.NAME_EXTERN, Sym: gc.WasmMove}
|
||||
|
||||
case ssa.OpWasmLoweredZero:
|
||||
getReg32(s, v.Args[0])
|
||||
getValue32(s, v.Args[0])
|
||||
i32Const(s, int32(v.AuxInt))
|
||||
p := s.Prog(wasm.ACall)
|
||||
p.To = obj.Addr{Type: obj.TYPE_MEM, Name: obj.NAME_EXTERN, Sym: gc.WasmZero}
|
||||
|
||||
case ssa.OpWasmLoweredNilCheck:
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
s.Prog(wasm.AI64Eqz)
|
||||
s.Prog(wasm.AIf)
|
||||
p := s.Prog(wasm.ACALLNORESUME)
|
||||
|
|
@ -161,14 +165,14 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
|
|||
}
|
||||
|
||||
case ssa.OpWasmLoweredWB:
|
||||
getReg64(s, v.Args[0])
|
||||
getReg64(s, v.Args[1])
|
||||
getValue64(s, v.Args[0])
|
||||
getValue64(s, v.Args[1])
|
||||
p := s.Prog(wasm.ACALLNORESUME) // TODO(neelance): If possible, turn this into a simple wasm.ACall).
|
||||
p.To = obj.Addr{Type: obj.TYPE_MEM, Name: obj.NAME_EXTERN, Sym: v.Aux.(*obj.LSym)}
|
||||
|
||||
case ssa.OpWasmI64Store8, ssa.OpWasmI64Store16, ssa.OpWasmI64Store32, ssa.OpWasmI64Store, ssa.OpWasmF32Store, ssa.OpWasmF64Store:
|
||||
getReg32(s, v.Args[0])
|
||||
getReg64(s, v.Args[1])
|
||||
getValue32(s, v.Args[0])
|
||||
getValue64(s, v.Args[1])
|
||||
if v.Op == ssa.OpWasmF32Store {
|
||||
s.Prog(wasm.AF32DemoteF64)
|
||||
}
|
||||
|
|
@ -177,7 +181,7 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
|
|||
|
||||
case ssa.OpStoreReg:
|
||||
getReg(s, wasm.REG_SP)
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
if v.Type.Etype == types.TFLOAT32 {
|
||||
s.Prog(wasm.AF32DemoteF64)
|
||||
}
|
||||
|
|
@ -188,7 +192,16 @@ func ssaGenValue(s *gc.SSAGenState, v *ssa.Value) {
|
|||
if v.Type.IsMemory() {
|
||||
return
|
||||
}
|
||||
if v.OnWasmStack {
|
||||
s.OnWasmStackSkipped++
|
||||
// If a Value is marked OnWasmStack, we don't generate the value and store it to a register now.
|
||||
// Instead, we delay the generation to when the value is used and then directly generate it on the WebAssembly stack.
|
||||
return
|
||||
}
|
||||
ssaGenValueOnStack(s, v)
|
||||
if s.OnWasmStackSkipped != 0 {
|
||||
panic("wasm: bad stack")
|
||||
}
|
||||
setReg(s, v.Reg())
|
||||
}
|
||||
}
|
||||
|
|
@ -237,22 +250,22 @@ func ssaGenValueOnStack(s *gc.SSAGenState, v *ssa.Value) {
|
|||
}
|
||||
|
||||
case ssa.OpWasmLoweredRound32F:
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
s.Prog(wasm.AF32DemoteF64)
|
||||
s.Prog(wasm.AF64PromoteF32)
|
||||
|
||||
case ssa.OpWasmLoweredConvert:
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
|
||||
case ssa.OpWasmSelect:
|
||||
getReg64(s, v.Args[0])
|
||||
getReg64(s, v.Args[1])
|
||||
getReg64(s, v.Args[2])
|
||||
getValue64(s, v.Args[0])
|
||||
getValue64(s, v.Args[1])
|
||||
getValue64(s, v.Args[2])
|
||||
s.Prog(wasm.AI32WrapI64)
|
||||
s.Prog(v.Op.Asm())
|
||||
|
||||
case ssa.OpWasmI64AddConst:
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
i64Const(s, v.AuxInt)
|
||||
s.Prog(v.Op.Asm())
|
||||
|
||||
|
|
@ -263,7 +276,7 @@ func ssaGenValueOnStack(s *gc.SSAGenState, v *ssa.Value) {
|
|||
f64Const(s, v.AuxFloat())
|
||||
|
||||
case ssa.OpWasmI64Load8U, ssa.OpWasmI64Load8S, ssa.OpWasmI64Load16U, ssa.OpWasmI64Load16S, ssa.OpWasmI64Load32U, ssa.OpWasmI64Load32S, ssa.OpWasmI64Load, ssa.OpWasmF32Load, ssa.OpWasmF64Load:
|
||||
getReg32(s, v.Args[0])
|
||||
getValue32(s, v.Args[0])
|
||||
p := s.Prog(v.Op.Asm())
|
||||
p.From = obj.Addr{Type: obj.TYPE_CONST, Offset: v.AuxInt}
|
||||
if v.Op == ssa.OpWasmF32Load {
|
||||
|
|
@ -271,24 +284,24 @@ func ssaGenValueOnStack(s *gc.SSAGenState, v *ssa.Value) {
|
|||
}
|
||||
|
||||
case ssa.OpWasmI64Eqz:
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
s.Prog(v.Op.Asm())
|
||||
s.Prog(wasm.AI64ExtendUI32)
|
||||
|
||||
case ssa.OpWasmI64Eq, ssa.OpWasmI64Ne, ssa.OpWasmI64LtS, ssa.OpWasmI64LtU, ssa.OpWasmI64GtS, ssa.OpWasmI64GtU, ssa.OpWasmI64LeS, ssa.OpWasmI64LeU, ssa.OpWasmI64GeS, ssa.OpWasmI64GeU, ssa.OpWasmF64Eq, ssa.OpWasmF64Ne, ssa.OpWasmF64Lt, ssa.OpWasmF64Gt, ssa.OpWasmF64Le, ssa.OpWasmF64Ge:
|
||||
getReg64(s, v.Args[0])
|
||||
getReg64(s, v.Args[1])
|
||||
getValue64(s, v.Args[0])
|
||||
getValue64(s, v.Args[1])
|
||||
s.Prog(v.Op.Asm())
|
||||
s.Prog(wasm.AI64ExtendUI32)
|
||||
|
||||
case ssa.OpWasmI64Add, ssa.OpWasmI64Sub, ssa.OpWasmI64Mul, ssa.OpWasmI64DivU, ssa.OpWasmI64RemS, ssa.OpWasmI64RemU, ssa.OpWasmI64And, ssa.OpWasmI64Or, ssa.OpWasmI64Xor, ssa.OpWasmI64Shl, ssa.OpWasmI64ShrS, ssa.OpWasmI64ShrU, ssa.OpWasmF64Add, ssa.OpWasmF64Sub, ssa.OpWasmF64Mul, ssa.OpWasmF64Div:
|
||||
getReg64(s, v.Args[0])
|
||||
getReg64(s, v.Args[1])
|
||||
getValue64(s, v.Args[0])
|
||||
getValue64(s, v.Args[1])
|
||||
s.Prog(v.Op.Asm())
|
||||
|
||||
case ssa.OpWasmI64DivS:
|
||||
getReg64(s, v.Args[0])
|
||||
getReg64(s, v.Args[1])
|
||||
getValue64(s, v.Args[0])
|
||||
getValue64(s, v.Args[1])
|
||||
if v.Type.Size() == 8 {
|
||||
// Division of int64 needs helper function wasmDiv to handle the MinInt64 / -1 case.
|
||||
p := s.Prog(wasm.ACall)
|
||||
|
|
@ -298,17 +311,17 @@ func ssaGenValueOnStack(s *gc.SSAGenState, v *ssa.Value) {
|
|||
s.Prog(wasm.AI64DivS)
|
||||
|
||||
case ssa.OpWasmI64TruncSF64:
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
p := s.Prog(wasm.ACall)
|
||||
p.To = obj.Addr{Type: obj.TYPE_MEM, Name: obj.NAME_EXTERN, Sym: gc.WasmTruncS}
|
||||
|
||||
case ssa.OpWasmI64TruncUF64:
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
p := s.Prog(wasm.ACall)
|
||||
p.To = obj.Addr{Type: obj.TYPE_MEM, Name: obj.NAME_EXTERN, Sym: gc.WasmTruncU}
|
||||
|
||||
case ssa.OpWasmF64Neg, ssa.OpWasmF64ConvertSI64, ssa.OpWasmF64ConvertUI64:
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
s.Prog(v.Op.Asm())
|
||||
|
||||
case ssa.OpLoadReg:
|
||||
|
|
@ -319,7 +332,7 @@ func ssaGenValueOnStack(s *gc.SSAGenState, v *ssa.Value) {
|
|||
}
|
||||
|
||||
case ssa.OpCopy:
|
||||
getReg64(s, v.Args[0])
|
||||
getValue64(s, v.Args[0])
|
||||
|
||||
default:
|
||||
v.Fatalf("unexpected op: %s", v.Op)
|
||||
|
|
@ -327,7 +340,14 @@ func ssaGenValueOnStack(s *gc.SSAGenState, v *ssa.Value) {
|
|||
}
|
||||
}
|
||||
|
||||
func getReg32(s *gc.SSAGenState, v *ssa.Value) {
|
||||
func getValue32(s *gc.SSAGenState, v *ssa.Value) {
|
||||
if v.OnWasmStack {
|
||||
s.OnWasmStackSkipped--
|
||||
ssaGenValueOnStack(s, v)
|
||||
s.Prog(wasm.AI32WrapI64)
|
||||
return
|
||||
}
|
||||
|
||||
reg := v.Reg()
|
||||
getReg(s, reg)
|
||||
if reg != wasm.REG_SP {
|
||||
|
|
@ -335,7 +355,13 @@ func getReg32(s *gc.SSAGenState, v *ssa.Value) {
|
|||
}
|
||||
}
|
||||
|
||||
func getReg64(s *gc.SSAGenState, v *ssa.Value) {
|
||||
func getValue64(s *gc.SSAGenState, v *ssa.Value) {
|
||||
if v.OnWasmStack {
|
||||
s.OnWasmStackSkipped--
|
||||
ssaGenValueOnStack(s, v)
|
||||
return
|
||||
}
|
||||
|
||||
reg := v.Reg()
|
||||
getReg(s, reg)
|
||||
if reg == wasm.REG_SP {
|
||||
|
|
|
|||
|
|
@ -5139,6 +5139,49 @@ func TestUpxCompression(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
// Test that Go binaries can be run under QEMU in user-emulation mode
|
||||
// (See issue #13024).
|
||||
func TestQEMUUserMode(t *testing.T) {
|
||||
if testing.Short() && testenv.Builder() == "" {
|
||||
t.Skipf("skipping in -short mode on non-builder")
|
||||
}
|
||||
|
||||
testArchs := []struct {
|
||||
g, qemu string
|
||||
}{
|
||||
{"arm", "arm"},
|
||||
{"arm64", "aarch64"},
|
||||
}
|
||||
|
||||
tg := testgo(t)
|
||||
defer tg.cleanup()
|
||||
tg.tempFile("main.go", `package main; import "fmt"; func main() { fmt.Print("hello qemu-user") }`)
|
||||
tg.parallel()
|
||||
src, obj := tg.path("main.go"), tg.path("main")
|
||||
|
||||
for _, arch := range testArchs {
|
||||
out, err := exec.Command("qemu-"+arch.qemu, "--version").CombinedOutput()
|
||||
if err != nil {
|
||||
t.Logf("Skipping %s test (qemu-%s not available)", arch.g, arch.qemu)
|
||||
continue
|
||||
}
|
||||
|
||||
tg.setenv("GOARCH", arch.g)
|
||||
tg.run("build", "-o", obj, src)
|
||||
|
||||
out, err = exec.Command("qemu-"+arch.qemu, obj).CombinedOutput()
|
||||
if err != nil {
|
||||
t.Logf("qemu-%s output:\n%s\n", arch.qemu, out)
|
||||
t.Errorf("qemu-%s failed with %v", arch.qemu, err)
|
||||
continue
|
||||
}
|
||||
if want := "hello qemu-user"; string(out) != want {
|
||||
t.Errorf("bad output from qemu-%s:\ngot %s; want %s", arch.qemu, out, want)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestGOTMPDIR(t *testing.T) {
|
||||
tg := testgo(t)
|
||||
defer tg.cleanup()
|
||||
|
|
@ -6209,3 +6252,51 @@ func TestNoRelativeTmpdir(t *testing.T) {
|
|||
tg.grepStderr("relative tmpdir", "wrong error")
|
||||
}
|
||||
}
|
||||
|
||||
// Issue 24704.
|
||||
func TestLinkerTmpDirIsDeleted(t *testing.T) {
|
||||
if !canCgo {
|
||||
t.Skip("skipping because cgo not enabled")
|
||||
}
|
||||
|
||||
tg := testgo(t)
|
||||
defer tg.cleanup()
|
||||
tg.parallel()
|
||||
tg.tempFile("a.go", `package main; import "C"; func main() {}`)
|
||||
tg.run("build", "-ldflags", "-v", "-o", os.DevNull, tg.path("a.go"))
|
||||
// Find line that has "host link:" in linker output.
|
||||
stderr := tg.getStderr()
|
||||
var hostLinkLine string
|
||||
for _, line := range strings.Split(stderr, "\n") {
|
||||
if !strings.Contains(line, "host link:") {
|
||||
continue
|
||||
}
|
||||
hostLinkLine = line
|
||||
break
|
||||
}
|
||||
if hostLinkLine == "" {
|
||||
t.Fatal(`fail to find with "host link:" string in linker output`)
|
||||
}
|
||||
// Find parameter, like "/tmp/go-link-408556474/go.o" inside of
|
||||
// "host link:" line, and extract temp directory /tmp/go-link-408556474
|
||||
// out of it.
|
||||
tmpdir := hostLinkLine
|
||||
i := strings.Index(tmpdir, `go.o"`)
|
||||
if i == -1 {
|
||||
t.Fatalf(`fail to find "go.o" in "host link:" line %q`, hostLinkLine)
|
||||
}
|
||||
tmpdir = tmpdir[:i-1]
|
||||
i = strings.LastIndex(tmpdir, `"`)
|
||||
if i == -1 {
|
||||
t.Fatalf(`fail to find " in "host link:" line %q`, hostLinkLine)
|
||||
}
|
||||
tmpdir = tmpdir[i+1:]
|
||||
// Verify that temp directory has been removed.
|
||||
_, err := os.Stat(tmpdir)
|
||||
if err == nil {
|
||||
t.Fatalf("temp directory %q has not been removed", tmpdir)
|
||||
}
|
||||
if !os.IsNotExist(err) {
|
||||
t.Fatalf("Stat(%q) returns unexpected error: %v", tmpdir, err)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1005,7 +1005,7 @@ func (p *Package) load(stk *ImportStack, bp *build.Package, err error) {
|
|||
|
||||
// Cgo translation adds imports of "runtime/cgo" and "syscall",
|
||||
// except for certain packages, to avoid circular dependencies.
|
||||
if p.UsesCgo() && (!p.Standard || !cgoExclude[p.ImportPath]) {
|
||||
if p.UsesCgo() && (!p.Standard || !cgoExclude[p.ImportPath]) && cfg.BuildContext.Compiler != "gccgo" {
|
||||
addImport("runtime/cgo")
|
||||
}
|
||||
if p.UsesCgo() && (!p.Standard || !cgoSyscallExclude[p.ImportPath]) {
|
||||
|
|
@ -1014,7 +1014,9 @@ func (p *Package) load(stk *ImportStack, bp *build.Package, err error) {
|
|||
|
||||
// SWIG adds imports of some standard packages.
|
||||
if p.UsesSwig() {
|
||||
addImport("runtime/cgo")
|
||||
if cfg.BuildContext.Compiler != "gccgo" {
|
||||
addImport("runtime/cgo")
|
||||
}
|
||||
addImport("syscall")
|
||||
addImport("sync")
|
||||
|
||||
|
|
@ -1220,7 +1222,7 @@ func LinkerDeps(p *Package) []string {
|
|||
deps := []string{"runtime"}
|
||||
|
||||
// External linking mode forces an import of runtime/cgo.
|
||||
if externalLinkingForced(p) {
|
||||
if externalLinkingForced(p) && cfg.BuildContext.Compiler != "gccgo" {
|
||||
deps = append(deps, "runtime/cgo")
|
||||
}
|
||||
// On ARM with GOARM=5, it forces an import of math, for soft floating point.
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ func vetFlags(args []string) (passToVet, packageNames []string) {
|
|||
}
|
||||
switch f.Name {
|
||||
// Flags known to the build but not to vet, so must be dropped.
|
||||
case "x", "n", "vettool":
|
||||
case "x", "n", "vettool", "compiler":
|
||||
if extraWord {
|
||||
args = append(args[:i], args[i+2:]...)
|
||||
extraWord = false
|
||||
|
|
|
|||
|
|
@ -743,6 +743,7 @@ type vetConfig struct {
|
|||
GoFiles []string
|
||||
ImportMap map[string]string
|
||||
PackageFile map[string]string
|
||||
Standard map[string]bool
|
||||
ImportPath string
|
||||
|
||||
SucceedOnTypecheckFailure bool
|
||||
|
|
@ -760,6 +761,7 @@ func buildVetConfig(a *Action, gofiles []string) {
|
|||
ImportPath: a.Package.ImportPath,
|
||||
ImportMap: make(map[string]string),
|
||||
PackageFile: make(map[string]string),
|
||||
Standard: make(map[string]bool),
|
||||
}
|
||||
a.vetCfg = vcfg
|
||||
for i, raw := range a.Package.Internal.RawImports {
|
||||
|
|
@ -776,7 +778,7 @@ func buildVetConfig(a *Action, gofiles []string) {
|
|||
|
||||
for _, a1 := range a.Deps {
|
||||
p1 := a1.Package
|
||||
if p1 == nil || p1.ImportPath == "" || a1.built == "" {
|
||||
if p1 == nil || p1.ImportPath == "" {
|
||||
continue
|
||||
}
|
||||
// Add import mapping if needed
|
||||
|
|
@ -784,7 +786,12 @@ func buildVetConfig(a *Action, gofiles []string) {
|
|||
if !vcfgMapped[p1.ImportPath] {
|
||||
vcfg.ImportMap[p1.ImportPath] = p1.ImportPath
|
||||
}
|
||||
vcfg.PackageFile[p1.ImportPath] = a1.built
|
||||
if a1.built != "" {
|
||||
vcfg.PackageFile[p1.ImportPath] = a1.built
|
||||
}
|
||||
if p1.Standard {
|
||||
vcfg.Standard[p1.ImportPath] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -812,7 +819,10 @@ func (b *Builder) vet(a *Action) error {
|
|||
if vcfg.ImportMap["fmt"] == "" {
|
||||
a1 := a.Deps[1]
|
||||
vcfg.ImportMap["fmt"] = "fmt"
|
||||
vcfg.PackageFile["fmt"] = a1.built
|
||||
if a1.built != "" {
|
||||
vcfg.PackageFile["fmt"] = a1.built
|
||||
}
|
||||
vcfg.Standard["fmt"] = true
|
||||
}
|
||||
|
||||
// During go test, ignore type-checking failures during vet.
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ func init() {
|
|||
obj.RegisterRegister(obj.RBaseARM, MAXREG, rconv)
|
||||
obj.RegisterOpcode(obj.ABaseARM, Anames)
|
||||
obj.RegisterRegisterList(obj.RegListARMLo, obj.RegListARMHi, rlconv)
|
||||
obj.RegisterOpSuffix("arm", obj.CConvARM)
|
||||
}
|
||||
|
||||
func rconv(r int) string {
|
||||
|
|
|
|||
|
|
@ -768,13 +768,7 @@ func (c *ctxt5) stacksplit(p *obj.Prog, framesize int32) *obj.Prog {
|
|||
spfix.As = obj.ANOP
|
||||
spfix.Spadj = -framesize
|
||||
|
||||
pcdata := obj.Appendp(spfix, c.newprog)
|
||||
pcdata.Pos = c.cursym.Func.Text.Pos
|
||||
pcdata.As = obj.APCDATA
|
||||
pcdata.From.Type = obj.TYPE_CONST
|
||||
pcdata.From.Offset = objabi.PCDATA_StackMapIndex
|
||||
pcdata.To.Type = obj.TYPE_CONST
|
||||
pcdata.To.Offset = -1 // pcdata starts at -1 at function entry
|
||||
pcdata := c.ctxt.EmitEntryLiveness(c.cursym, spfix, c.newprog)
|
||||
|
||||
// MOVW LR, R3
|
||||
movw := obj.Appendp(pcdata, c.newprog)
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ func init() {
|
|||
obj.RegisterRegister(obj.RBaseARM64, REG_SPECIAL+1024, rconv)
|
||||
obj.RegisterOpcode(obj.ABaseARM64, Anames)
|
||||
obj.RegisterRegisterList(obj.RegListARM64Lo, obj.RegListARM64Hi, rlconv)
|
||||
obj.RegisterOpSuffix("arm64", obj.CConvARM)
|
||||
}
|
||||
|
||||
func arrange(a int) string {
|
||||
|
|
|
|||
|
|
@ -167,13 +167,7 @@ func (c *ctxt7) stacksplit(p *obj.Prog, framesize int32) *obj.Prog {
|
|||
spfix.As = obj.ANOP
|
||||
spfix.Spadj = -framesize
|
||||
|
||||
pcdata := obj.Appendp(spfix, c.newprog)
|
||||
pcdata.Pos = c.cursym.Func.Text.Pos
|
||||
pcdata.As = obj.APCDATA
|
||||
pcdata.From.Type = obj.TYPE_CONST
|
||||
pcdata.From.Offset = objabi.PCDATA_StackMapIndex
|
||||
pcdata.To.Type = obj.TYPE_CONST
|
||||
pcdata.To.Offset = -1 // pcdata starts at -1 at function entry
|
||||
pcdata := c.ctxt.EmitEntryLiveness(c.cursym, spfix, c.newprog)
|
||||
|
||||
// MOV LR, R3
|
||||
movlr := obj.Appendp(pcdata, c.newprog)
|
||||
|
|
|
|||
|
|
@ -138,13 +138,16 @@ import (
|
|||
// offset = second register
|
||||
//
|
||||
// [reg, reg, reg-reg]
|
||||
// Register list for ARM and ARM64.
|
||||
// Register list for ARM, ARM64, 386/AMD64.
|
||||
// Encoding:
|
||||
// type = TYPE_REGLIST
|
||||
// On ARM:
|
||||
// offset = bit mask of registers in list; R0 is low bit.
|
||||
// On ARM64:
|
||||
// offset = register count (Q:size) | arrangement (opcode) | first register
|
||||
// On 386/AMD64:
|
||||
// reg = range low register
|
||||
// offset = 2 packed registers + kind tag (see x86.EncodeRegisterRange)
|
||||
//
|
||||
// reg, reg
|
||||
// Register pair for ARM.
|
||||
|
|
@ -282,7 +285,7 @@ type Prog struct {
|
|||
RegTo2 int16 // 2nd destination operand
|
||||
Mark uint16 // bitmask of arch-specific items
|
||||
Optab uint16 // arch-specific opcode index
|
||||
Scond uint8 // condition bits for conditional instruction (e.g., on ARM)
|
||||
Scond uint8 // bits that describe instruction suffixes (e.g. ARM conditions)
|
||||
Back uint8 // for x86 back end: backwards branch state
|
||||
Ft uint8 // for x86 back end: type index of Prog.From
|
||||
Tt uint8 // for x86 back end: type index of Prog.To
|
||||
|
|
@ -401,6 +404,7 @@ type FuncInfo struct {
|
|||
|
||||
GCArgs LSym
|
||||
GCLocals LSym
|
||||
GCRegs LSym
|
||||
}
|
||||
|
||||
// Attribute is a set of symbol attributes.
|
||||
|
|
|
|||
|
|
@ -790,6 +790,8 @@ func (c *ctxt0) stacksplit(p *obj.Prog, framesize int32) *obj.Prog {
|
|||
p.Mark |= LABEL
|
||||
}
|
||||
|
||||
p = c.ctxt.EmitEntryLiveness(c.cursym, p, c.newprog)
|
||||
|
||||
// JAL runtime.morestack(SB)
|
||||
p = obj.Appendp(p, c.newprog)
|
||||
|
||||
|
|
|
|||
|
|
@ -159,6 +159,9 @@ func (ctxt *Link) InitTextSym(s *LSym, flag int) {
|
|||
gclocals := &s.Func.GCLocals
|
||||
gclocals.Set(AttrDuplicateOK, true)
|
||||
gclocals.Type = objabi.SRODATA
|
||||
gcregs := &s.Func.GCRegs
|
||||
gcregs.Set(AttrDuplicateOK, true)
|
||||
gcregs.Type = objabi.SRODATA
|
||||
}
|
||||
|
||||
func (ctxt *Link) Globl(s *LSym, size int64, flag int) {
|
||||
|
|
@ -190,3 +193,27 @@ func (ctxt *Link) Globl(s *LSym, size int64, flag int) {
|
|||
s.Type = objabi.STLSBSS
|
||||
}
|
||||
}
|
||||
|
||||
// EmitEntryLiveness generates PCDATA Progs after p to switch to the
|
||||
// liveness map active at the entry of function s. It returns the last
|
||||
// Prog generated.
|
||||
func (ctxt *Link) EmitEntryLiveness(s *LSym, p *Prog, newprog ProgAlloc) *Prog {
|
||||
pcdata := Appendp(p, newprog)
|
||||
pcdata.Pos = s.Func.Text.Pos
|
||||
pcdata.As = APCDATA
|
||||
pcdata.From.Type = TYPE_CONST
|
||||
pcdata.From.Offset = objabi.PCDATA_StackMapIndex
|
||||
pcdata.To.Type = TYPE_CONST
|
||||
pcdata.To.Offset = -1 // pcdata starts at -1 at function entry
|
||||
|
||||
// Same, with register map.
|
||||
pcdata = Appendp(pcdata, newprog)
|
||||
pcdata.Pos = s.Func.Text.Pos
|
||||
pcdata.As = APCDATA
|
||||
pcdata.From.Type = TYPE_CONST
|
||||
pcdata.From.Offset = objabi.PCDATA_RegMapIndex
|
||||
pcdata.To.Type = TYPE_CONST
|
||||
pcdata.To.Offset = -1
|
||||
|
||||
return pcdata
|
||||
}
|
||||
|
|
|
|||
|
|
@ -966,6 +966,8 @@ func (c *ctxt9) stacksplit(p *obj.Prog, framesize int32) *obj.Prog {
|
|||
q.Pcond = p
|
||||
}
|
||||
|
||||
p = c.ctxt.EmitEntryLiveness(c.cursym, p, c.newprog)
|
||||
|
||||
var morestacksym *obj.LSym
|
||||
if c.cursym.CFunc() {
|
||||
morestacksym = c.ctxt.Lookup("runtime.morestackc")
|
||||
|
|
|
|||
|
|
@ -679,13 +679,7 @@ func (c *ctxtz) stacksplitPost(p *obj.Prog, pPre *obj.Prog, pPreempt *obj.Prog,
|
|||
spfix.As = obj.ANOP
|
||||
spfix.Spadj = -framesize
|
||||
|
||||
pcdata := obj.Appendp(spfix, c.newprog)
|
||||
pcdata.Pos = c.cursym.Func.Text.Pos
|
||||
pcdata.As = obj.APCDATA
|
||||
pcdata.From.Type = obj.TYPE_CONST
|
||||
pcdata.From.Offset = objabi.PCDATA_StackMapIndex
|
||||
pcdata.To.Type = obj.TYPE_CONST
|
||||
pcdata.To.Offset = -1 // pcdata starts at -1 at function entry
|
||||
pcdata := c.ctxt.EmitEntryLiveness(c.cursym, spfix, c.newprog)
|
||||
|
||||
// MOVD LR, R5
|
||||
p = obj.Appendp(pcdata, c.newprog)
|
||||
|
|
|
|||
|
|
@ -72,11 +72,26 @@ const (
|
|||
C_SCOND_XOR = 14
|
||||
)
|
||||
|
||||
// CConv formats ARM condition codes.
|
||||
// CConv formats opcode suffix bits (Prog.Scond).
|
||||
func CConv(s uint8) string {
|
||||
if s == 0 {
|
||||
return ""
|
||||
}
|
||||
for i := range opSuffixSpace {
|
||||
sset := &opSuffixSpace[i]
|
||||
if sset.arch == objabi.GOARCH {
|
||||
return sset.cconv(s)
|
||||
}
|
||||
}
|
||||
return fmt.Sprintf("SC???%d", s)
|
||||
}
|
||||
|
||||
// CConvARM formats ARM opcode suffix bits (mostly condition codes).
|
||||
func CConvARM(s uint8) string {
|
||||
// TODO: could be great to move suffix-related things into
|
||||
// ARM asm backends some day.
|
||||
// obj/x86 can be used as an example.
|
||||
|
||||
sc := armCondCode[(s&C_SCOND)^C_SCOND_XOR]
|
||||
if s&C_SBIT != 0 {
|
||||
sc += ".S"
|
||||
|
|
@ -368,6 +383,30 @@ func offConv(off int64) string {
|
|||
return fmt.Sprintf("%+d", off)
|
||||
}
|
||||
|
||||
// opSuffixSet is like regListSet, but for opcode suffixes.
|
||||
//
|
||||
// Unlike some other similar structures, uint8 space is not
|
||||
// divided by it's own values set (because the're only 256 of them).
|
||||
// Instead, every arch may interpret/format all 8 bits as they like,
|
||||
// as long as they register proper cconv function for it.
|
||||
type opSuffixSet struct {
|
||||
arch string
|
||||
cconv func(suffix uint8) string
|
||||
}
|
||||
|
||||
var opSuffixSpace []opSuffixSet
|
||||
|
||||
// RegisterOpSuffix assigns cconv function for formatting opcode suffixes
|
||||
// when compiling for GOARCH=arch.
|
||||
//
|
||||
// cconv is never called with 0 argument.
|
||||
func RegisterOpSuffix(arch string, cconv func(uint8) string) {
|
||||
opSuffixSpace = append(opSuffixSpace, opSuffixSet{
|
||||
arch: arch,
|
||||
cconv: cconv,
|
||||
})
|
||||
}
|
||||
|
||||
type regSet struct {
|
||||
lo int
|
||||
hi int
|
||||
|
|
@ -434,6 +473,10 @@ const (
|
|||
// arm64 uses the 60th bit to differentiate from other archs
|
||||
RegListARM64Lo = 1 << 60
|
||||
RegListARM64Hi = 1<<61 - 1
|
||||
|
||||
// x86 uses the 61th bit to differentiate from other archs
|
||||
RegListX86Lo = 1 << 61
|
||||
RegListX86Hi = 1<<62 - 1
|
||||
)
|
||||
|
||||
// RegisterRegisterList binds a pretty-printer (RLconv) for register list
|
||||
|
|
|
|||
|
|
@ -94,6 +94,15 @@ const (
|
|||
REG_M6
|
||||
REG_M7
|
||||
|
||||
REG_K0
|
||||
REG_K1
|
||||
REG_K2
|
||||
REG_K3
|
||||
REG_K4
|
||||
REG_K5
|
||||
REG_K6
|
||||
REG_K7
|
||||
|
||||
REG_X0
|
||||
REG_X1
|
||||
REG_X2
|
||||
|
|
@ -110,6 +119,22 @@ const (
|
|||
REG_X13
|
||||
REG_X14
|
||||
REG_X15
|
||||
REG_X16
|
||||
REG_X17
|
||||
REG_X18
|
||||
REG_X19
|
||||
REG_X20
|
||||
REG_X21
|
||||
REG_X22
|
||||
REG_X23
|
||||
REG_X24
|
||||
REG_X25
|
||||
REG_X26
|
||||
REG_X27
|
||||
REG_X28
|
||||
REG_X29
|
||||
REG_X30
|
||||
REG_X31
|
||||
|
||||
REG_Y0
|
||||
REG_Y1
|
||||
|
|
@ -127,6 +152,55 @@ const (
|
|||
REG_Y13
|
||||
REG_Y14
|
||||
REG_Y15
|
||||
REG_Y16
|
||||
REG_Y17
|
||||
REG_Y18
|
||||
REG_Y19
|
||||
REG_Y20
|
||||
REG_Y21
|
||||
REG_Y22
|
||||
REG_Y23
|
||||
REG_Y24
|
||||
REG_Y25
|
||||
REG_Y26
|
||||
REG_Y27
|
||||
REG_Y28
|
||||
REG_Y29
|
||||
REG_Y30
|
||||
REG_Y31
|
||||
|
||||
REG_Z0
|
||||
REG_Z1
|
||||
REG_Z2
|
||||
REG_Z3
|
||||
REG_Z4
|
||||
REG_Z5
|
||||
REG_Z6
|
||||
REG_Z7
|
||||
REG_Z8
|
||||
REG_Z9
|
||||
REG_Z10
|
||||
REG_Z11
|
||||
REG_Z12
|
||||
REG_Z13
|
||||
REG_Z14
|
||||
REG_Z15
|
||||
REG_Z16
|
||||
REG_Z17
|
||||
REG_Z18
|
||||
REG_Z19
|
||||
REG_Z20
|
||||
REG_Z21
|
||||
REG_Z22
|
||||
REG_Z23
|
||||
REG_Z24
|
||||
REG_Z25
|
||||
REG_Z26
|
||||
REG_Z27
|
||||
REG_Z28
|
||||
REG_Z29
|
||||
REG_Z30
|
||||
REG_Z31
|
||||
|
||||
REG_CS
|
||||
REG_SS
|
||||
|
|
@ -221,15 +295,16 @@ var AMD64DWARFRegisters = map[int16]int16{
|
|||
REG_R14: 14,
|
||||
REG_R15: 15,
|
||||
// 16 is "Return Address RA", whatever that is.
|
||||
// XMM registers. %xmmN => XN.
|
||||
REG_X0: 17,
|
||||
REG_X1: 18,
|
||||
REG_X2: 19,
|
||||
REG_X3: 20,
|
||||
REG_X4: 21,
|
||||
REG_X5: 22,
|
||||
REG_X6: 23,
|
||||
REG_X7: 24,
|
||||
// 17-24 vector registers (X/Y/Z).
|
||||
REG_X0: 17,
|
||||
REG_X1: 18,
|
||||
REG_X2: 19,
|
||||
REG_X3: 20,
|
||||
REG_X4: 21,
|
||||
REG_X5: 22,
|
||||
REG_X6: 23,
|
||||
REG_X7: 24,
|
||||
// 25-32 extended vector registers (X/Y/Z).
|
||||
REG_X8: 25,
|
||||
REG_X9: 26,
|
||||
REG_X10: 27,
|
||||
|
|
@ -267,6 +342,34 @@ var AMD64DWARFRegisters = map[int16]int16{
|
|||
REG_TR: 62,
|
||||
REG_LDTR: 63,
|
||||
// 64-66 are mxcsr, fcw, fsw, which don't have names.
|
||||
|
||||
// 67-82 upper vector registers (X/Y/Z).
|
||||
REG_X16: 67,
|
||||
REG_X17: 68,
|
||||
REG_X18: 69,
|
||||
REG_X19: 70,
|
||||
REG_X20: 71,
|
||||
REG_X21: 72,
|
||||
REG_X22: 73,
|
||||
REG_X23: 74,
|
||||
REG_X24: 75,
|
||||
REG_X25: 76,
|
||||
REG_X26: 77,
|
||||
REG_X27: 78,
|
||||
REG_X28: 79,
|
||||
REG_X29: 80,
|
||||
REG_X30: 81,
|
||||
REG_X31: 82,
|
||||
|
||||
// 118-125 vector mask registers. %kN => KN.
|
||||
REG_K0: 118,
|
||||
REG_K1: 119,
|
||||
REG_K2: 120,
|
||||
REG_K3: 121,
|
||||
REG_K4: 122,
|
||||
REG_K5: 123,
|
||||
REG_K6: 124,
|
||||
REG_K7: 125,
|
||||
}
|
||||
|
||||
// https://www.uclibc.org/docs/psABI-i386.pdf, table 2.14
|
||||
|
|
|
|||
|
|
@ -387,6 +387,57 @@ const (
|
|||
AJPC // parity clear
|
||||
AJPL // sign bit clear (positive)
|
||||
AJPS // parity set
|
||||
AKADDB
|
||||
AKADDD
|
||||
AKADDQ
|
||||
AKADDW
|
||||
AKANDB
|
||||
AKANDD
|
||||
AKANDNB
|
||||
AKANDND
|
||||
AKANDNQ
|
||||
AKANDNW
|
||||
AKANDQ
|
||||
AKANDW
|
||||
AKMOVB
|
||||
AKMOVD
|
||||
AKMOVQ
|
||||
AKMOVW
|
||||
AKNOTB
|
||||
AKNOTD
|
||||
AKNOTQ
|
||||
AKNOTW
|
||||
AKORB
|
||||
AKORD
|
||||
AKORQ
|
||||
AKORTESTB
|
||||
AKORTESTD
|
||||
AKORTESTQ
|
||||
AKORTESTW
|
||||
AKORW
|
||||
AKSHIFTLB
|
||||
AKSHIFTLD
|
||||
AKSHIFTLQ
|
||||
AKSHIFTLW
|
||||
AKSHIFTRB
|
||||
AKSHIFTRD
|
||||
AKSHIFTRQ
|
||||
AKSHIFTRW
|
||||
AKTESTB
|
||||
AKTESTD
|
||||
AKTESTQ
|
||||
AKTESTW
|
||||
AKUNPCKBW
|
||||
AKUNPCKDQ
|
||||
AKUNPCKWD
|
||||
AKXNORB
|
||||
AKXNORD
|
||||
AKXNORQ
|
||||
AKXNORW
|
||||
AKXORB
|
||||
AKXORD
|
||||
AKXORQ
|
||||
AKXORW
|
||||
ALAHF
|
||||
ALARL
|
||||
ALARQ
|
||||
|
|
@ -838,6 +889,10 @@ const (
|
|||
AUNPCKHPS
|
||||
AUNPCKLPD
|
||||
AUNPCKLPS
|
||||
AV4FMADDPS
|
||||
AV4FMADDSS
|
||||
AV4FNMADDPS
|
||||
AV4FNMADDSS
|
||||
AVADDPD
|
||||
AVADDPS
|
||||
AVADDSD
|
||||
|
|
@ -850,16 +905,30 @@ const (
|
|||
AVAESENCLAST
|
||||
AVAESIMC
|
||||
AVAESKEYGENASSIST
|
||||
AVALIGND
|
||||
AVALIGNQ
|
||||
AVANDNPD
|
||||
AVANDNPS
|
||||
AVANDPD
|
||||
AVANDPS
|
||||
AVBLENDMPD
|
||||
AVBLENDMPS
|
||||
AVBLENDPD
|
||||
AVBLENDPS
|
||||
AVBLENDVPD
|
||||
AVBLENDVPS
|
||||
AVBROADCASTF128
|
||||
AVBROADCASTF32X2
|
||||
AVBROADCASTF32X4
|
||||
AVBROADCASTF32X8
|
||||
AVBROADCASTF64X2
|
||||
AVBROADCASTF64X4
|
||||
AVBROADCASTI128
|
||||
AVBROADCASTI32X2
|
||||
AVBROADCASTI32X4
|
||||
AVBROADCASTI32X8
|
||||
AVBROADCASTI64X2
|
||||
AVBROADCASTI64X4
|
||||
AVBROADCASTSD
|
||||
AVBROADCASTSS
|
||||
AVCMPPD
|
||||
|
|
@ -868,19 +937,38 @@ const (
|
|||
AVCMPSS
|
||||
AVCOMISD
|
||||
AVCOMISS
|
||||
AVCOMPRESSPD
|
||||
AVCOMPRESSPS
|
||||
AVCVTDQ2PD
|
||||
AVCVTDQ2PS
|
||||
AVCVTPD2DQ
|
||||
AVCVTPD2DQX
|
||||
AVCVTPD2DQY
|
||||
AVCVTPD2PS
|
||||
AVCVTPD2PSX
|
||||
AVCVTPD2PSY
|
||||
AVCVTPD2QQ
|
||||
AVCVTPD2UDQ
|
||||
AVCVTPD2UDQX
|
||||
AVCVTPD2UDQY
|
||||
AVCVTPD2UQQ
|
||||
AVCVTPH2PS
|
||||
AVCVTPS2DQ
|
||||
AVCVTPS2PD
|
||||
AVCVTPS2PH
|
||||
AVCVTPS2QQ
|
||||
AVCVTPS2UDQ
|
||||
AVCVTPS2UQQ
|
||||
AVCVTQQ2PD
|
||||
AVCVTQQ2PS
|
||||
AVCVTQQ2PSX
|
||||
AVCVTQQ2PSY
|
||||
AVCVTSD2SI
|
||||
AVCVTSD2SIQ
|
||||
AVCVTSD2SS
|
||||
AVCVTSD2USI
|
||||
AVCVTSD2USIL
|
||||
AVCVTSD2USIQ
|
||||
AVCVTSI2SDL
|
||||
AVCVTSI2SDQ
|
||||
AVCVTSI2SSL
|
||||
|
|
@ -888,13 +976,44 @@ const (
|
|||
AVCVTSS2SD
|
||||
AVCVTSS2SI
|
||||
AVCVTSS2SIQ
|
||||
AVCVTSS2USI
|
||||
AVCVTSS2USIL
|
||||
AVCVTSS2USIQ
|
||||
AVCVTTPD2DQ
|
||||
AVCVTTPD2DQX
|
||||
AVCVTTPD2DQY
|
||||
AVCVTTPD2QQ
|
||||
AVCVTTPD2UDQ
|
||||
AVCVTTPD2UDQX
|
||||
AVCVTTPD2UDQY
|
||||
AVCVTTPD2UQQ
|
||||
AVCVTTPS2DQ
|
||||
AVCVTTPS2QQ
|
||||
AVCVTTPS2UDQ
|
||||
AVCVTTPS2UQQ
|
||||
AVCVTTSD2SI
|
||||
AVCVTTSD2SIQ
|
||||
AVCVTTSD2USI
|
||||
AVCVTTSD2USIL
|
||||
AVCVTTSD2USIQ
|
||||
AVCVTTSS2SI
|
||||
AVCVTTSS2SIQ
|
||||
AVCVTTSS2USI
|
||||
AVCVTTSS2USIL
|
||||
AVCVTTSS2USIQ
|
||||
AVCVTUDQ2PD
|
||||
AVCVTUDQ2PS
|
||||
AVCVTUQQ2PD
|
||||
AVCVTUQQ2PS
|
||||
AVCVTUQQ2PSX
|
||||
AVCVTUQQ2PSY
|
||||
AVCVTUSI2SD
|
||||
AVCVTUSI2SDL
|
||||
AVCVTUSI2SDQ
|
||||
AVCVTUSI2SS
|
||||
AVCVTUSI2SSL
|
||||
AVCVTUSI2SSQ
|
||||
AVDBPSADBW
|
||||
AVDIVPD
|
||||
AVDIVPS
|
||||
AVDIVSD
|
||||
|
|
@ -903,9 +1022,25 @@ const (
|
|||
AVDPPS
|
||||
AVERR
|
||||
AVERW
|
||||
AVEXP2PD
|
||||
AVEXP2PS
|
||||
AVEXPANDPD
|
||||
AVEXPANDPS
|
||||
AVEXTRACTF128
|
||||
AVEXTRACTF32X4
|
||||
AVEXTRACTF32X8
|
||||
AVEXTRACTF64X2
|
||||
AVEXTRACTF64X4
|
||||
AVEXTRACTI128
|
||||
AVEXTRACTI32X4
|
||||
AVEXTRACTI32X8
|
||||
AVEXTRACTI64X2
|
||||
AVEXTRACTI64X4
|
||||
AVEXTRACTPS
|
||||
AVFIXUPIMMPD
|
||||
AVFIXUPIMMPS
|
||||
AVFIXUPIMMSD
|
||||
AVFIXUPIMMSS
|
||||
AVFMADD132PD
|
||||
AVFMADD132PS
|
||||
AVFMADD132SD
|
||||
|
|
@ -966,16 +1101,53 @@ const (
|
|||
AVFNMSUB231PS
|
||||
AVFNMSUB231SD
|
||||
AVFNMSUB231SS
|
||||
AVFPCLASSPD
|
||||
AVFPCLASSPDX
|
||||
AVFPCLASSPDY
|
||||
AVFPCLASSPDZ
|
||||
AVFPCLASSPS
|
||||
AVFPCLASSPSX
|
||||
AVFPCLASSPSY
|
||||
AVFPCLASSPSZ
|
||||
AVFPCLASSSD
|
||||
AVFPCLASSSS
|
||||
AVGATHERDPD
|
||||
AVGATHERDPS
|
||||
AVGATHERPF0DPD
|
||||
AVGATHERPF0DPS
|
||||
AVGATHERPF0QPD
|
||||
AVGATHERPF0QPS
|
||||
AVGATHERPF1DPD
|
||||
AVGATHERPF1DPS
|
||||
AVGATHERPF1QPD
|
||||
AVGATHERPF1QPS
|
||||
AVGATHERQPD
|
||||
AVGATHERQPS
|
||||
AVGETEXPPD
|
||||
AVGETEXPPS
|
||||
AVGETEXPSD
|
||||
AVGETEXPSS
|
||||
AVGETMANTPD
|
||||
AVGETMANTPS
|
||||
AVGETMANTSD
|
||||
AVGETMANTSS
|
||||
AVGF2P8AFFINEINVQB
|
||||
AVGF2P8AFFINEQB
|
||||
AVGF2P8MULB
|
||||
AVHADDPD
|
||||
AVHADDPS
|
||||
AVHSUBPD
|
||||
AVHSUBPS
|
||||
AVINSERTF128
|
||||
AVINSERTF32X4
|
||||
AVINSERTF32X8
|
||||
AVINSERTF64X2
|
||||
AVINSERTF64X4
|
||||
AVINSERTI128
|
||||
AVINSERTI32X4
|
||||
AVINSERTI32X8
|
||||
AVINSERTI64X2
|
||||
AVINSERTI64X4
|
||||
AVINSERTPS
|
||||
AVLDDQU
|
||||
AVLDMXCSR
|
||||
|
|
@ -995,7 +1167,13 @@ const (
|
|||
AVMOVD
|
||||
AVMOVDDUP
|
||||
AVMOVDQA
|
||||
AVMOVDQA32
|
||||
AVMOVDQA64
|
||||
AVMOVDQU
|
||||
AVMOVDQU16
|
||||
AVMOVDQU32
|
||||
AVMOVDQU64
|
||||
AVMOVDQU8
|
||||
AVMOVHLPS
|
||||
AVMOVHPD
|
||||
AVMOVHPS
|
||||
|
|
@ -1022,8 +1200,11 @@ const (
|
|||
AVMULSS
|
||||
AVORPD
|
||||
AVORPS
|
||||
AVP4DPWSSD
|
||||
AVP4DPWSSDS
|
||||
AVPABSB
|
||||
AVPABSD
|
||||
AVPABSQ
|
||||
AVPABSW
|
||||
AVPACKSSDW
|
||||
AVPACKSSWB
|
||||
|
|
@ -1039,17 +1220,29 @@ const (
|
|||
AVPADDW
|
||||
AVPALIGNR
|
||||
AVPAND
|
||||
AVPANDD
|
||||
AVPANDN
|
||||
AVPANDND
|
||||
AVPANDNQ
|
||||
AVPANDQ
|
||||
AVPAVGB
|
||||
AVPAVGW
|
||||
AVPBLENDD
|
||||
AVPBLENDMB
|
||||
AVPBLENDMD
|
||||
AVPBLENDMQ
|
||||
AVPBLENDMW
|
||||
AVPBLENDVB
|
||||
AVPBLENDW
|
||||
AVPBROADCASTB
|
||||
AVPBROADCASTD
|
||||
AVPBROADCASTMB2Q
|
||||
AVPBROADCASTMW2D
|
||||
AVPBROADCASTQ
|
||||
AVPBROADCASTW
|
||||
AVPCLMULQDQ
|
||||
AVPCMPB
|
||||
AVPCMPD
|
||||
AVPCMPEQB
|
||||
AVPCMPEQD
|
||||
AVPCMPEQQ
|
||||
|
|
@ -1062,14 +1255,48 @@ const (
|
|||
AVPCMPGTW
|
||||
AVPCMPISTRI
|
||||
AVPCMPISTRM
|
||||
AVPCMPQ
|
||||
AVPCMPUB
|
||||
AVPCMPUD
|
||||
AVPCMPUQ
|
||||
AVPCMPUW
|
||||
AVPCMPW
|
||||
AVPCOMPRESSB
|
||||
AVPCOMPRESSD
|
||||
AVPCOMPRESSQ
|
||||
AVPCOMPRESSW
|
||||
AVPCONFLICTD
|
||||
AVPCONFLICTQ
|
||||
AVPDPBUSD
|
||||
AVPDPBUSDS
|
||||
AVPDPWSSD
|
||||
AVPDPWSSDS
|
||||
AVPERM2F128
|
||||
AVPERM2I128
|
||||
AVPERMB
|
||||
AVPERMD
|
||||
AVPERMI2B
|
||||
AVPERMI2D
|
||||
AVPERMI2PD
|
||||
AVPERMI2PS
|
||||
AVPERMI2Q
|
||||
AVPERMI2W
|
||||
AVPERMILPD
|
||||
AVPERMILPS
|
||||
AVPERMPD
|
||||
AVPERMPS
|
||||
AVPERMQ
|
||||
AVPERMT2B
|
||||
AVPERMT2D
|
||||
AVPERMT2PD
|
||||
AVPERMT2PS
|
||||
AVPERMT2Q
|
||||
AVPERMT2W
|
||||
AVPERMW
|
||||
AVPEXPANDB
|
||||
AVPEXPANDD
|
||||
AVPEXPANDQ
|
||||
AVPEXPANDW
|
||||
AVPEXTRB
|
||||
AVPEXTRD
|
||||
AVPEXTRQ
|
||||
|
|
@ -1089,29 +1316,63 @@ const (
|
|||
AVPINSRD
|
||||
AVPINSRQ
|
||||
AVPINSRW
|
||||
AVPLZCNTD
|
||||
AVPLZCNTQ
|
||||
AVPMADD52HUQ
|
||||
AVPMADD52LUQ
|
||||
AVPMADDUBSW
|
||||
AVPMADDWD
|
||||
AVPMASKMOVD
|
||||
AVPMASKMOVQ
|
||||
AVPMAXSB
|
||||
AVPMAXSD
|
||||
AVPMAXSQ
|
||||
AVPMAXSW
|
||||
AVPMAXUB
|
||||
AVPMAXUD
|
||||
AVPMAXUQ
|
||||
AVPMAXUW
|
||||
AVPMINSB
|
||||
AVPMINSD
|
||||
AVPMINSQ
|
||||
AVPMINSW
|
||||
AVPMINUB
|
||||
AVPMINUD
|
||||
AVPMINUQ
|
||||
AVPMINUW
|
||||
AVPMOVB2M
|
||||
AVPMOVD2M
|
||||
AVPMOVDB
|
||||
AVPMOVDW
|
||||
AVPMOVM2B
|
||||
AVPMOVM2D
|
||||
AVPMOVM2Q
|
||||
AVPMOVM2W
|
||||
AVPMOVMSKB
|
||||
AVPMOVQ2M
|
||||
AVPMOVQB
|
||||
AVPMOVQD
|
||||
AVPMOVQW
|
||||
AVPMOVSDB
|
||||
AVPMOVSDW
|
||||
AVPMOVSQB
|
||||
AVPMOVSQD
|
||||
AVPMOVSQW
|
||||
AVPMOVSWB
|
||||
AVPMOVSXBD
|
||||
AVPMOVSXBQ
|
||||
AVPMOVSXBW
|
||||
AVPMOVSXDQ
|
||||
AVPMOVSXWD
|
||||
AVPMOVSXWQ
|
||||
AVPMOVUSDB
|
||||
AVPMOVUSDW
|
||||
AVPMOVUSQB
|
||||
AVPMOVUSQD
|
||||
AVPMOVUSQW
|
||||
AVPMOVUSWB
|
||||
AVPMOVW2M
|
||||
AVPMOVWB
|
||||
AVPMOVZXBD
|
||||
AVPMOVZXBQ
|
||||
AVPMOVZXBW
|
||||
|
|
@ -1123,11 +1384,44 @@ const (
|
|||
AVPMULHUW
|
||||
AVPMULHW
|
||||
AVPMULLD
|
||||
AVPMULLQ
|
||||
AVPMULLW
|
||||
AVPMULTISHIFTQB
|
||||
AVPMULUDQ
|
||||
AVPOPCNTB
|
||||
AVPOPCNTD
|
||||
AVPOPCNTQ
|
||||
AVPOPCNTW
|
||||
AVPOR
|
||||
AVPORD
|
||||
AVPORQ
|
||||
AVPROLD
|
||||
AVPROLQ
|
||||
AVPROLVD
|
||||
AVPROLVQ
|
||||
AVPRORD
|
||||
AVPRORQ
|
||||
AVPRORVD
|
||||
AVPRORVQ
|
||||
AVPSADBW
|
||||
AVPSCATTERDD
|
||||
AVPSCATTERDQ
|
||||
AVPSCATTERQD
|
||||
AVPSCATTERQQ
|
||||
AVPSHLDD
|
||||
AVPSHLDQ
|
||||
AVPSHLDVD
|
||||
AVPSHLDVQ
|
||||
AVPSHLDVW
|
||||
AVPSHLDW
|
||||
AVPSHRDD
|
||||
AVPSHRDQ
|
||||
AVPSHRDVD
|
||||
AVPSHRDVQ
|
||||
AVPSHRDVW
|
||||
AVPSHRDW
|
||||
AVPSHUFB
|
||||
AVPSHUFBITQMB
|
||||
AVPSHUFD
|
||||
AVPSHUFHW
|
||||
AVPSHUFLW
|
||||
|
|
@ -1139,15 +1433,20 @@ const (
|
|||
AVPSLLQ
|
||||
AVPSLLVD
|
||||
AVPSLLVQ
|
||||
AVPSLLVW
|
||||
AVPSLLW
|
||||
AVPSRAD
|
||||
AVPSRAQ
|
||||
AVPSRAVD
|
||||
AVPSRAVQ
|
||||
AVPSRAVW
|
||||
AVPSRAW
|
||||
AVPSRLD
|
||||
AVPSRLDQ
|
||||
AVPSRLQ
|
||||
AVPSRLVD
|
||||
AVPSRLVQ
|
||||
AVPSRLVW
|
||||
AVPSRLW
|
||||
AVPSUBB
|
||||
AVPSUBD
|
||||
|
|
@ -1157,7 +1456,17 @@ const (
|
|||
AVPSUBUSB
|
||||
AVPSUBUSW
|
||||
AVPSUBW
|
||||
AVPTERNLOGD
|
||||
AVPTERNLOGQ
|
||||
AVPTEST
|
||||
AVPTESTMB
|
||||
AVPTESTMD
|
||||
AVPTESTMQ
|
||||
AVPTESTMW
|
||||
AVPTESTNMB
|
||||
AVPTESTNMD
|
||||
AVPTESTNMQ
|
||||
AVPTESTNMW
|
||||
AVPUNPCKHBW
|
||||
AVPUNPCKHDQ
|
||||
AVPUNPCKHQDQ
|
||||
|
|
@ -1167,14 +1476,64 @@ const (
|
|||
AVPUNPCKLQDQ
|
||||
AVPUNPCKLWD
|
||||
AVPXOR
|
||||
AVPXORD
|
||||
AVPXORQ
|
||||
AVRANGEPD
|
||||
AVRANGEPS
|
||||
AVRANGESD
|
||||
AVRANGESS
|
||||
AVRCP14PD
|
||||
AVRCP14PS
|
||||
AVRCP14SD
|
||||
AVRCP14SS
|
||||
AVRCP28PD
|
||||
AVRCP28PS
|
||||
AVRCP28SD
|
||||
AVRCP28SS
|
||||
AVRCPPS
|
||||
AVRCPSS
|
||||
AVREDUCEPD
|
||||
AVREDUCEPS
|
||||
AVREDUCESD
|
||||
AVREDUCESS
|
||||
AVRNDSCALEPD
|
||||
AVRNDSCALEPS
|
||||
AVRNDSCALESD
|
||||
AVRNDSCALESS
|
||||
AVROUNDPD
|
||||
AVROUNDPS
|
||||
AVROUNDSD
|
||||
AVROUNDSS
|
||||
AVRSQRT14PD
|
||||
AVRSQRT14PS
|
||||
AVRSQRT14SD
|
||||
AVRSQRT14SS
|
||||
AVRSQRT28PD
|
||||
AVRSQRT28PS
|
||||
AVRSQRT28SD
|
||||
AVRSQRT28SS
|
||||
AVRSQRTPS
|
||||
AVRSQRTSS
|
||||
AVSCALEFPD
|
||||
AVSCALEFPS
|
||||
AVSCALEFSD
|
||||
AVSCALEFSS
|
||||
AVSCATTERDPD
|
||||
AVSCATTERDPS
|
||||
AVSCATTERPF0DPD
|
||||
AVSCATTERPF0DPS
|
||||
AVSCATTERPF0QPD
|
||||
AVSCATTERPF0QPS
|
||||
AVSCATTERPF1DPD
|
||||
AVSCATTERPF1DPS
|
||||
AVSCATTERPF1QPD
|
||||
AVSCATTERPF1QPS
|
||||
AVSCATTERQPD
|
||||
AVSCATTERQPS
|
||||
AVSHUFF32X4
|
||||
AVSHUFF64X2
|
||||
AVSHUFI32X4
|
||||
AVSHUFI64X2
|
||||
AVSHUFPD
|
||||
AVSHUFPS
|
||||
AVSQRTPD
|
||||
|
|
|
|||
|
|
@ -386,6 +386,57 @@ var Anames = []string{
|
|||
"JPC",
|
||||
"JPL",
|
||||
"JPS",
|
||||
"KADDB",
|
||||
"KADDD",
|
||||
"KADDQ",
|
||||
"KADDW",
|
||||
"KANDB",
|
||||
"KANDD",
|
||||
"KANDNB",
|
||||
"KANDND",
|
||||
"KANDNQ",
|
||||
"KANDNW",
|
||||
"KANDQ",
|
||||
"KANDW",
|
||||
"KMOVB",
|
||||
"KMOVD",
|
||||
"KMOVQ",
|
||||
"KMOVW",
|
||||
"KNOTB",
|
||||
"KNOTD",
|
||||
"KNOTQ",
|
||||
"KNOTW",
|
||||
"KORB",
|
||||
"KORD",
|
||||
"KORQ",
|
||||
"KORTESTB",
|
||||
"KORTESTD",
|
||||
"KORTESTQ",
|
||||
"KORTESTW",
|
||||
"KORW",
|
||||
"KSHIFTLB",
|
||||
"KSHIFTLD",
|
||||
"KSHIFTLQ",
|
||||
"KSHIFTLW",
|
||||
"KSHIFTRB",
|
||||
"KSHIFTRD",
|
||||
"KSHIFTRQ",
|
||||
"KSHIFTRW",
|
||||
"KTESTB",
|
||||
"KTESTD",
|
||||
"KTESTQ",
|
||||
"KTESTW",
|
||||
"KUNPCKBW",
|
||||
"KUNPCKDQ",
|
||||
"KUNPCKWD",
|
||||
"KXNORB",
|
||||
"KXNORD",
|
||||
"KXNORQ",
|
||||
"KXNORW",
|
||||
"KXORB",
|
||||
"KXORD",
|
||||
"KXORQ",
|
||||
"KXORW",
|
||||
"LAHF",
|
||||
"LARL",
|
||||
"LARQ",
|
||||
|
|
@ -837,6 +888,10 @@ var Anames = []string{
|
|||
"UNPCKHPS",
|
||||
"UNPCKLPD",
|
||||
"UNPCKLPS",
|
||||
"V4FMADDPS",
|
||||
"V4FMADDSS",
|
||||
"V4FNMADDPS",
|
||||
"V4FNMADDSS",
|
||||
"VADDPD",
|
||||
"VADDPS",
|
||||
"VADDSD",
|
||||
|
|
@ -849,16 +904,30 @@ var Anames = []string{
|
|||
"VAESENCLAST",
|
||||
"VAESIMC",
|
||||
"VAESKEYGENASSIST",
|
||||
"VALIGND",
|
||||
"VALIGNQ",
|
||||
"VANDNPD",
|
||||
"VANDNPS",
|
||||
"VANDPD",
|
||||
"VANDPS",
|
||||
"VBLENDMPD",
|
||||
"VBLENDMPS",
|
||||
"VBLENDPD",
|
||||
"VBLENDPS",
|
||||
"VBLENDVPD",
|
||||
"VBLENDVPS",
|
||||
"VBROADCASTF128",
|
||||
"VBROADCASTF32X2",
|
||||
"VBROADCASTF32X4",
|
||||
"VBROADCASTF32X8",
|
||||
"VBROADCASTF64X2",
|
||||
"VBROADCASTF64X4",
|
||||
"VBROADCASTI128",
|
||||
"VBROADCASTI32X2",
|
||||
"VBROADCASTI32X4",
|
||||
"VBROADCASTI32X8",
|
||||
"VBROADCASTI64X2",
|
||||
"VBROADCASTI64X4",
|
||||
"VBROADCASTSD",
|
||||
"VBROADCASTSS",
|
||||
"VCMPPD",
|
||||
|
|
@ -867,19 +936,38 @@ var Anames = []string{
|
|||
"VCMPSS",
|
||||
"VCOMISD",
|
||||
"VCOMISS",
|
||||
"VCOMPRESSPD",
|
||||
"VCOMPRESSPS",
|
||||
"VCVTDQ2PD",
|
||||
"VCVTDQ2PS",
|
||||
"VCVTPD2DQ",
|
||||
"VCVTPD2DQX",
|
||||
"VCVTPD2DQY",
|
||||
"VCVTPD2PS",
|
||||
"VCVTPD2PSX",
|
||||
"VCVTPD2PSY",
|
||||
"VCVTPD2QQ",
|
||||
"VCVTPD2UDQ",
|
||||
"VCVTPD2UDQX",
|
||||
"VCVTPD2UDQY",
|
||||
"VCVTPD2UQQ",
|
||||
"VCVTPH2PS",
|
||||
"VCVTPS2DQ",
|
||||
"VCVTPS2PD",
|
||||
"VCVTPS2PH",
|
||||
"VCVTPS2QQ",
|
||||
"VCVTPS2UDQ",
|
||||
"VCVTPS2UQQ",
|
||||
"VCVTQQ2PD",
|
||||
"VCVTQQ2PS",
|
||||
"VCVTQQ2PSX",
|
||||
"VCVTQQ2PSY",
|
||||
"VCVTSD2SI",
|
||||
"VCVTSD2SIQ",
|
||||
"VCVTSD2SS",
|
||||
"VCVTSD2USI",
|
||||
"VCVTSD2USIL",
|
||||
"VCVTSD2USIQ",
|
||||
"VCVTSI2SDL",
|
||||
"VCVTSI2SDQ",
|
||||
"VCVTSI2SSL",
|
||||
|
|
@ -887,13 +975,44 @@ var Anames = []string{
|
|||
"VCVTSS2SD",
|
||||
"VCVTSS2SI",
|
||||
"VCVTSS2SIQ",
|
||||
"VCVTSS2USI",
|
||||
"VCVTSS2USIL",
|
||||
"VCVTSS2USIQ",
|
||||
"VCVTTPD2DQ",
|
||||
"VCVTTPD2DQX",
|
||||
"VCVTTPD2DQY",
|
||||
"VCVTTPD2QQ",
|
||||
"VCVTTPD2UDQ",
|
||||
"VCVTTPD2UDQX",
|
||||
"VCVTTPD2UDQY",
|
||||
"VCVTTPD2UQQ",
|
||||
"VCVTTPS2DQ",
|
||||
"VCVTTPS2QQ",
|
||||
"VCVTTPS2UDQ",
|
||||
"VCVTTPS2UQQ",
|
||||
"VCVTTSD2SI",
|
||||
"VCVTTSD2SIQ",
|
||||
"VCVTTSD2USI",
|
||||
"VCVTTSD2USIL",
|
||||
"VCVTTSD2USIQ",
|
||||
"VCVTTSS2SI",
|
||||
"VCVTTSS2SIQ",
|
||||
"VCVTTSS2USI",
|
||||
"VCVTTSS2USIL",
|
||||
"VCVTTSS2USIQ",
|
||||
"VCVTUDQ2PD",
|
||||
"VCVTUDQ2PS",
|
||||
"VCVTUQQ2PD",
|
||||
"VCVTUQQ2PS",
|
||||
"VCVTUQQ2PSX",
|
||||
"VCVTUQQ2PSY",
|
||||
"VCVTUSI2SD",
|
||||
"VCVTUSI2SDL",
|
||||
"VCVTUSI2SDQ",
|
||||
"VCVTUSI2SS",
|
||||
"VCVTUSI2SSL",
|
||||
"VCVTUSI2SSQ",
|
||||
"VDBPSADBW",
|
||||
"VDIVPD",
|
||||
"VDIVPS",
|
||||
"VDIVSD",
|
||||
|
|
@ -902,9 +1021,25 @@ var Anames = []string{
|
|||
"VDPPS",
|
||||
"VERR",
|
||||
"VERW",
|
||||
"VEXP2PD",
|
||||
"VEXP2PS",
|
||||
"VEXPANDPD",
|
||||
"VEXPANDPS",
|
||||
"VEXTRACTF128",
|
||||
"VEXTRACTF32X4",
|
||||
"VEXTRACTF32X8",
|
||||
"VEXTRACTF64X2",
|
||||
"VEXTRACTF64X4",
|
||||
"VEXTRACTI128",
|
||||
"VEXTRACTI32X4",
|
||||
"VEXTRACTI32X8",
|
||||
"VEXTRACTI64X2",
|
||||
"VEXTRACTI64X4",
|
||||
"VEXTRACTPS",
|
||||
"VFIXUPIMMPD",
|
||||
"VFIXUPIMMPS",
|
||||
"VFIXUPIMMSD",
|
||||
"VFIXUPIMMSS",
|
||||
"VFMADD132PD",
|
||||
"VFMADD132PS",
|
||||
"VFMADD132SD",
|
||||
|
|
@ -965,16 +1100,53 @@ var Anames = []string{
|
|||
"VFNMSUB231PS",
|
||||
"VFNMSUB231SD",
|
||||
"VFNMSUB231SS",
|
||||
"VFPCLASSPD",
|
||||
"VFPCLASSPDX",
|
||||
"VFPCLASSPDY",
|
||||
"VFPCLASSPDZ",
|
||||
"VFPCLASSPS",
|
||||
"VFPCLASSPSX",
|
||||
"VFPCLASSPSY",
|
||||
"VFPCLASSPSZ",
|
||||
"VFPCLASSSD",
|
||||
"VFPCLASSSS",
|
||||
"VGATHERDPD",
|
||||
"VGATHERDPS",
|
||||
"VGATHERPF0DPD",
|
||||
"VGATHERPF0DPS",
|
||||
"VGATHERPF0QPD",
|
||||
"VGATHERPF0QPS",
|
||||
"VGATHERPF1DPD",
|
||||
"VGATHERPF1DPS",
|
||||
"VGATHERPF1QPD",
|
||||
"VGATHERPF1QPS",
|
||||
"VGATHERQPD",
|
||||
"VGATHERQPS",
|
||||
"VGETEXPPD",
|
||||
"VGETEXPPS",
|
||||
"VGETEXPSD",
|
||||
"VGETEXPSS",
|
||||
"VGETMANTPD",
|
||||
"VGETMANTPS",
|
||||
"VGETMANTSD",
|
||||
"VGETMANTSS",
|
||||
"VGF2P8AFFINEINVQB",
|
||||
"VGF2P8AFFINEQB",
|
||||
"VGF2P8MULB",
|
||||
"VHADDPD",
|
||||
"VHADDPS",
|
||||
"VHSUBPD",
|
||||
"VHSUBPS",
|
||||
"VINSERTF128",
|
||||
"VINSERTF32X4",
|
||||
"VINSERTF32X8",
|
||||
"VINSERTF64X2",
|
||||
"VINSERTF64X4",
|
||||
"VINSERTI128",
|
||||
"VINSERTI32X4",
|
||||
"VINSERTI32X8",
|
||||
"VINSERTI64X2",
|
||||
"VINSERTI64X4",
|
||||
"VINSERTPS",
|
||||
"VLDDQU",
|
||||
"VLDMXCSR",
|
||||
|
|
@ -994,7 +1166,13 @@ var Anames = []string{
|
|||
"VMOVD",
|
||||
"VMOVDDUP",
|
||||
"VMOVDQA",
|
||||
"VMOVDQA32",
|
||||
"VMOVDQA64",
|
||||
"VMOVDQU",
|
||||
"VMOVDQU16",
|
||||
"VMOVDQU32",
|
||||
"VMOVDQU64",
|
||||
"VMOVDQU8",
|
||||
"VMOVHLPS",
|
||||
"VMOVHPD",
|
||||
"VMOVHPS",
|
||||
|
|
@ -1021,8 +1199,11 @@ var Anames = []string{
|
|||
"VMULSS",
|
||||
"VORPD",
|
||||
"VORPS",
|
||||
"VP4DPWSSD",
|
||||
"VP4DPWSSDS",
|
||||
"VPABSB",
|
||||
"VPABSD",
|
||||
"VPABSQ",
|
||||
"VPABSW",
|
||||
"VPACKSSDW",
|
||||
"VPACKSSWB",
|
||||
|
|
@ -1038,17 +1219,29 @@ var Anames = []string{
|
|||
"VPADDW",
|
||||
"VPALIGNR",
|
||||
"VPAND",
|
||||
"VPANDD",
|
||||
"VPANDN",
|
||||
"VPANDND",
|
||||
"VPANDNQ",
|
||||
"VPANDQ",
|
||||
"VPAVGB",
|
||||
"VPAVGW",
|
||||
"VPBLENDD",
|
||||
"VPBLENDMB",
|
||||
"VPBLENDMD",
|
||||
"VPBLENDMQ",
|
||||
"VPBLENDMW",
|
||||
"VPBLENDVB",
|
||||
"VPBLENDW",
|
||||
"VPBROADCASTB",
|
||||
"VPBROADCASTD",
|
||||
"VPBROADCASTMB2Q",
|
||||
"VPBROADCASTMW2D",
|
||||
"VPBROADCASTQ",
|
||||
"VPBROADCASTW",
|
||||
"VPCLMULQDQ",
|
||||
"VPCMPB",
|
||||
"VPCMPD",
|
||||
"VPCMPEQB",
|
||||
"VPCMPEQD",
|
||||
"VPCMPEQQ",
|
||||
|
|
@ -1061,14 +1254,48 @@ var Anames = []string{
|
|||
"VPCMPGTW",
|
||||
"VPCMPISTRI",
|
||||
"VPCMPISTRM",
|
||||
"VPCMPQ",
|
||||
"VPCMPUB",
|
||||
"VPCMPUD",
|
||||
"VPCMPUQ",
|
||||
"VPCMPUW",
|
||||
"VPCMPW",
|
||||
"VPCOMPRESSB",
|
||||
"VPCOMPRESSD",
|
||||
"VPCOMPRESSQ",
|
||||
"VPCOMPRESSW",
|
||||
"VPCONFLICTD",
|
||||
"VPCONFLICTQ",
|
||||
"VPDPBUSD",
|
||||
"VPDPBUSDS",
|
||||
"VPDPWSSD",
|
||||
"VPDPWSSDS",
|
||||
"VPERM2F128",
|
||||
"VPERM2I128",
|
||||
"VPERMB",
|
||||
"VPERMD",
|
||||
"VPERMI2B",
|
||||
"VPERMI2D",
|
||||
"VPERMI2PD",
|
||||
"VPERMI2PS",
|
||||
"VPERMI2Q",
|
||||
"VPERMI2W",
|
||||
"VPERMILPD",
|
||||
"VPERMILPS",
|
||||
"VPERMPD",
|
||||
"VPERMPS",
|
||||
"VPERMQ",
|
||||
"VPERMT2B",
|
||||
"VPERMT2D",
|
||||
"VPERMT2PD",
|
||||
"VPERMT2PS",
|
||||
"VPERMT2Q",
|
||||
"VPERMT2W",
|
||||
"VPERMW",
|
||||
"VPEXPANDB",
|
||||
"VPEXPANDD",
|
||||
"VPEXPANDQ",
|
||||
"VPEXPANDW",
|
||||
"VPEXTRB",
|
||||
"VPEXTRD",
|
||||
"VPEXTRQ",
|
||||
|
|
@ -1088,29 +1315,63 @@ var Anames = []string{
|
|||
"VPINSRD",
|
||||
"VPINSRQ",
|
||||
"VPINSRW",
|
||||
"VPLZCNTD",
|
||||
"VPLZCNTQ",
|
||||
"VPMADD52HUQ",
|
||||
"VPMADD52LUQ",
|
||||
"VPMADDUBSW",
|
||||
"VPMADDWD",
|
||||
"VPMASKMOVD",
|
||||
"VPMASKMOVQ",
|
||||
"VPMAXSB",
|
||||
"VPMAXSD",
|
||||
"VPMAXSQ",
|
||||
"VPMAXSW",
|
||||
"VPMAXUB",
|
||||
"VPMAXUD",
|
||||
"VPMAXUQ",
|
||||
"VPMAXUW",
|
||||
"VPMINSB",
|
||||
"VPMINSD",
|
||||
"VPMINSQ",
|
||||
"VPMINSW",
|
||||
"VPMINUB",
|
||||
"VPMINUD",
|
||||
"VPMINUQ",
|
||||
"VPMINUW",
|
||||
"VPMOVB2M",
|
||||
"VPMOVD2M",
|
||||
"VPMOVDB",
|
||||
"VPMOVDW",
|
||||
"VPMOVM2B",
|
||||
"VPMOVM2D",
|
||||
"VPMOVM2Q",
|
||||
"VPMOVM2W",
|
||||
"VPMOVMSKB",
|
||||
"VPMOVQ2M",
|
||||
"VPMOVQB",
|
||||
"VPMOVQD",
|
||||
"VPMOVQW",
|
||||
"VPMOVSDB",
|
||||
"VPMOVSDW",
|
||||
"VPMOVSQB",
|
||||
"VPMOVSQD",
|
||||
"VPMOVSQW",
|
||||
"VPMOVSWB",
|
||||
"VPMOVSXBD",
|
||||
"VPMOVSXBQ",
|
||||
"VPMOVSXBW",
|
||||
"VPMOVSXDQ",
|
||||
"VPMOVSXWD",
|
||||
"VPMOVSXWQ",
|
||||
"VPMOVUSDB",
|
||||
"VPMOVUSDW",
|
||||
"VPMOVUSQB",
|
||||
"VPMOVUSQD",
|
||||
"VPMOVUSQW",
|
||||
"VPMOVUSWB",
|
||||
"VPMOVW2M",
|
||||
"VPMOVWB",
|
||||
"VPMOVZXBD",
|
||||
"VPMOVZXBQ",
|
||||
"VPMOVZXBW",
|
||||
|
|
@ -1122,11 +1383,44 @@ var Anames = []string{
|
|||
"VPMULHUW",
|
||||
"VPMULHW",
|
||||
"VPMULLD",
|
||||
"VPMULLQ",
|
||||
"VPMULLW",
|
||||
"VPMULTISHIFTQB",
|
||||
"VPMULUDQ",
|
||||
"VPOPCNTB",
|
||||
"VPOPCNTD",
|
||||
"VPOPCNTQ",
|
||||
"VPOPCNTW",
|
||||
"VPOR",
|
||||
"VPORD",
|
||||
"VPORQ",
|
||||
"VPROLD",
|
||||
"VPROLQ",
|
||||
"VPROLVD",
|
||||
"VPROLVQ",
|
||||
"VPRORD",
|
||||
"VPRORQ",
|
||||
"VPRORVD",
|
||||
"VPRORVQ",
|
||||
"VPSADBW",
|
||||
"VPSCATTERDD",
|
||||
"VPSCATTERDQ",
|
||||
"VPSCATTERQD",
|
||||
"VPSCATTERQQ",
|
||||
"VPSHLDD",
|
||||
"VPSHLDQ",
|
||||
"VPSHLDVD",
|
||||
"VPSHLDVQ",
|
||||
"VPSHLDVW",
|
||||
"VPSHLDW",
|
||||
"VPSHRDD",
|
||||
"VPSHRDQ",
|
||||
"VPSHRDVD",
|
||||
"VPSHRDVQ",
|
||||
"VPSHRDVW",
|
||||
"VPSHRDW",
|
||||
"VPSHUFB",
|
||||
"VPSHUFBITQMB",
|
||||
"VPSHUFD",
|
||||
"VPSHUFHW",
|
||||
"VPSHUFLW",
|
||||
|
|
@ -1138,15 +1432,20 @@ var Anames = []string{
|
|||
"VPSLLQ",
|
||||
"VPSLLVD",
|
||||
"VPSLLVQ",
|
||||
"VPSLLVW",
|
||||
"VPSLLW",
|
||||
"VPSRAD",
|
||||
"VPSRAQ",
|
||||
"VPSRAVD",
|
||||
"VPSRAVQ",
|
||||
"VPSRAVW",
|
||||
"VPSRAW",
|
||||
"VPSRLD",
|
||||
"VPSRLDQ",
|
||||
"VPSRLQ",
|
||||
"VPSRLVD",
|
||||
"VPSRLVQ",
|
||||
"VPSRLVW",
|
||||
"VPSRLW",
|
||||
"VPSUBB",
|
||||
"VPSUBD",
|
||||
|
|
@ -1156,7 +1455,17 @@ var Anames = []string{
|
|||
"VPSUBUSB",
|
||||
"VPSUBUSW",
|
||||
"VPSUBW",
|
||||
"VPTERNLOGD",
|
||||
"VPTERNLOGQ",
|
||||
"VPTEST",
|
||||
"VPTESTMB",
|
||||
"VPTESTMD",
|
||||
"VPTESTMQ",
|
||||
"VPTESTMW",
|
||||
"VPTESTNMB",
|
||||
"VPTESTNMD",
|
||||
"VPTESTNMQ",
|
||||
"VPTESTNMW",
|
||||
"VPUNPCKHBW",
|
||||
"VPUNPCKHDQ",
|
||||
"VPUNPCKHQDQ",
|
||||
|
|
@ -1166,14 +1475,64 @@ var Anames = []string{
|
|||
"VPUNPCKLQDQ",
|
||||
"VPUNPCKLWD",
|
||||
"VPXOR",
|
||||
"VPXORD",
|
||||
"VPXORQ",
|
||||
"VRANGEPD",
|
||||
"VRANGEPS",
|
||||
"VRANGESD",
|
||||
"VRANGESS",
|
||||
"VRCP14PD",
|
||||
"VRCP14PS",
|
||||
"VRCP14SD",
|
||||
"VRCP14SS",
|
||||
"VRCP28PD",
|
||||
"VRCP28PS",
|
||||
"VRCP28SD",
|
||||
"VRCP28SS",
|
||||
"VRCPPS",
|
||||
"VRCPSS",
|
||||
"VREDUCEPD",
|
||||
"VREDUCEPS",
|
||||
"VREDUCESD",
|
||||
"VREDUCESS",
|
||||
"VRNDSCALEPD",
|
||||
"VRNDSCALEPS",
|
||||
"VRNDSCALESD",
|
||||
"VRNDSCALESS",
|
||||
"VROUNDPD",
|
||||
"VROUNDPS",
|
||||
"VROUNDSD",
|
||||
"VROUNDSS",
|
||||
"VRSQRT14PD",
|
||||
"VRSQRT14PS",
|
||||
"VRSQRT14SD",
|
||||
"VRSQRT14SS",
|
||||
"VRSQRT28PD",
|
||||
"VRSQRT28PS",
|
||||
"VRSQRT28SD",
|
||||
"VRSQRT28SS",
|
||||
"VRSQRTPS",
|
||||
"VRSQRTSS",
|
||||
"VSCALEFPD",
|
||||
"VSCALEFPS",
|
||||
"VSCALEFSD",
|
||||
"VSCALEFSS",
|
||||
"VSCATTERDPD",
|
||||
"VSCATTERDPS",
|
||||
"VSCATTERPF0DPD",
|
||||
"VSCATTERPF0DPS",
|
||||
"VSCATTERPF0QPD",
|
||||
"VSCATTERPF0QPS",
|
||||
"VSCATTERPF1DPD",
|
||||
"VSCATTERPF1DPS",
|
||||
"VSCATTERPF1QPD",
|
||||
"VSCATTERPF1QPS",
|
||||
"VSCATTERQPD",
|
||||
"VSCATTERQPS",
|
||||
"VSHUFF32X4",
|
||||
"VSHUFF64X2",
|
||||
"VSHUFI32X4",
|
||||
"VSHUFI64X2",
|
||||
"VSHUFPD",
|
||||
"VSHUFPS",
|
||||
"VSQRTPD",
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
83
src/cmd/internal/obj/x86/asm_test.go
Normal file
83
src/cmd/internal/obj/x86/asm_test.go
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package x86
|
||||
|
||||
import (
|
||||
"cmd/internal/obj"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// Required for tests that access any of
|
||||
// opindex/ycover/reg/regrex global tables.
|
||||
var ctxt obj.Link
|
||||
instinit(&ctxt)
|
||||
}
|
||||
|
||||
func TestRegisterListEncDec(t *testing.T) {
|
||||
tests := []struct {
|
||||
printed string
|
||||
reg0 int16
|
||||
reg1 int16
|
||||
}{
|
||||
{"[R10-R13]", REG_R10, REG_R13},
|
||||
{"[X0-AX]", REG_X0, REG_AX},
|
||||
|
||||
{"[X0-X3]", REG_X0, REG_X3},
|
||||
{"[X21-X24]", REG_X21, REG_X24},
|
||||
|
||||
{"[Y0-Y3]", REG_Y0, REG_Y3},
|
||||
{"[Y21-Y24]", REG_Y21, REG_Y24},
|
||||
|
||||
{"[Z0-Z3]", REG_Z0, REG_Z3},
|
||||
{"[Z21-Z24]", REG_Z21, REG_Z24},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
enc := EncodeRegisterRange(test.reg0, test.reg1)
|
||||
reg0, reg1 := decodeRegisterRange(enc)
|
||||
|
||||
if int16(reg0) != test.reg0 {
|
||||
t.Errorf("%s reg0 mismatch: have %d, want %d",
|
||||
test.printed, reg0, test.reg0)
|
||||
}
|
||||
if int16(reg1) != test.reg1 {
|
||||
t.Errorf("%s reg1 mismatch: have %d, want %d",
|
||||
test.printed, reg1, test.reg1)
|
||||
}
|
||||
wantPrinted := test.printed
|
||||
if rlconv(enc) != wantPrinted {
|
||||
t.Errorf("%s string mismatch: have %s, want %s",
|
||||
test.printed, rlconv(enc), wantPrinted)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegIndex(t *testing.T) {
|
||||
tests := []struct {
|
||||
regFrom int
|
||||
regTo int
|
||||
}{
|
||||
{REG_AL, REG_R15B},
|
||||
{REG_AX, REG_R15},
|
||||
{REG_M0, REG_M7},
|
||||
{REG_K0, REG_K7},
|
||||
{REG_X0, REG_X31},
|
||||
{REG_Y0, REG_Y31},
|
||||
{REG_Z0, REG_Z31},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
for index, reg := 0, test.regFrom; reg <= test.regTo; index, reg = index+1, reg+1 {
|
||||
have := regIndex(int16(reg))
|
||||
want := index
|
||||
if have != want {
|
||||
regName := rconv(int(reg))
|
||||
t.Errorf("regIndex(%s):\nhave: %d\nwant: %d",
|
||||
regName, have, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4628
src/cmd/internal/obj/x86/avx_optabs.go
Normal file
4628
src/cmd/internal/obj/x86/avx_optabs.go
Normal file
File diff suppressed because it is too large
Load diff
382
src/cmd/internal/obj/x86/evex.go
Normal file
382
src/cmd/internal/obj/x86/evex.go
Normal file
|
|
@ -0,0 +1,382 @@
|
|||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package x86
|
||||
|
||||
import (
|
||||
"cmd/internal/obj"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// evexBits stores EVEX prefix info that is used during instruction encoding.
|
||||
type evexBits struct {
|
||||
b1 byte // [W1mmLLpp]
|
||||
b2 byte // [NNNbbZRS]
|
||||
|
||||
// Associated instruction opcode.
|
||||
opcode byte
|
||||
}
|
||||
|
||||
// newEVEXBits creates evexBits object from enc bytes at z position.
|
||||
func newEVEXBits(z int, enc *opBytes) evexBits {
|
||||
return evexBits{
|
||||
b1: enc[z+0],
|
||||
b2: enc[z+1],
|
||||
opcode: enc[z+2],
|
||||
}
|
||||
}
|
||||
|
||||
// P returns EVEX.pp value.
|
||||
func (evex evexBits) P() byte { return (evex.b1 & evexP) >> 0 }
|
||||
|
||||
// L returns EVEX.L'L value.
|
||||
func (evex evexBits) L() byte { return (evex.b1 & evexL) >> 2 }
|
||||
|
||||
// M returns EVEX.mm value.
|
||||
func (evex evexBits) M() byte { return (evex.b1 & evexM) >> 4 }
|
||||
|
||||
// W returns EVEX.W value.
|
||||
func (evex evexBits) W() byte { return (evex.b1 & evexW) >> 7 }
|
||||
|
||||
// BroadcastEnabled reports whether BCST suffix is permitted.
|
||||
func (evex evexBits) BroadcastEnabled() bool {
|
||||
return evex.b2&evexBcst != 0
|
||||
}
|
||||
|
||||
// ZeroingEnabled reports whether Z suffix is permitted.
|
||||
func (evex evexBits) ZeroingEnabled() bool {
|
||||
return (evex.b2&evexZeroing)>>2 != 0
|
||||
}
|
||||
|
||||
// RoundingEnabled reports whether RN_SAE, RZ_SAE, RD_SAE and RU_SAE suffixes
|
||||
// are permitted.
|
||||
func (evex evexBits) RoundingEnabled() bool {
|
||||
return (evex.b2&evexRounding)>>1 != 0
|
||||
}
|
||||
|
||||
// SaeEnabled reports whether SAE suffix is permitted.
|
||||
func (evex evexBits) SaeEnabled() bool {
|
||||
return (evex.b2&evexSae)>>0 != 0
|
||||
}
|
||||
|
||||
// DispMultiplier returns displacement multiplier that is calculated
|
||||
// based on tuple type, EVEX.W and input size.
|
||||
// If embedded broadcast is used, bcst should be true.
|
||||
func (evex evexBits) DispMultiplier(bcst bool) int32 {
|
||||
if bcst {
|
||||
switch evex.b2 & evexBcst {
|
||||
case evexBcstN4:
|
||||
return 4
|
||||
case evexBcstN8:
|
||||
return 8
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
switch evex.b2 & evexN {
|
||||
case evexN1:
|
||||
return 1
|
||||
case evexN2:
|
||||
return 2
|
||||
case evexN4:
|
||||
return 4
|
||||
case evexN8:
|
||||
return 8
|
||||
case evexN16:
|
||||
return 16
|
||||
case evexN32:
|
||||
return 32
|
||||
case evexN64:
|
||||
return 64
|
||||
case evexN128:
|
||||
return 128
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
// EVEX is described by using 2-byte sequence.
|
||||
// See evexBits for more details.
|
||||
const (
|
||||
evexW = 0x80 // b1[W... ....]
|
||||
evexWIG = 0 << 7
|
||||
evexW0 = 0 << 7
|
||||
evexW1 = 1 << 7
|
||||
|
||||
evexM = 0x30 // b2[..mm ...]
|
||||
evex0F = 1 << 4
|
||||
evex0F38 = 2 << 4
|
||||
evex0F3A = 3 << 4
|
||||
|
||||
evexL = 0x0C // b1[.... LL..]
|
||||
evexLIG = 0 << 2
|
||||
evex128 = 0 << 2
|
||||
evex256 = 1 << 2
|
||||
evex512 = 2 << 2
|
||||
|
||||
evexP = 0x03 // b1[.... ..pp]
|
||||
evex66 = 1 << 0
|
||||
evexF3 = 2 << 0
|
||||
evexF2 = 3 << 0
|
||||
|
||||
// Precalculated Disp8 N value.
|
||||
// N acts like a multiplier for 8bit displacement.
|
||||
// Note that some N are not used, but their bits are reserved.
|
||||
evexN = 0xE0 // b2[NNN. ....]
|
||||
evexN1 = 0 << 5
|
||||
evexN2 = 1 << 5
|
||||
evexN4 = 2 << 5
|
||||
evexN8 = 3 << 5
|
||||
evexN16 = 4 << 5
|
||||
evexN32 = 5 << 5
|
||||
evexN64 = 6 << 5
|
||||
evexN128 = 7 << 5
|
||||
|
||||
// Disp8 for broadcasts.
|
||||
evexBcst = 0x18 // b2[...b b...]
|
||||
evexBcstN4 = 1 << 3
|
||||
evexBcstN8 = 2 << 3
|
||||
|
||||
// Flags that permit certain AVX512 features.
|
||||
// It's semantically illegal to combine evexZeroing and evexSae.
|
||||
evexZeroing = 0x4 // b2[.... .Z..]
|
||||
evexZeroingEnabled = 1 << 2
|
||||
evexRounding = 0x2 // b2[.... ..R.]
|
||||
evexRoundingEnabled = 1 << 1
|
||||
evexSae = 0x1 // b2[.... ...S]
|
||||
evexSaeEnabled = 1 << 0
|
||||
)
|
||||
|
||||
// compressedDisp8 calculates EVEX compressed displacement, if applicable.
|
||||
func compressedDisp8(disp, elemSize int32) (disp8 byte, ok bool) {
|
||||
if disp%elemSize == 0 {
|
||||
v := disp / elemSize
|
||||
if v >= -128 && v <= 127 {
|
||||
return byte(v), true
|
||||
}
|
||||
}
|
||||
return 0, false
|
||||
}
|
||||
|
||||
// evexZcase reports whether given Z-case belongs to EVEX group.
|
||||
func evexZcase(zcase uint8) bool {
|
||||
return zcase > Zevex_first && zcase < Zevex_last
|
||||
}
|
||||
|
||||
// evexSuffixBits carries instruction EVEX suffix set flags.
|
||||
//
|
||||
// Examples:
|
||||
// "RU_SAE.Z" => {rounding: 3, zeroing: true}
|
||||
// "Z" => {zeroing: true}
|
||||
// "BCST" => {broadcast: true}
|
||||
// "SAE.Z" => {sae: true, zeroing: true}
|
||||
type evexSuffix struct {
|
||||
rounding byte
|
||||
sae bool
|
||||
zeroing bool
|
||||
broadcast bool
|
||||
}
|
||||
|
||||
// Rounding control values.
|
||||
// Match exact value for EVEX.L'L field (with exception of rcUnset).
|
||||
const (
|
||||
rcRNSAE = 0 // Round towards nearest
|
||||
rcRDSAE = 1 // Round towards -Inf
|
||||
rcRUSAE = 2 // Round towards +Inf
|
||||
rcRZSAE = 3 // Round towards zero
|
||||
rcUnset = 4
|
||||
)
|
||||
|
||||
// newEVEXSuffix returns proper zero value for evexSuffix.
|
||||
func newEVEXSuffix() evexSuffix {
|
||||
return evexSuffix{rounding: rcUnset}
|
||||
}
|
||||
|
||||
// evexSuffixMap maps obj.X86suffix to it's decoded version.
|
||||
// Filled during init().
|
||||
var evexSuffixMap [255]evexSuffix
|
||||
|
||||
func init() {
|
||||
// Decode all valid suffixes for later use.
|
||||
for i := range opSuffixTable {
|
||||
suffix := newEVEXSuffix()
|
||||
parts := strings.Split(opSuffixTable[i], ".")
|
||||
for j := range parts {
|
||||
switch parts[j] {
|
||||
case "Z":
|
||||
suffix.zeroing = true
|
||||
case "BCST":
|
||||
suffix.broadcast = true
|
||||
case "SAE":
|
||||
suffix.sae = true
|
||||
|
||||
case "RN_SAE":
|
||||
suffix.rounding = rcRNSAE
|
||||
case "RD_SAE":
|
||||
suffix.rounding = rcRDSAE
|
||||
case "RU_SAE":
|
||||
suffix.rounding = rcRUSAE
|
||||
case "RZ_SAE":
|
||||
suffix.rounding = rcRZSAE
|
||||
}
|
||||
}
|
||||
evexSuffixMap[i] = suffix
|
||||
}
|
||||
}
|
||||
|
||||
// toDisp8 tries to convert disp to proper 8-bit displacement value.
|
||||
func toDisp8(disp int32, p *obj.Prog, asmbuf *AsmBuf) (disp8 byte, ok bool) {
|
||||
if asmbuf.evexflag {
|
||||
bcst := evexSuffixMap[p.Scond].broadcast
|
||||
elemSize := asmbuf.evex.DispMultiplier(bcst)
|
||||
return compressedDisp8(disp, elemSize)
|
||||
}
|
||||
return byte(disp), disp >= -128 && disp < 128
|
||||
}
|
||||
|
||||
// EncodeRegisterRange packs [reg0-reg1] list into 64-bit value that
|
||||
// is intended to be stored inside obj.Addr.Offset with TYPE_REGLIST.
|
||||
func EncodeRegisterRange(reg0, reg1 int16) int64 {
|
||||
return (int64(reg0) << 0) |
|
||||
(int64(reg1) << 16) |
|
||||
obj.RegListX86Lo
|
||||
}
|
||||
|
||||
// decodeRegisterRange unpacks [reg0-reg1] list from 64-bit value created by EncodeRegisterRange.
|
||||
func decodeRegisterRange(list int64) (reg0, reg1 int) {
|
||||
return int((list >> 0) & 0xFFFF),
|
||||
int((list >> 16) & 0xFFFF)
|
||||
}
|
||||
|
||||
// ParseSuffix handles the special suffix for the 386/AMD64.
|
||||
// Suffix bits are stored into p.Scond.
|
||||
//
|
||||
// Leading "." in cond is ignored.
|
||||
func ParseSuffix(p *obj.Prog, cond string) error {
|
||||
cond = strings.TrimPrefix(cond, ".")
|
||||
|
||||
suffix := newOpSuffix(cond)
|
||||
if !suffix.IsValid() {
|
||||
return inferSuffixError(cond)
|
||||
}
|
||||
|
||||
p.Scond = uint8(suffix)
|
||||
return nil
|
||||
}
|
||||
|
||||
// inferSuffixError returns non-nil error that describes what could be
|
||||
// the cause of suffix parse failure.
|
||||
//
|
||||
// At the point this function is executed there is already assembly error,
|
||||
// so we can burn some clocks to construct good error message.
|
||||
//
|
||||
// Reported issues:
|
||||
// - duplicated suffixes
|
||||
// - illegal rounding/SAE+broadcast combinations
|
||||
// - unknown suffixes
|
||||
// - misplaced suffix (e.g. wrong Z suffix position)
|
||||
func inferSuffixError(cond string) error {
|
||||
suffixSet := make(map[string]bool) // Set for duplicates detection.
|
||||
unknownSet := make(map[string]bool) // Set of unknown suffixes.
|
||||
hasBcst := false
|
||||
hasRoundSae := false
|
||||
var msg []string // Error message parts
|
||||
|
||||
suffixes := strings.Split(cond, ".")
|
||||
for i, suffix := range suffixes {
|
||||
switch suffix {
|
||||
case "Z":
|
||||
if i != len(suffixes)-1 {
|
||||
msg = append(msg, "Z suffix should be the last")
|
||||
}
|
||||
case "BCST":
|
||||
hasBcst = true
|
||||
case "SAE", "RN_SAE", "RZ_SAE", "RD_SAE", "RU_SAE":
|
||||
hasRoundSae = true
|
||||
default:
|
||||
if !unknownSet[suffix] {
|
||||
msg = append(msg, fmt.Sprintf("unknown suffix %q", suffix))
|
||||
}
|
||||
unknownSet[suffix] = true
|
||||
}
|
||||
|
||||
if suffixSet[suffix] {
|
||||
msg = append(msg, fmt.Sprintf("duplicate suffix %q", suffix))
|
||||
}
|
||||
suffixSet[suffix] = true
|
||||
}
|
||||
|
||||
if hasBcst && hasRoundSae {
|
||||
msg = append(msg, "can't combine rounding/SAE and broadcast")
|
||||
}
|
||||
|
||||
if len(msg) == 0 {
|
||||
return errors.New("bad suffix combination")
|
||||
}
|
||||
return errors.New(strings.Join(msg, "; "))
|
||||
}
|
||||
|
||||
// opSuffixTable is a complete list of possible opcode suffix combinations.
|
||||
// It "maps" uint8 suffix bits to their string representation.
|
||||
// With the exception of first and last elements, order is not important.
|
||||
var opSuffixTable = [...]string{
|
||||
"", // Map empty suffix to empty string.
|
||||
|
||||
"Z",
|
||||
|
||||
"SAE",
|
||||
"SAE.Z",
|
||||
|
||||
"RN_SAE",
|
||||
"RZ_SAE",
|
||||
"RD_SAE",
|
||||
"RU_SAE",
|
||||
"RN_SAE.Z",
|
||||
"RZ_SAE.Z",
|
||||
"RD_SAE.Z",
|
||||
"RU_SAE.Z",
|
||||
|
||||
"BCST",
|
||||
"BCST.Z",
|
||||
|
||||
"<bad suffix>",
|
||||
}
|
||||
|
||||
// opSuffix represents instruction opcode suffix.
|
||||
// Compound (multi-part) suffixes expressed with single opSuffix value.
|
||||
//
|
||||
// uint8 type is used to fit obj.Prog.Scond.
|
||||
type opSuffix uint8
|
||||
|
||||
// badOpSuffix is used to represent all invalid suffix combinations.
|
||||
const badOpSuffix = opSuffix(len(opSuffixTable) - 1)
|
||||
|
||||
// newOpSuffix returns opSuffix object that matches suffixes string.
|
||||
//
|
||||
// If no matching suffix is found, special "invalid" suffix is returned.
|
||||
// Use IsValid method to check against this case.
|
||||
func newOpSuffix(suffixes string) opSuffix {
|
||||
for i := range opSuffixTable {
|
||||
if opSuffixTable[i] == suffixes {
|
||||
return opSuffix(i)
|
||||
}
|
||||
}
|
||||
return badOpSuffix
|
||||
}
|
||||
|
||||
// IsValid reports whether suffix is valid.
|
||||
// Empty suffixes are valid.
|
||||
func (suffix opSuffix) IsValid() bool {
|
||||
return suffix != badOpSuffix
|
||||
}
|
||||
|
||||
// String returns suffix printed representation.
|
||||
//
|
||||
// It matches the string that was used to create suffix with NewX86Suffix()
|
||||
// for valid suffixes.
|
||||
// For all invalid suffixes, special marker is returned.
|
||||
func (suffix opSuffix) String() string {
|
||||
return opSuffixTable[suffix]
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue