From 70916cbf71f50b9e1e6f13559e10d6dbb92beb32 Mon Sep 17 00:00:00 2001 From: Fanbo Meng Date: Wed, 3 Apr 2024 05:26:33 -0400 Subject: [PATCH] Remove COMPILER_IBMXL macro for z/OS (#1777) COMPILER_IBMXL identifies the Clang based IBM XL compiler (xlclang) on z/OS. This compiler is obsolete and replaced by the Open XL compiler, so the macro is no longer needed and the existing code would lead to incorrect asm syntax for Open XL. --- src/cycleclock.h | 5 +++-- src/internal_macros.h | 6 +----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/cycleclock.h b/src/cycleclock.h index 91abcf9d..a2584376 100644 --- a/src/cycleclock.h +++ b/src/cycleclock.h @@ -181,10 +181,11 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() { #elif defined(__s390__) // Covers both s390 and s390x. // Return the CPU clock. uint64_t tsc; -#if defined(BENCHMARK_OS_ZOS) && defined(COMPILER_IBMXL) - // z/OS XL compiler HLASM syntax. +#if defined(BENCHMARK_OS_ZOS) + // z/OS HLASM syntax. asm(" stck %0" : "=m"(tsc) : : "cc"); #else + // Linux on Z syntax. asm("stck %0" : "=Q"(tsc) : : "cc"); #endif return tsc; diff --git a/src/internal_macros.h b/src/internal_macros.h index 8dd7d0c6..f4894ba8 100644 --- a/src/internal_macros.h +++ b/src/internal_macros.h @@ -11,11 +11,7 @@ #endif #if defined(__clang__) - #if defined(__ibmxl__) - #if !defined(COMPILER_IBMXL) - #define COMPILER_IBMXL - #endif - #elif !defined(COMPILER_CLANG) + #if !defined(COMPILER_CLANG) #define COMPILER_CLANG #endif #elif defined(_MSC_VER)