Fix SIGILL in TestDARN() function
I thought this was due to trying to call the darn instruction even though g_hasDARN == false on Power8. However, the problem turned out to be a Power9 load was used when DARN class threw a DARN_Err.pull/752/head
parent
3e909c13d4
commit
6028a6921a
|
|
@ -637,7 +637,7 @@ ifeq ($(DETECT_FEATURES),1)
|
||||||
TOPT = $(POWER9_FLAG)
|
TOPT = $(POWER9_FLAG)
|
||||||
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
|
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
|
||||||
ifeq ($(strip $(HAVE_OPT)),0)
|
ifeq ($(strip $(HAVE_OPT)),0)
|
||||||
DARN_FLAG = $(POWER9_FLAG)
|
# DARN_FLAG = $(POWER9_FLAG)
|
||||||
else
|
else
|
||||||
POWER9_FLAG =
|
POWER9_FLAG =
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -6,14 +6,6 @@
|
||||||
// additional CXXFLAGS are required to enable the appropriate
|
// additional CXXFLAGS are required to enable the appropriate
|
||||||
// instructions sets in some build configurations.
|
// instructions sets in some build configurations.
|
||||||
|
|
||||||
// The XLC on Linux case is a special case because code generated by XLC on
|
|
||||||
// Linux claims the generator is available when it is not. LLVM Clang does
|
|
||||||
// not have the trouble. The problem seems to be related to the signal
|
|
||||||
// handler. It looks like first call to CPU_ProbePower9() and CPU_ProbeDARN()
|
|
||||||
// are correct, but the call to HasDARN() returns the wrong result. If I am
|
|
||||||
// parsing things correctly while stepping the code and disassembly, it looks
|
|
||||||
// like the result of the inline asm is being removed.
|
|
||||||
|
|
||||||
#include "pch.h"
|
#include "pch.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue