
Recent changes to the way registers are handled broke reporting of AVX registers (i.e. YMMx). This change restores the functionality by: - concatenating the higher half of the YMMx registers to their corresponding XMMx lower half (YMMx registers do not have an independent DWARF register number) - modifying the formatSSEReg function to handle them when they are present. Fixes #2033
32 lines
645 B
Go
32 lines
645 B
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"runtime"
|
|
)
|
|
|
|
func fputestsetup(f64a, f64b, f64c, f64d float64, f32a, f32b, f32c, f32d float32, avx2, avx512 bool)
|
|
func getCPUID70() (ebx, ecx uint32)
|
|
|
|
func main() {
|
|
var f64a float64 = 1.1
|
|
var f64b float64 = 1.2
|
|
var f64c float64 = 1.3
|
|
var f64d float64 = 1.4
|
|
var f32a float32 = 1.5
|
|
var f32b float32 = 1.6
|
|
var f32c float32 = 1.7
|
|
var f32d float32 = 1.8
|
|
|
|
ebx, _ := getCPUID70()
|
|
avx2 := ebx&(1<<5) != 0
|
|
avx512 := ebx&(1<<16) != 0
|
|
|
|
fputestsetup(f64a, f64b, f64c, f64d, f32a, f32b, f32c, f32d, avx2, avx512)
|
|
if len(os.Args) < 2 || os.Args[1] != "panic" {
|
|
runtime.Breakpoint()
|
|
} else {
|
|
panic("boom!")
|
|
}
|
|
}
|