svn commit: r353390 - in head: contrib/processor-trace/include contrib/processor-trace/include/posix contrib/processor-trace/include/windows contrib/processor-trace/libipt contrib/processor-trace/l...
Ruslan Bukin
br at FreeBSD.org
Thu Oct 10 12:46:44 UTC 2019
Author: br
Date: Thu Oct 10 12:46:34 2019
New Revision: 353390
URL: https://svnweb.freebsd.org/changeset/base/353390
Log:
Update Intel Processor Trace decoder library.
Its latest version merged from:
^/vendor/processor-trace/892e12c5a27bda5806d1e63269986bb4171b5a8b
Sponsored by: DARPA, AFRL
Added:
head/contrib/processor-trace/include/pt_version.h (contents, props changed)
head/contrib/processor-trace/libipt/internal/include/pti-disp_default.h (contents, props changed)
head/contrib/processor-trace/libipt/internal/include/pti-sib.h (contents, props changed)
head/contrib/processor-trace/libipt/test/src/ptunit-block_decoder.c (contents, props changed)
head/contrib/processor-trace/libipt/test/src/ptunit-encoder.c (contents, props changed)
head/contrib/processor-trace/libipt/test/src/ptunit-insn_decoder.c (contents, props changed)
head/contrib/processor-trace/libipt/test/src/ptunit-packet_decoder.c (contents, props changed)
Deleted:
head/contrib/processor-trace/libipt/src/posix/init.c
head/contrib/processor-trace/libipt/src/windows/init.c
Modified:
head/contrib/processor-trace/include/posix/threads.h
head/contrib/processor-trace/include/pt_compiler.h
head/contrib/processor-trace/include/windows/inttypes.h
head/contrib/processor-trace/include/windows/threads.h
head/contrib/processor-trace/libipt/CMakeLists.txt
head/contrib/processor-trace/libipt/include/intel-pt.h
head/contrib/processor-trace/libipt/include/intel-pt.h.in
head/contrib/processor-trace/libipt/internal/include/posix/pt_section_posix.h
head/contrib/processor-trace/libipt/internal/include/pt_asid.h
head/contrib/processor-trace/libipt/internal/include/pt_block_cache.h
head/contrib/processor-trace/libipt/internal/include/pt_block_decoder.h
head/contrib/processor-trace/libipt/internal/include/pt_config.h
head/contrib/processor-trace/libipt/internal/include/pt_cpu.h
head/contrib/processor-trace/libipt/internal/include/pt_cpuid.h
head/contrib/processor-trace/libipt/internal/include/pt_decoder_function.h
head/contrib/processor-trace/libipt/internal/include/pt_encoder.h
head/contrib/processor-trace/libipt/internal/include/pt_event_queue.h
head/contrib/processor-trace/libipt/internal/include/pt_ild.h
head/contrib/processor-trace/libipt/internal/include/pt_image.h
head/contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h
head/contrib/processor-trace/libipt/internal/include/pt_insn.h
head/contrib/processor-trace/libipt/internal/include/pt_insn_decoder.h
head/contrib/processor-trace/libipt/internal/include/pt_last_ip.h
head/contrib/processor-trace/libipt/internal/include/pt_mapped_section.h
head/contrib/processor-trace/libipt/internal/include/pt_msec_cache.h
head/contrib/processor-trace/libipt/internal/include/pt_opcodes.h
head/contrib/processor-trace/libipt/internal/include/pt_packet.h
head/contrib/processor-trace/libipt/internal/include/pt_packet_decoder.h
head/contrib/processor-trace/libipt/internal/include/pt_query_decoder.h
head/contrib/processor-trace/libipt/internal/include/pt_retstack.h
head/contrib/processor-trace/libipt/internal/include/pt_section.h
head/contrib/processor-trace/libipt/internal/include/pt_section_file.h
head/contrib/processor-trace/libipt/internal/include/pt_sync.h
head/contrib/processor-trace/libipt/internal/include/pt_time.h
head/contrib/processor-trace/libipt/internal/include/pt_tnt_cache.h
head/contrib/processor-trace/libipt/internal/include/pti-disp-defs.h
head/contrib/processor-trace/libipt/internal/include/pti-disp.h
head/contrib/processor-trace/libipt/internal/include/pti-imm-defs.h
head/contrib/processor-trace/libipt/internal/include/pti-imm.h
head/contrib/processor-trace/libipt/internal/include/pti-modrm-defs.h
head/contrib/processor-trace/libipt/internal/include/pti-modrm.h
head/contrib/processor-trace/libipt/internal/include/windows/pt_section_windows.h
head/contrib/processor-trace/libipt/src/posix/pt_cpuid.c
head/contrib/processor-trace/libipt/src/posix/pt_section_posix.c
head/contrib/processor-trace/libipt/src/pt_asid.c
head/contrib/processor-trace/libipt/src/pt_block_cache.c
head/contrib/processor-trace/libipt/src/pt_block_decoder.c
head/contrib/processor-trace/libipt/src/pt_config.c
head/contrib/processor-trace/libipt/src/pt_cpu.c
head/contrib/processor-trace/libipt/src/pt_decoder_function.c
head/contrib/processor-trace/libipt/src/pt_encoder.c
head/contrib/processor-trace/libipt/src/pt_error.c
head/contrib/processor-trace/libipt/src/pt_event_queue.c
head/contrib/processor-trace/libipt/src/pt_ild.c
head/contrib/processor-trace/libipt/src/pt_image.c
head/contrib/processor-trace/libipt/src/pt_image_section_cache.c
head/contrib/processor-trace/libipt/src/pt_insn.c
head/contrib/processor-trace/libipt/src/pt_insn_decoder.c
head/contrib/processor-trace/libipt/src/pt_last_ip.c
head/contrib/processor-trace/libipt/src/pt_msec_cache.c
head/contrib/processor-trace/libipt/src/pt_packet.c
head/contrib/processor-trace/libipt/src/pt_packet_decoder.c
head/contrib/processor-trace/libipt/src/pt_query_decoder.c
head/contrib/processor-trace/libipt/src/pt_retstack.c
head/contrib/processor-trace/libipt/src/pt_section.c
head/contrib/processor-trace/libipt/src/pt_section_file.c
head/contrib/processor-trace/libipt/src/pt_sync.c
head/contrib/processor-trace/libipt/src/pt_time.c
head/contrib/processor-trace/libipt/src/pt_tnt_cache.c
head/contrib/processor-trace/libipt/src/pt_version.c
head/contrib/processor-trace/libipt/src/windows/pt_cpuid.c
head/contrib/processor-trace/libipt/src/windows/pt_section_windows.c
head/contrib/processor-trace/libipt/test/src/ptunit-asid.c
head/contrib/processor-trace/libipt/test/src/ptunit-block_cache.c
head/contrib/processor-trace/libipt/test/src/ptunit-config.c
head/contrib/processor-trace/libipt/test/src/ptunit-cpp.cpp
head/contrib/processor-trace/libipt/test/src/ptunit-cpu.c
head/contrib/processor-trace/libipt/test/src/ptunit-event_queue.c
head/contrib/processor-trace/libipt/test/src/ptunit-fetch.c
head/contrib/processor-trace/libipt/test/src/ptunit-ild.c
head/contrib/processor-trace/libipt/test/src/ptunit-image.c
head/contrib/processor-trace/libipt/test/src/ptunit-image_section_cache.c
head/contrib/processor-trace/libipt/test/src/ptunit-last_ip.c
head/contrib/processor-trace/libipt/test/src/ptunit-mapped_section.c
head/contrib/processor-trace/libipt/test/src/ptunit-msec_cache.c
head/contrib/processor-trace/libipt/test/src/ptunit-packet.c
head/contrib/processor-trace/libipt/test/src/ptunit-query.c
head/contrib/processor-trace/libipt/test/src/ptunit-retstack.c
head/contrib/processor-trace/libipt/test/src/ptunit-section-file.c
head/contrib/processor-trace/libipt/test/src/ptunit-section.c
head/contrib/processor-trace/libipt/test/src/ptunit-sync.c
head/contrib/processor-trace/libipt/test/src/ptunit-time.c
head/contrib/processor-trace/libipt/test/src/ptunit-tnt_cache.c
head/lib/libipt/Makefile
Modified: head/contrib/processor-trace/include/posix/threads.h
==============================================================================
--- head/contrib/processor-trace/include/posix/threads.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/include/posix/threads.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/include/pt_compiler.h
==============================================================================
--- head/contrib/processor-trace/include/pt_compiler.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/include/pt_compiler.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2018, Intel Corporation
+ * Copyright (c) 2017-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Added: head/contrib/processor-trace/include/pt_version.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/contrib/processor-trace/include/pt_version.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2018-2019, Intel Corporation
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PT_VERSION_H
+#define PT_VERSION_H
+
+#include "intel-pt.h"
+
+#include <stdio.h>
+#include <inttypes.h>
+
+
+static inline int pt_fprint_version(FILE *file, struct pt_version version)
+{
+ if (version.build) {
+ if (version.ext && version.ext[0])
+ return fprintf(file, "%" PRIu8 ".%" PRIu8 ".%" PRIu16
+ "-%" PRIu32 "-%s", version.major,
+ version.minor, version.patch,
+ version.build, version.ext);
+ else
+ return fprintf(file, "%" PRIu8 ".%" PRIu8 ".%" PRIu16
+ "-%" PRIu32 "", version.major,
+ version.minor, version.patch,
+ version.build);
+ } else {
+ if (version.ext && version.ext[0])
+ return fprintf(file, "%" PRIu8 ".%" PRIu8 ".%" PRIu16
+ "-%s", version.major, version.minor,
+ version.patch, version.ext);
+ else
+ return fprintf(file, "%" PRIu8 ".%" PRIu8 ".%" PRIu16,
+ version.major, version.minor,
+ version.patch);
+ }
+}
+
+static inline int pt_print_version(struct pt_version version)
+{
+ return pt_fprint_version(stdout, version);
+}
+
+static inline void pt_print_tool_version(const char *name)
+{
+ struct pt_version v = {
+ /* .major = */ PT_VERSION_MAJOR,
+ /* .minor = */ PT_VERSION_MINOR,
+ /* .patch = */ PT_VERSION_PATCH,
+ /* .build = */ PT_VERSION_BUILD,
+ /* .ext = */ PT_VERSION_EXT
+ };
+
+ if (!name)
+ name = "<unknown>";
+
+ printf("%s-", name);
+ pt_print_version(v);
+ printf(" / libipt-");
+ pt_print_version(pt_library_version());
+ printf("\n");
+}
+
+#endif /* PT_VERSION_H */
Modified: head/contrib/processor-trace/include/windows/inttypes.h
==============================================================================
--- head/contrib/processor-trace/include/windows/inttypes.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/include/windows/inttypes.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/include/windows/threads.h
==============================================================================
--- head/contrib/processor-trace/include/windows/threads.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/include/windows/threads.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/CMakeLists.txt
==============================================================================
--- head/contrib/processor-trace/libipt/CMakeLists.txt Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/CMakeLists.txt Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,4 +1,4 @@
-# Copyright (c) 2013-2018, Intel Corporation
+# Copyright (c) 2013-2019, Intel Corporation
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@@ -64,28 +64,28 @@ if (CMAKE_HOST_UNIX)
internal/include/posix
)
- set(LIBIPT_FILES ${LIBIPT_FILES} src/posix/init.c)
set(LIBIPT_SECTION_FILES ${LIBIPT_SECTION_FILES} src/posix/pt_section_posix.c)
endif (CMAKE_HOST_UNIX)
if (CMAKE_HOST_WIN32)
- add_definitions(
- # export libipt symbols
- #
- /Dpt_export=__declspec\(dllexport\)
- )
+ if (BUILD_SHARED_LIBS)
+ add_definitions(
+ # export libipt symbols
+ #
+ /Dpt_export=__declspec\(dllexport\)
+ )
+ endif (BUILD_SHARED_LIBS)
include_directories(
internal/include/windows
)
- set(LIBIPT_FILES ${LIBIPT_FILES} src/windows/init.c)
set(LIBIPT_SECTION_FILES ${LIBIPT_SECTION_FILES} src/windows/pt_section_windows.c)
endif (CMAKE_HOST_WIN32)
set(LIBIPT_FILES ${LIBIPT_FILES} ${LIBIPT_SECTION_FILES})
-add_library(libipt SHARED
+add_library(libipt
${LIBIPT_FILES}
)
@@ -167,6 +167,24 @@ add_ptunit_c_test(fetch
src/pt_encoder.c
src/pt_config.c
)
+add_ptunit_c_test(encoder
+ src/pt_encoder.c
+ src/pt_config.c
+)
+add_ptunit_c_test(packet_decoder
+ src/pt_packet_decoder.c
+ src/pt_packet.c
+ src/pt_config.c
+ src/pt_sync.c
+ src/pt_decoder_function.c
+ src/pt_query_decoder.c
+ src/pt_event_queue.c
+ src/pt_last_ip.c
+ src/pt_tnt_cache.c
+ src/pt_time.c
+)
+add_ptunit_c_test(insn_decoder ${LIBIPT_FILES})
+add_ptunit_c_test(block_decoder ${LIBIPT_FILES})
add_ptunit_cpp_test(cpp)
add_ptunit_libraries(cpp libipt)
Modified: head/contrib/processor-trace/libipt/include/intel-pt.h
==============================================================================
--- head/contrib/processor-trace/libipt/include/intel-pt.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/include/intel-pt.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -80,6 +80,7 @@ struct pt_block_decoder;
/** The header version. */
#define LIBIPT_VERSION_MAJOR ${PT_VERSION_MAJOR}
#define LIBIPT_VERSION_MINOR ${PT_VERSION_MINOR}
+#define LIBIPT_VERSION_PATCH ${PT_VERSION_PATCH}
#define LIBIPT_VERSION ((LIBIPT_VERSION_MAJOR << 8) + LIBIPT_VERSION_MINOR)
@@ -92,8 +93,8 @@ struct pt_version {
/** Minor version number. */
uint8_t minor;
- /** Reserved bits. */
- uint16_t reserved;
+ /** Patch level. */
+ uint16_t patch;
/** Build number. */
uint32_t build;
@@ -330,6 +331,16 @@ struct pt_errata {
*/
uint32_t apl11:1;
+ /** SKL168: Intel(R) PT CYC Packets Can be Dropped When Immediately
+ * Preceding PSB
+ *
+ * Due to a rare microarchitectural condition, generation of an Intel
+ * PT (Processor Trace) PSB (Packet Stream Boundary) packet can cause a
+ * single CYC (Cycle Count) packet, possibly along with an associated
+ * MTC (Mini Time Counter) packet, to be dropped.
+ */
+ uint32_t skl168:1;
+
/* Reserve a few bytes for the future. */
uint32_t reserved[15];
};
@@ -348,13 +359,25 @@ struct pt_conf_flags {
/** End a block after a jump instruction. */
uint32_t end_on_jump:1;
+
+ /** Preserve timing calibration on overflow. */
+ uint32_t keep_tcal_on_ovf:1;
} block;
/** Flags for the instruction flow decoder. */
struct {
/** Enable tick events for timing updates. */
uint32_t enable_tick_events:1;
+
+ /** Preserve timing calibration on overflow. */
+ uint32_t keep_tcal_on_ovf:1;
} insn;
+
+ /** Flags for the query decoder. */
+ struct {
+ /** Preserve timing calibration on overflow. */
+ uint32_t keep_tcal_on_ovf:1;
+ } query;
/* Reserve a few bytes for future extensions. */
uint32_t reserved[4];
Modified: head/contrib/processor-trace/libipt/include/intel-pt.h.in
==============================================================================
--- head/contrib/processor-trace/libipt/include/intel-pt.h.in Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/include/intel-pt.h.in Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -80,6 +80,7 @@ struct pt_block_decoder;
/** The header version. */
#define LIBIPT_VERSION_MAJOR ${PT_VERSION_MAJOR}
#define LIBIPT_VERSION_MINOR ${PT_VERSION_MINOR}
+#define LIBIPT_VERSION_PATCH ${PT_VERSION_PATCH}
#define LIBIPT_VERSION ((LIBIPT_VERSION_MAJOR << 8) + LIBIPT_VERSION_MINOR)
@@ -92,8 +93,8 @@ struct pt_version {
/** Minor version number. */
uint8_t minor;
- /** Reserved bits. */
- uint16_t reserved;
+ /** Patch level. */
+ uint16_t patch;
/** Build number. */
uint32_t build;
@@ -330,6 +331,16 @@ struct pt_errata {
*/
uint32_t apl11:1;
+ /** SKL168: Intel(R) PT CYC Packets Can be Dropped When Immediately
+ * Preceding PSB
+ *
+ * Due to a rare microarchitectural condition, generation of an Intel
+ * PT (Processor Trace) PSB (Packet Stream Boundary) packet can cause a
+ * single CYC (Cycle Count) packet, possibly along with an associated
+ * MTC (Mini Time Counter) packet, to be dropped.
+ */
+ uint32_t skl168:1;
+
/* Reserve a few bytes for the future. */
uint32_t reserved[15];
};
@@ -348,13 +359,25 @@ struct pt_conf_flags {
/** End a block after a jump instruction. */
uint32_t end_on_jump:1;
+
+ /** Preserve timing calibration on overflow. */
+ uint32_t keep_tcal_on_ovf:1;
} block;
/** Flags for the instruction flow decoder. */
struct {
/** Enable tick events for timing updates. */
uint32_t enable_tick_events:1;
+
+ /** Preserve timing calibration on overflow. */
+ uint32_t keep_tcal_on_ovf:1;
} insn;
+
+ /** Flags for the query decoder. */
+ struct {
+ /** Preserve timing calibration on overflow. */
+ uint32_t keep_tcal_on_ovf:1;
+ } query;
/* Reserve a few bytes for future extensions. */
uint32_t reserved[4];
Modified: head/contrib/processor-trace/libipt/internal/include/posix/pt_section_posix.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/posix/pt_section_posix.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/posix/pt_section_posix.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015-2018, Intel Corporation
+ * Copyright (c) 2015-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_asid.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_asid.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_asid.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_block_cache.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_block_cache.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_block_cache.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2018, Intel Corporation
+ * Copyright (c) 2016-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_block_decoder.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_block_decoder.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_block_decoder.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2018, Intel Corporation
+ * Copyright (c) 2016-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_config.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_config.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_config.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015-2018, Intel Corporation
+ * Copyright (c) 2015-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_cpu.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_cpu.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_cpu.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_cpuid.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_cpuid.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_cpuid.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_decoder_function.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_decoder_function.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_decoder_function.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_encoder.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_encoder.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_encoder.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_event_queue.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_event_queue.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_event_queue.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_ild.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_ild.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_ild.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -96,11 +96,6 @@ static inline uint8_t pti_get_modrm_rm(const struct pt
{
return ild->modrm_byte & 7;
}
-
-/* MAIN ENTRANCE POINTS */
-
-/* one time call. not thread safe init. call when single threaded. */
-extern void pt_ild_init(void);
/* all decoding is multithread safe. */
Modified: head/contrib/processor-trace/libipt/internal/include/pt_image.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_image.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_image.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2018, Intel Corporation
+ * Copyright (c) 2016-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_insn.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_insn.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_insn.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2018, Intel Corporation
+ * Copyright (c) 2016-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_insn_decoder.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_insn_decoder.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_insn_decoder.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_last_ip.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_last_ip.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_last_ip.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_mapped_section.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_mapped_section.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_mapped_section.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_msec_cache.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_msec_cache.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_msec_cache.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2018, Intel Corporation
+ * Copyright (c) 2017-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_opcodes.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_opcodes.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_opcodes.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_packet.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_packet.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_packet.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_packet_decoder.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_packet_decoder.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_packet_decoder.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_query_decoder.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_query_decoder.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_query_decoder.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_retstack.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_retstack.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_retstack.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_section.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_section.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_section.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -162,10 +162,15 @@ struct pt_section {
* The returned section is not mapped and starts with a user count of one and
* instruction caching enabled.
*
- * Returns a new section on success, NULL otherwise.
+ * Returns zero on success, a negative pt_error_code otherwise.
+ * Returns -pte_internal if @psection is NULL.
+ * Returns -pte_nomem when running out of memory.
+ * Returns -pte_bad_file if @filename cannot be opened.
+ * Returns -pte_invalid if @offset lies beyond @file.
+ * Returns -pte_invalid if @filename is too long.
*/
-extern struct pt_section *pt_mk_section(const char *file, uint64_t offset,
- uint64_t size);
+extern int pt_mk_section(struct pt_section **psection, const char *filename,
+ uint64_t offset, uint64_t size);
/* Lock a section.
*
Modified: head/contrib/processor-trace/libipt/internal/include/pt_section_file.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_section_file.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_section_file.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_sync.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_sync.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_sync.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pt_time.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_time.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_time.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018, Intel Corporation
+ * Copyright (c) 2014-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -166,6 +166,9 @@ struct pt_time_cal {
/* A flag saying whether we have seen a MTC packet. */
uint32_t have_mtc:1;
+
+ /* A flag saying whether we need to check for erratum SKL168. */
+ uint32_t check_skl168:1;
};
enum {
@@ -227,6 +230,10 @@ extern int pt_tcal_update_mtc(struct pt_time_cal *,
const struct pt_config *);
extern int pt_tcal_update_cyc(struct pt_time_cal *,
const struct pt_packet_cyc *,
+ const struct pt_config *);
+extern int pt_tcal_update_psb(struct pt_time_cal *,
+ const struct pt_config *);
+extern int pt_tcal_update_ovf(struct pt_time_cal *,
const struct pt_config *);
#endif /* PT_TIME_H */
Modified: head/contrib/processor-trace/libipt/internal/include/pt_tnt_cache.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pt_tnt_cache.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pt_tnt_cache.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pti-disp-defs.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pti-disp-defs.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pti-disp-defs.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pti-disp.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pti-disp.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pti-disp.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Added: head/contrib/processor-trace/libipt/internal/include/pti-disp_default.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/contrib/processor-trace/libipt/internal/include/pti-disp_default.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -0,0 +1,209 @@
+/*
+ * Copyright (c) 2017-2019, Intel Corporation
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PTI_DISP_DEFAULT_H
+#define PTI_DISP_DEFAULT_H
+
+#include <stdint.h>
+
+
+static const uint8_t disp_default[4][4][8] = {
+ /* Effective Addressing Mode: ptem_unknown. */ {
+ /* MOD: 0 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ },
+ /* MOD: 1 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ },
+ /* MOD: 2 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ },
+ /* MOD: 3 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ }
+ },
+
+ /* Effective Addressing Mode: ptem_16bit. */ {
+ /* MOD: 0 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 2,
+ /* RM: 7 */ 0
+ },
+ /* MOD: 1 */ {
+ /* RM: 0 */ 1,
+ /* RM: 1 */ 1,
+ /* RM: 2 */ 1,
+ /* RM: 3 */ 1,
+ /* RM: 4 */ 1,
+ /* RM: 5 */ 1,
+ /* RM: 6 */ 1,
+ /* RM: 7 */ 1
+ },
+ /* MOD: 2 */ {
+ /* RM: 0 */ 2,
+ /* RM: 1 */ 2,
+ /* RM: 2 */ 2,
+ /* RM: 3 */ 2,
+ /* RM: 4 */ 2,
+ /* RM: 5 */ 2,
+ /* RM: 6 */ 2,
+ /* RM: 7 */ 2
+ },
+ /* MOD: 3 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ }
+ },
+
+ /* Effective Addressing Mode: ptem_32bit. */ {
+ /* MOD: 0 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 4,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ },
+ /* MOD: 1 */ {
+ /* RM: 0 */ 1,
+ /* RM: 1 */ 1,
+ /* RM: 2 */ 1,
+ /* RM: 3 */ 1,
+ /* RM: 4 */ 1,
+ /* RM: 5 */ 1,
+ /* RM: 6 */ 1,
+ /* RM: 7 */ 1
+ },
+ /* MOD: 2 */ {
+ /* RM: 0 */ 4,
+ /* RM: 1 */ 4,
+ /* RM: 2 */ 4,
+ /* RM: 3 */ 4,
+ /* RM: 4 */ 4,
+ /* RM: 5 */ 4,
+ /* RM: 6 */ 4,
+ /* RM: 7 */ 4
+ },
+ /* MOD: 3 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ }
+ },
+
+ /* Effective Addressing Mode: ptem_64bit. */ {
+ /* MOD: 0 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 4,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ },
+ /* MOD: 1 */ {
+ /* RM: 0 */ 1,
+ /* RM: 1 */ 1,
+ /* RM: 2 */ 1,
+ /* RM: 3 */ 1,
+ /* RM: 4 */ 1,
+ /* RM: 5 */ 1,
+ /* RM: 6 */ 1,
+ /* RM: 7 */ 1
+ },
+ /* MOD: 2 */ {
+ /* RM: 0 */ 4,
+ /* RM: 1 */ 4,
+ /* RM: 2 */ 4,
+ /* RM: 3 */ 4,
+ /* RM: 4 */ 4,
+ /* RM: 5 */ 4,
+ /* RM: 6 */ 4,
+ /* RM: 7 */ 4
+ },
+ /* MOD: 3 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ }
+ }
+};
+
+#endif /* PTI_DISP_DEFAULT_H */
Modified: head/contrib/processor-trace/libipt/internal/include/pti-imm-defs.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pti-imm-defs.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pti-imm-defs.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pti-imm.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pti-imm.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pti-imm.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pti-modrm-defs.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pti-modrm-defs.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pti-modrm-defs.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Modified: head/contrib/processor-trace/libipt/internal/include/pti-modrm.h
==============================================================================
--- head/contrib/processor-trace/libipt/internal/include/pti-modrm.h Thu Oct 10 12:20:25 2019 (r353389)
+++ head/contrib/processor-trace/libipt/internal/include/pti-modrm.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, Intel Corporation
+ * Copyright (c) 2013-2019, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
Added: head/contrib/processor-trace/libipt/internal/include/pti-sib.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/contrib/processor-trace/libipt/internal/include/pti-sib.h Thu Oct 10 12:46:34 2019 (r353390)
@@ -0,0 +1,209 @@
+/*
+ * Copyright (c) 2017-2019, Intel Corporation
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PTI_SIB_H
+#define PTI_SIB_H
+
+#include <stdint.h>
+
+
+static const uint8_t has_sib[4][4][8] = {
+ /* Effective Addressing Mode: ptem_unknown. */ {
+ /* MOD: 0 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ },
+ /* MOD: 1 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ },
+ /* MOD: 2 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ },
+ /* MOD: 3 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
+ }
+ },
+
+ /* Effective Addressing Mode: ptem_16bit. */ {
+ /* MOD: 0 */ {
+ /* RM: 0 */ 0,
+ /* RM: 1 */ 0,
+ /* RM: 2 */ 0,
+ /* RM: 3 */ 0,
+ /* RM: 4 */ 0,
+ /* RM: 5 */ 0,
+ /* RM: 6 */ 0,
+ /* RM: 7 */ 0
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-head
mailing list