Project

General

Profile

Feature #533

RFE: Need support for Intel x86 "Advanced Vector Extensions" (="AVX") instructions

Added by Roland Mainz over 9 years ago. Updated over 8 years ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
-
Start date:
2010-12-16
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:

Description

RFE: Need support for Intel x86 "Advanced Vector Extensions" (="AVX") instructions (this is the "meta"-bug to track all smaller bugs which need to be filed to get the AVX work implemented).

Some work has already been done:
6762020 Disassembly support for Intel Advanced Vector Extensions (AVX)
6926635 Disassembler support for XGETBV, XRSTOR, XSAVE and XSETBV instructions
Contributed by Xinping Huang <xinping.huang@intel.com>

The outstanding work is (but not limited to):
- "mdb" support
- kernel/context switch support to save/restore the new registers
- ELF support
- /usr/bin/isalist support
- <insert more...>

References:
- PSARC/2010/311  ("Intel AVX Support")
- http://en.wikipedia.org/wiki/Advanced_Vector_Extensions

Notes:
- Priority is very "low" (for now). There are samples of the CPUs floating around on selected customers sides but it will likely take until 2012 until this stuff becomes mainstream
- It seems Solaris 11 already has this feature implemented

Files

20100804_kuriakose.kuruvilla.txt (28.3 KB) 20100804_kuriakose.kuruvilla.txt ARC case for AVX support Roland Mainz, 2010-12-16 03:48 PM

Related issues

Related to illumos gate - Bug #2413: %ymm* need to be preserved on way through PLTResolved2012-03-16

Actions

History

#2

Updated by Rich Lowe over 8 years ago

  • Difficulty set to Medium
  • Tags set to needs-triage

The bug submitter was apparently very confused about this.

- context switch support is done (that's xsave/xrstore)
- ELF support is done
- isalist does not generally support things like this

The things outstanding are:

- mdb should print %ymm whenever they exist, and it would normally be displaying FP registers
- isainfo should display 'avx' if the facility is present.

The latter is actually the union of the "ELF" and "isalist" bits above, the work was 99% done but somehow the important bit got skipped -- the AV_I386_AVX flag is never set! It should be set in i86pc/os/cpuid.c as all the others are. This may mean that if you use a compiler or assembler which declares a binary as needing this feature, you're hosed.

Also available in: Atom PDF