You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
1
(3) |
2
|
3
(5) |
4
(9) |
5
(4) |
6
|
|
7
(1) |
8
(8) |
9
(8) |
10
(12) |
11
(12) |
12
(10) |
13
(4) |
|
14
(8) |
15
(9) |
16
(16) |
17
(12) |
18
(5) |
19
(5) |
20
(5) |
|
21
|
22
(13) |
23
(5) |
24
(13) |
25
(1) |
26
(3) |
27
(3) |
|
28
|
29
(1) |
30
(3) |
31
(9) |
|
|
|
|
From: <sv...@va...> - 2017-05-24 15:24:24
|
Author: sewardj
Date: Wed May 24 16:24:16 2017
New Revision: 16416
Log:
Update doc building notes for Fedora 25.
Modified:
trunk/docs/README
Modified: trunk/docs/README
==============================================================================
--- trunk/docs/README (original)
+++ trunk/docs/README Wed May 24 16:24:16 2017
@@ -81,6 +81,24 @@
Below are random notes and recollections about how to build PDF / PS
documents from the XML source at various times on various Linux distros.
+Notes [May 2017]
+----------------
+Fedora 25: the "Notes [Sept 2015]" are still valid. But to summarise,
+two steps are necessary:
+
+(1) install packages as listed below
+(2) apply Mark's epstopdf-base.sty hack as documented in "Notes [Mar 2015]"
+
+Packages to install:
+
+ sudo dnf install texlive-xmltex texlive-xmltex-bin texlive-xmltex-doc \
+ texlive dblatex texlive-xmltex docbook-style-xsl docbook-dtds \
+ docbook-style-xsl.noarch docbook-simple.noarch docbook-simple.noarch \
+ docbook-slides.noarch docbook-style-dsssl.noarch docbook-utils.noarch \
+ docbook-utils-pdf.noarch docbook5-schemas.noarch \
+ docbook5-style-xsl.noarch passivetex
+
+
Notes [Sept 2015]
-----------------
Fedora 21 and 22: Had mucho trouble with building the print docs on
|
|
From: <sv...@va...> - 2017-05-24 14:29:53
|
Author: sewardj
Date: Wed May 24 15:29:41 2017
New Revision: 16415
Log:
Add test cases for x86 CET nops. Pertains to #379525.
Test case from tat...@in....
Added:
trunk/none/tests/amd64/cet_nops.c
trunk/none/tests/amd64/cet_nops.stderr.exp
trunk/none/tests/amd64/cet_nops.stdout.exp
trunk/none/tests/amd64/cet_nops.vgtest
Modified:
trunk/none/tests/amd64/Makefile.am
Modified: trunk/none/tests/amd64/Makefile.am
==============================================================================
--- trunk/none/tests/amd64/Makefile.am (original)
+++ trunk/none/tests/amd64/Makefile.am Wed May 24 15:29:41 2017
@@ -38,6 +38,7 @@
bug132918.stdout.exp-older-glibc \
bug156404-amd64.vgtest bug156404-amd64.stdout.exp \
bug156404-amd64.stderr.exp \
+ cet_nops.vgtest cet_nops.stdout.exp cet_nops.stderr.exp \
clc.vgtest clc.stdout.exp clc.stderr.exp \
crc32.vgtest crc32.stdout.exp crc32.stderr.exp \
cmpxchg.vgtest cmpxchg.stdout.exp cmpxchg.stderr.exp \
@@ -96,6 +97,7 @@
amd64locked \
bt_flags \
bug127521-64 bug132813-amd64 bug132918 bug137714-amd64 \
+ cet_nops \
clc \
cmpxchg \
getseg \
Added: trunk/none/tests/amd64/cet_nops.c
==============================================================================
--- trunk/none/tests/amd64/cet_nops.c (added)
+++ trunk/none/tests/amd64/cet_nops.c Wed May 24 15:29:41 2017
@@ -0,0 +1,2111 @@
+#include <stdio.h>
+
+int main ()
+{
+ printf("start doing absolutely nothing ..\n");
+ fflush(stdout);
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0x5A, 0x22" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0x04, 0x60" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x19, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x1e, 0xff" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x1e, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x1e, 0x40, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x1e, 0x44, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x64, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x64, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x64, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x64, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x65, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x65, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x65, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x65, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x65, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x65, 0x0f, 0x1e, 0x80, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x2e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x2e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x2e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x2e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x2e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x2e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x36, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x36, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x36, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x36, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x36, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x36, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x3e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x3e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x3e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x3e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x3e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x3e, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x26, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x26, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x26, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x26, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf2, 0x66, 0x26, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0xf3, 0x66, 0x26, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x64, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0" :::"cc","memory");
+__asm__ __volatile__ (".byte 0x66, 0x64, 0x0f, 0x1e, 0x84, 0x0, 0x0, 0x0,...
[truncated message content] |
|
From: <sv...@va...> - 2017-05-24 14:28:32
|
Author: sewardj
Date: Wed May 24 15:28:25 2017
New Revision: 3383
Log:
Handle x86 CET prefixes (64 bit only). Fixes #379525.
Patch from tat...@in....
Modified:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c
==============================================================================
--- trunk/priv/guest_amd64_toIR.c (original)
+++ trunk/priv/guest_amd64_toIR.c Wed May 24 15:28:25 2017
@@ -21830,13 +21830,22 @@
}
return delta;
+ case 0x19:
+ case 0x1C:
+ case 0x1D:
+ case 0x1E:
case 0x1F:
- if (haveF2orF3(pfx)) goto decode_failure;
+ // Intel CET instructions can have any prefixes before NOPs
+ // and can use any ModRM, SIB and disp
modrm = getUChar(delta);
- if (epartIsReg(modrm)) goto decode_failure;
- addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
- delta += alen;
- DIP("nop%c %s\n", nameISize(sz), dis_buf);
+ if (epartIsReg(modrm)) {
+ delta += 1;
+ DIP("nop%c\n", nameISize(sz));
+ } else {
+ addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
+ delta += alen;
+ DIP("nop%c %s\n", nameISize(sz), dis_buf);
+ }
return delta;
case 0x31: { /* RDTSC */
|
|
From: <sv...@va...> - 2017-05-24 14:07:56
|
Author: sewardj
Date: Wed May 24 15:07:49 2017
New Revision: 16414
Log:
Enable fair scheduling by default on Linux. n-i-bz.
Modified:
trunk/coregrind/m_options.c
Modified: trunk/coregrind/m_options.c
==============================================================================
--- trunk/coregrind/m_options.c (original)
+++ trunk/coregrind/m_options.c Wed May 24 15:07:49 2017
@@ -105,8 +105,13 @@
Bool VG_(clo_debug_dump_line) = False;
Bool VG_(clo_debug_dump_frames) = False;
Bool VG_(clo_trace_redir) = False;
-enum FairSchedType
- VG_(clo_fair_sched) = disable_fair_sched;
+
+#if defined(VGO_linux)
+enum FairSchedType VG_(clo_fair_sched) = enable_fair_sched;
+#else
+enum FairSchedType VG_(clo_fair_sched) = disable_fair_sched;
+#endif
+
Bool VG_(clo_trace_sched) = False;
Bool VG_(clo_profile_heap) = False;
Int VG_(clo_core_redzone_size) = CORE_REDZONE_DEFAULT_SZB;
|
|
From: <sv...@va...> - 2017-05-24 13:43:15
|
Author: sewardj
Date: Wed May 24 14:43:08 2017
New Revision: 16413
Log:
Update.
Modified:
trunk/NEWS
trunk/docs/internals/3_12_BUGSTATUS.txt
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed May 24 14:43:08 2017
@@ -117,6 +117,7 @@
362223 assertion failed when .valgrindrc is a directory instead of a file
367543 bt/btc/btr/bts x86/x86_64 instructions are poorly-handled wrt flags
367942 Segfault vgPlain_do_sys_sigaction (m_signals.c:1138)
+368507 can't malloc chunks larger than about 34GB
368529 Android arm target link error, missing atexit and pthread_atfork
368863 WARNING: unhandled arm64-linux syscall: 100 (get_robust_list)
368865 WARNING: unhandled arm64-linux syscall: 272 (kcmp)
@@ -127,6 +128,7 @@
368924 WARNING: unhandled arm64-linux syscall: 84 (sync_file_range)
368925 WARNING: unhandled arm64-linux syscall: 130 (tkill)
368926 WARNING: unhandled arm64-linux syscall: 97 (unshare)
+369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
370028 Reduce the number of compiler warnings on MIPS platforms
370635 arm64 missing syscall getcpu
371225 Fix order of timer_{gettime,getoverrun,settime} syscalls on arm64
@@ -198,8 +200,11 @@
379838 disAMode(x86): not an addr!
379703 PC ISA 3.0 fixes: stxvx, stxv, xscmpexpdp instructions, expected output
update.
+379890 arm: unhandled instruction: 0xEBAD 0x1B05 (sub.w fp, sp, r5, lsl #4)
379895 clock_gettime does not execute POST syscall wrapper
379925 PPC64, mtffs does not set the FPCC and C bits in the FPSCR register correctly
+379966 WARNING: unhandled amd64-linux syscall: 313 (finit_module)
+
Release 3.12.0 (20 October 2016)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Modified: trunk/docs/internals/3_12_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_12_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_12_BUGSTATUS.txt Wed May 24 14:43:08 2017
@@ -51,9 +51,6 @@
373990 Potential shift left overflow in guest_arm_toIR.c
-369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
- [fixed with --sim-hints=fallback-llsc?]
-
369509 ARMv8.1 LSE instructions are not supported
369723 __builtin_longjmp not supported in clang/llvm on Android arm64 target
@@ -66,8 +63,6 @@
=== VEX/arm64 ==========================================================
-369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
-
369509 ARMv8.1 LSE instructions are not supported
377966 disInstr(arm64): unhandled instruction 0xD50B7425
@@ -220,11 +215,6 @@
(carried over)
366817 VALGRIND_MEMPOOL_CHANGE has a performance bug
-(carried over)
-368507 valgrind throws std::bad_alloc on memory allocations larger
- than 34255421416 bytes
- (increase usable address space post release, on trunk)
-
371989 PCMPISTRM $0x72 validity bit propagation is imprecise
369854 Valgrind reports an Invalid Read in __intel_new_memcpy
@@ -409,8 +399,6 @@
(carried over)
362680 --error-exitcode not honored when file descriptor leaks are found
-374963 increase valgrind's load address to prevent mmap failure
-
377006 valgrind/memcheck segfaults under certain kernel versions (amd64)
but not others.
@@ -469,23 +457,6 @@
* = lower priority, do these if time available
**
-352364 ppc64: --expensive-definedness-checks=yes is not quite working here
-
-**
-(carried over)
-368507 valgrind throws std::bad_alloc on memory allocations larger
- than 34255421416 bytes
- (increase usable address space post release, on trunk)
-
-**
-369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
- (is mostly fixed)
-
-**
-374963 increase valgrind's load address to prevent mmap failure
- (has a patch with a change to 0x5800'0000)
-
-**
n-i-bz major perf problems w/ stack registration + stack recycling
Should be fixed. Try again with ./mach gtest
@@ -555,8 +526,11 @@
========================================================================
========================================================================
-- increase usable memory?
-- get rid of repeated brk message
-- progress stuff?
-- resize translation caches
-- expensive interpretation by default?
+. - increase usable memory?
+. - get rid of repeated brk message
+. - progress stuff? NO
+. - resize translation caches
+. - expensive interpretation by default? NO
+. - turn on inline debuginfo reading for more tools
+. - make fair-sched the default on Linux
+. - reduce PAUSE hold length
|
|
From: <sv...@va...> - 2017-05-24 13:42:40
|
Author: sewardj
Date: Wed May 24 14:42:33 2017
New Revision: 16412
Log:
When a thread hints that it is in a spin-wait loop (eg, x86 REP NOP insn),
deschedule the thread much sooner (300 evchecks) than previously (1000
evchecks). Once the thread is spinning, there's absolutely no point in
continuing with it, since only a different thread can get it out of the loop,
so we need to drop the current thread ASAP.
Modified:
trunk/coregrind/m_scheduler/scheduler.c
Modified: trunk/coregrind/m_scheduler/scheduler.c
==============================================================================
--- trunk/coregrind/m_scheduler/scheduler.c (original)
+++ trunk/coregrind/m_scheduler/scheduler.c Wed May 24 14:42:33 2017
@@ -1453,8 +1453,8 @@
before swapping to another. That means that short term
spins waiting for hardware to poke memory won't cause a
thread swap. */
- if (dispatch_ctr > 1000)
- dispatch_ctr = 1000;
+ if (dispatch_ctr > 300)
+ dispatch_ctr = 300;
break;
case VG_TRC_INNER_COUNTERZERO:
|
|
From: Julian S. <js...@ac...> - 2017-05-24 13:15:59
|
On 23/05/17 05:27, Rhys Kidd wrote: > On 15 May 2017 at 03:58, Ivo Raisr <iv...@iv...> wrote: > >> Dear platform maintainers, >> >> Please could you have a look at the patch [1] attached to bug [2]: >> 374963 increase valgrind's load address to prevent mmap failure >> >> It increases the load address for almost all platforms to 0x58000000 >> (from 0x38000000). This gives another 512 MB for executable. >> >> I've tested on x86/Linux, amd64/Linux, x86/Solaris, amd64/Solaris. >> 32-bit only, 64-bit only, mix and outer/inner setup. >> > > No regressions noted on macOS. Good. Thanks for testing. J |
|
From: Julian S. <js...@ac...> - 2017-05-24 13:15:24
|
On 23/05/17 15:06, Petar Jovanovic wrote: >> Make the message "brk segment overflow in thread #%u: can't grow to %#lx" >> be printed only once, rather than every time it happens. Also make it >> not be printed in silent mode (-q). > Should this be followed by a change in the test suite? Yes it should have been. I should have run the test suite before landing :-( Thanks for spotting that. J |
|
From: <sv...@va...> - 2017-05-23 21:37:57
|
Author: iraisr
Date: Tue May 23 22:37:50 2017
New Revision: 16411
Log:
Port changes from r16407 to Solaris OS.
n-i-bz
Modified:
trunk/coregrind/m_syswrap/syswrap-solaris.c
trunk/memcheck/tests/solaris/brk.stderr.exp
trunk/memcheck/tests/solaris/brk.vgtest
Modified: trunk/coregrind/m_syswrap/syswrap-solaris.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-solaris.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-solaris.c Tue May 23 22:37:50 2017
@@ -1966,6 +1966,24 @@
VG_TRACK(die_mem_brk, VG_(brk_base), seg->end + 1 - VG_(brk_base));
}
+static void PRINTF_CHECK(1, 2)
+possibly_complain_brk(const HChar *format, ...)
+{
+ static Bool alreadyComplained = False;
+ if (!alreadyComplained) {
+ alreadyComplained = True;
+ if (VG_(clo_verbosity) > 0) {
+ va_list vargs;
+ va_start(vargs, format);
+ VG_(vmessage)(Vg_UserMsg, format, vargs);
+ va_end(vargs);
+ VG_(umsg)("(See section Limitations in the user manual.)\n");
+ VG_(umsg)("NOTE: further instances of this message will not be "
+ "shown.\n");
+ }
+ }
+}
+
PRE(sys_brk)
{
/* unsigned long brk(caddr_t end_data_segment); */
@@ -2013,8 +2031,8 @@
vg_assert(VG_(brk_base) == VG_(brk_limit));
if (!VG_(setup_client_dataseg)()) {
- VG_(umsg)("Cannot map memory to initialize brk segment in thread #%d "
- "at %#lx\n", tid, VG_(brk_base));
+ possibly_complain_brk("Cannot map memory to initialize brk segment in "
+ "thread #%d at %#lx\n", tid, VG_(brk_base));
SET_STATUS_Failure(VKI_ENOMEM);
return;
}
@@ -2156,8 +2174,8 @@
Bool ok = VG_(am_create_reservation)(resvn_start, resvn_size, SmLower,
anon_size);
if (!ok) {
- VG_(umsg)("brk segment overflow in thread #%d: can't grow "
- "to %#lx\n", tid, new_brk);
+ possibly_complain_brk("brk segment overflow in thread #%d: can not "
+ "grow to %#lx\n", tid, new_brk);
SET_STATUS_Failure(VKI_ENOMEM);
return;
}
@@ -2170,8 +2188,8 @@
/* Address space manager will merge old and new data segments. */
sres = VG_(am_mmap_anon_fixed_client)(anon_start, anon_size, prot);
if (sr_isError(sres)) {
- VG_(umsg)("Cannot map memory to grow brk segment in thread #%d "
- "to %#lx\n", tid, new_brk);
+ possibly_complain_brk("Cannot map memory to grow brk segment in "
+ "thread #%d to %#lx\n", tid, new_brk);
SET_STATUS_Failure(VKI_ENOMEM);
return;
}
Modified: trunk/memcheck/tests/solaris/brk.stderr.exp
==============================================================================
--- trunk/memcheck/tests/solaris/brk.stderr.exp (original)
+++ trunk/memcheck/tests/solaris/brk.stderr.exp Tue May 23 22:37:50 2017
@@ -1,3 +1,4 @@
+
Invalid read of size 1
at 0x........: test_begin (brk.c:19)
by 0x........: main (brk.c:78)
@@ -8,4 +9,15 @@
by 0x........: main (brk.c:78)
Address 0x........ is 0 bytes after the brk data segment limit 0x........
-brk segment overflow in thread #1: can't grow to 0x........
+brk segment overflow in thread #1: can not grow to 0x........
+(See section Limitations in the user manual.)
+NOTE: further instances of this message will not be shown.
+
+HEAP SUMMARY:
+ in use at exit: 0 bytes in 0 blocks
+ total heap usage: 0 allocs, 0 frees, 0 bytes allocated
+
+For a detailed leak analysis, rerun with: --leak-check=full
+
+For counts of detected and suppressed errors, rerun with: -v
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/memcheck/tests/solaris/brk.vgtest
==============================================================================
--- trunk/memcheck/tests/solaris/brk.vgtest (original)
+++ trunk/memcheck/tests/solaris/brk.vgtest Tue May 23 22:37:50 2017
@@ -1,2 +1 @@
prog: brk
-vgopts: -q
|
Author: iraisr
Date: Tue May 23 22:22:31 2017
New Revision: 16410
Log:
Fix expected output of brk tests after r16407.
n-i-bz
Modified:
trunk/memcheck/tests/linux/brk.stderr.exp
trunk/none/tests/linux/brk-overflow1.stderr.exp
trunk/none/tests/linux/brk-overflow2.stderr.exp
Modified: trunk/memcheck/tests/linux/brk.stderr.exp
==============================================================================
--- trunk/memcheck/tests/linux/brk.stderr.exp (original)
+++ trunk/memcheck/tests/linux/brk.stderr.exp Tue May 23 22:22:31 2017
@@ -1,8 +1,7 @@
brk segment overflow in thread #1: can't grow to 0x........
(see section Limitations in user manual)
-brk segment overflow in thread #1: can't grow to 0x........
-(see section Limitations in user manual)
+NOTE: further instances of this message will not be shown
HEAP SUMMARY:
in use at exit: ... bytes in ... blocks
Modified: trunk/none/tests/linux/brk-overflow1.stderr.exp
==============================================================================
--- trunk/none/tests/linux/brk-overflow1.stderr.exp (original)
+++ trunk/none/tests/linux/brk-overflow1.stderr.exp Tue May 23 22:22:31 2017
@@ -1,4 +1,5 @@
brk segment overflow in thread #1: can't grow to 0x........
(see section Limitations in user manual)
+NOTE: further instances of this message will not be shown
Modified: trunk/none/tests/linux/brk-overflow2.stderr.exp
==============================================================================
--- trunk/none/tests/linux/brk-overflow2.stderr.exp (original)
+++ trunk/none/tests/linux/brk-overflow2.stderr.exp Tue May 23 22:22:31 2017
@@ -1,8 +1,5 @@
brk segment overflow in thread #1: can't grow to 0x........
(see section Limitations in user manual)
-brk segment overflow in thread #1: can't grow to 0x........
-(see section Limitations in user manual)
-brk segment overflow in thread #1: can't grow to 0x........
-(see section Limitations in user manual)
+NOTE: further instances of this message will not be shown
|
|
From: Petar J. <mip...@gm...> - 2017-05-23 13:06:21
|
On Mon, May 22, 2017 at 10:50 AM, <sv...@va...> wrote:
> Author: sewardj
> Date: Mon May 22 09:50:07 2017
> New Revision: 16407
>
> Log:
> Make the message "brk segment overflow in thread #%u: can't grow to %#lx"
> be printed only once, rather than every time it happens. Also make it
> not be printed in silent mode (-q).
>
> Modified:
> trunk/coregrind/m_syswrap/syswrap-generic.c
>
> Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
> ==============================================================================
> --- trunk/coregrind/m_syswrap/syswrap-generic.c (original)
> +++ trunk/coregrind/m_syswrap/syswrap-generic.c Mon May 22 09:50:07 2017
> @@ -1322,16 +1322,29 @@
> vg_assert(delta > 0);
> vg_assert(VG_IS_PAGE_ALIGNED(delta));
>
> - Bool overflow;
> + Bool overflow = False;
> if (! VG_(am_extend_into_adjacent_reservation_client)( aseg->start, delta,
> &overflow)) {
> - if (overflow)
> - VG_(umsg)("brk segment overflow in thread #%u: can't grow to %#lx\n",
> - tid, newbrkP);
> - else
> - VG_(umsg)("Cannot map memory to grow brk segment in thread #%u "
> - "to %#lx\n", tid, newbrkP);
> - VG_(umsg)("(see section Limitations in user manual)\n");
> + if (overflow) {
> + static Bool alreadyComplained = False;
> + if (!alreadyComplained) {
> + alreadyComplained = True;
> + if (VG_(clo_verbosity) > 0) {
> + VG_(umsg)("brk segment overflow in thread #%u: "
> + "can't grow to %#lx\n",
> + tid, newbrkP);
> + VG_(umsg)("(see section Limitations in user manual)\n");
> + VG_(umsg)("NOTE: further instances of this message "
> + "will not be shown\n");
> + }
> + }
> + } else {
> + if (VG_(clo_verbosity) > 0) {
> + VG_(umsg)("Cannot map memory to grow brk segment in thread #%u "
> + "to %#lx\n", tid, newbrkP);
> + VG_(umsg)("(see section Limitations in user manual)\n");
> + }
> + }
> goto bad;
> }
>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Valgrind-developers mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-developers
Should this be followed by a change in the test suite?
Petar
diff --git a/memcheck/tests/linux/brk.stderr.exp
b/memcheck/tests/linux/brk.stderr.exp
index 8cbe622..ff83c1f 100644
--- a/memcheck/tests/linux/brk.stderr.exp
+++ b/memcheck/tests/linux/brk.stderr.exp
@@ -1,8 +1,7 @@
brk segment overflow in thread #1: can't grow to 0x........
(see section Limitations in user manual)
-brk segment overflow in thread #1: can't grow to 0x........
-(see section Limitations in user manual)
+NOTE: further instances of this message will not be shown
HEAP SUMMARY:
in use at exit: ... bytes in ... blocks
diff --git a/none/tests/linux/brk-overflow1.stderr.exp
b/none/tests/linux/brk-overflow1.stderr.exp
index 96741db..46242e3 100644
--- a/none/tests/linux/brk-overflow1.stderr.exp
+++ b/none/tests/linux/brk-overflow1.stderr.exp
@@ -1,4 +1,5 @@
brk segment overflow in thread #1: can't grow to 0x........
(see section Limitations in user manual)
+NOTE: further instances of this message will not be shown
diff --git a/none/tests/linux/brk-overflow2.stderr.exp
b/none/tests/linux/brk-overflow2.stderr.exp
index 5cdf1f7..46242e3 100644
--- a/none/tests/linux/brk-overflow2.stderr.exp
+++ b/none/tests/linux/brk-overflow2.stderr.exp
@@ -1,8 +1,5 @@
brk segment overflow in thread #1: can't grow to 0x........
(see section Limitations in user manual)
-brk segment overflow in thread #1: can't grow to 0x........
-(see section Limitations in user manual)
-brk segment overflow in thread #1: can't grow to 0x........
-(see section Limitations in user manual)
+NOTE: further instances of this message will not be shown
|
|
From: <sv...@va...> - 2017-05-23 09:13:41
|
Author: iraisr
Date: Tue May 23 10:13:31 2017
New Revision: 16409
Log:
Fix expected output of none/tests/cmdline{1,2}.
Follow up to r16406.
Modified:
trunk/none/tests/cmdline1.stdout.exp
trunk/none/tests/cmdline2.stdout.exp
Modified: trunk/none/tests/cmdline1.stdout.exp
==============================================================================
--- trunk/none/tests/cmdline1.stdout.exp (original)
+++ trunk/none/tests/cmdline1.stdout.exp Tue May 23 10:13:31 2017
@@ -110,7 +110,7 @@
android-gpu-sgx5xx android-gpu-adreno3xx none
--merge-recursive-frames=<number> merge frames between identical
program counters in max <number> frames) [0]
- --num-transtab-sectors=<number> size of translated code cache [16]
+ --num-transtab-sectors=<number> size of translated code cache [32]
more sectors may increase performance, but use more memory.
--avg-transtab-entry-size=<number> avg size in bytes of a translated
basic block [0, meaning use tool provided default]
Modified: trunk/none/tests/cmdline2.stdout.exp
==============================================================================
--- trunk/none/tests/cmdline2.stdout.exp (original)
+++ trunk/none/tests/cmdline2.stdout.exp Tue May 23 10:13:31 2017
@@ -110,7 +110,7 @@
android-gpu-sgx5xx android-gpu-adreno3xx none
--merge-recursive-frames=<number> merge frames between identical
program counters in max <number> frames) [0]
- --num-transtab-sectors=<number> size of translated code cache [16]
+ --num-transtab-sectors=<number> size of translated code cache [32]
more sectors may increase performance, but use more memory.
--avg-transtab-entry-size=<number> avg size in bytes of a translated
basic block [0, meaning use tool provided default]
|
|
From: Rhys K. <rhy...@gm...> - 2017-05-23 03:27:39
|
On 15 May 2017 at 03:58, Ivo Raisr <iv...@iv...> wrote: > Dear platform maintainers, > > Please could you have a look at the patch [1] attached to bug [2]: > 374963 increase valgrind's load address to prevent mmap failure > > It increases the load address for almost all platforms to 0x58000000 > (from 0x38000000). This gives another 512 MB for executable. > > I've tested on x86/Linux, amd64/Linux, x86/Solaris, amd64/Solaris. > 32-bit only, 64-bit only, mix and outer/inner setup. > No regressions noted on macOS. > > Kind regards, > I. > > [1] https://bugs.kde.org/attachment.cgi?id=105544 > [2] https://bugs.kde.org/show_bug.cgi?id=374963 > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: <sv...@va...> - 2017-05-22 15:22:12
|
Author: petarj
Date: Mon May 22 16:22:06 2017
New Revision: 3382
Log:
mips: implement missing case for Iop_Not64
Add missing implementation of Iop_Not64 in iselInt64Expr_wrk.
Patch by Aleksandar Rikalo.
Modified:
trunk/priv/host_mips_isel.c
Modified: trunk/priv/host_mips_isel.c
==============================================================================
--- trunk/priv/host_mips_isel.c (original)
+++ trunk/priv/host_mips_isel.c Mon May 22 16:22:06 2017
@@ -2945,6 +2945,19 @@
return;
}
+ case Iop_Not64: {
+ HReg tLo = newVRegI(env);
+ HReg tHi = newVRegI(env);
+ iselInt64Expr(&tHi, &tLo, env, e->Iex.Unop.arg);
+ addInstr(env, MIPSInstr_Alu(Malu_NOR, tLo, tLo, MIPSRH_Reg(tLo)));
+ addInstr(env, MIPSInstr_Alu(Malu_NOR, tHi, tHi, MIPSRH_Reg(tHi)));
+
+ *rHi = tHi;
+ *rLo = tLo;
+
+ return;
+ }
+
default:
vex_printf("UNARY: No such op: ");
ppIROp(e->Iex.Unop.op);
|
|
From: <sv...@va...> - 2017-05-22 15:14:13
|
Author: petarj
Date: Mon May 22 16:14:06 2017
New Revision: 3381
Log:
mips: fix set_MIPS_rounding_mode()
Do not override input argument. This fixes issues seen with CSE.
Patch by Tamara Vlahovic.
Modified:
trunk/priv/host_mips_isel.c
Modified: trunk/priv/host_mips_isel.c
==============================================================================
--- trunk/priv/host_mips_isel.c (original)
+++ trunk/priv/host_mips_isel.c Mon May 22 16:14:06 2017
@@ -284,7 +284,7 @@
addInstr(env, MIPSInstr_Shft(Mshft_SLL, True, tmp, irrm,
MIPSRH_Imm(False, 1)));
addInstr(env, MIPSInstr_Alu(Malu_XOR, tmp, irrm, MIPSRH_Reg(tmp)));
- addInstr(env, MIPSInstr_Alu(Malu_AND, irrm, tmp, MIPSRH_Imm(False, 3)));
+ addInstr(env, MIPSInstr_Alu(Malu_AND, tmp, tmp, MIPSRH_Imm(False, 3)));
/* save old value of FCSR */
addInstr(env, MIPSInstr_MfFCSR(fcsr_old));
sub_from_sp(env, 8); /* Move SP down 8 bytes */
@@ -294,7 +294,7 @@
addInstr(env, MIPSInstr_Store(4, am_addr, fcsr_old, mode64));
/* set new value of FCSR */
- addInstr(env, MIPSInstr_MtFCSR(irrm));
+ addInstr(env, MIPSInstr_MtFCSR(tmp));
}
static void set_MIPS_rounding_default(ISelEnv * env)
|
|
From: Julian S. <js...@ac...> - 2017-05-22 13:04:48
|
On 22/05/17 14:53, Petar Jovanovic wrote: > I have got a few MIPS specific changes (in VEX/priv/host_mips_isel.c) that > should go in. I can commit it this afternoon - would that work? Yes, that's fine, or some time tomorrow is also OK. J |
|
From: Petar J. <mip...@gm...> - 2017-05-22 12:53:55
|
On Mon, May 22, 2017 at 11:26 AM, Julian Seward <js...@ac...> wrote:
> I plan to make branches for the 3.13 release ({VEX,VALGRIND}_3_13_BRANCH)
> in the afternoon (CET+1) of Weds 24 May -- that is, in just over 48 hours
> from now. If you have any changes which really need to go in 3.13, speak
> up now.
>
I have got a few MIPS specific changes (in VEX/priv/host_mips_isel.c) that
should go in. I can commit it this afternoon - would that work?
As of the release, when do you plan to do it? Android folks may be
interested to pull it into AOSP instead of cherrypicking some (mostly MIPS
specific) changes.
Petar
|
|
From: <sv...@va...> - 2017-05-22 12:21:26
|
Author: petarj
Date: Mon May 22 13:21:18 2017
New Revision: 3380
Log:
mips32: add Iex_ITE implementation for floating point numbers
Add missing case in Iex_ITE implementation for floating point numbers on
mips32.
Modified:
trunk/priv/host_mips_isel.c
Modified: trunk/priv/host_mips_isel.c
==============================================================================
--- trunk/priv/host_mips_isel.c (original)
+++ trunk/priv/host_mips_isel.c Mon May 22 13:21:18 2017
@@ -3385,18 +3385,17 @@
/* --------- ITE --------- */
if (e->tag == Iex_ITE) {
- if (ty == Ity_F64
- && typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I1) {
- vassert(mode64);
- HReg r0 = iselFltExpr(env, e->Iex.ITE.iffalse);
- HReg r1 = iselFltExpr(env, e->Iex.ITE.iftrue);
- HReg r_cond = iselWordExpr_R(env, e->Iex.ITE.cond);
- HReg r_dst = newVRegF(env);
- addInstr(env, MIPSInstr_FpUnary(Mfp_MOVD, r_dst, r0));
- addInstr(env, MIPSInstr_MoveCond(MFpMoveCond_movnd, r_dst, r1,
- r_cond));
- return r_dst;
- }
+ vassert(typeOfIRExpr(env->type_env, e->Iex.ITE.cond) == Ity_I1);
+ HReg r0 = iselFltExpr(env, e->Iex.ITE.iffalse);
+ HReg r1 = iselFltExpr(env, e->Iex.ITE.iftrue);
+ HReg r_cond = iselWordExpr_R(env, e->Iex.ITE.cond);
+ HReg r_dst = newVRegF(env);
+ addInstr(env, MIPSInstr_FpUnary((ty == Ity_F64) ? Mfp_MOVD : Mfp_MOVS,
+ r_dst, r0));
+ addInstr(env, MIPSInstr_MoveCond((ty == Ity_F64) ? MFpMoveCond_movnd :
+ MFpMoveCond_movns,
+ r_dst, r1, r_cond));
+ return r_dst;
}
vex_printf("iselFltExpr(mips): No such tag(0x%x)\n", e->tag);
|
|
From: Julian S. <js...@ac...> - 2017-05-22 09:27:07
|
Hi,
I plan to make branches for the 3.13 release ({VEX,VALGRIND}_3_13_BRANCH)
in the afternoon (CET+1) of Weds 24 May -- that is, in just over 48 hours
from now. If you have any changes which really need to go in 3.13, speak
up now. Otherwise, please hold off committing changes until after the
branch is made.
Apart from documentation fixes, the only thing I would like to land for 3.13
now is bug 379525 (Support more x86 nop opcodes), assuming a suitable patch
+ test case can be assembled in time.
J
|
|
From: <sv...@va...> - 2017-05-22 09:04:01
|
Author: sewardj
Date: Mon May 22 10:03:54 2017
New Revision: 3379
Log:
Allow "sub.w reg, sp, reg, lsl #N" for N in 0 .. 5 rather than N in 0 .. 3.
Fixes bug 379890. (jeu...@gm...)
Modified:
trunk/priv/guest_arm_toIR.c
Modified: trunk/priv/guest_arm_toIR.c
==============================================================================
--- trunk/priv/guest_arm_toIR.c (original)
+++ trunk/priv/guest_arm_toIR.c Mon May 22 10:03:54 2017
@@ -21153,10 +21153,10 @@
&& rD != 15 && rN == 13 && imm5 <= 31 && how == 0) {
valid = True;
}
- /* also allow "sub.w reg, sp, reg lsl #N for N=0,1,2 or 3
+ /* also allow "sub.w reg, sp, reg lsl #N for N=0 .. 5
(T1) "SUB (SP minus register) */
if (!valid && INSN0(8,5) == BITS4(1,1,0,1) // sub
- && rD != 15 && rN == 13 && imm5 <= 3 && how == 0) {
+ && rD != 15 && rN == 13 && imm5 <= 5 && how == 0) {
valid = True;
}
if (valid) {
|
|
From: <sv...@va...> - 2017-05-22 08:53:45
|
Author: sewardj
Date: Mon May 22 09:53:37 2017
New Revision: 16408
Log:
Enable reading of inlined unwind info for exp-dhat. n-i-bz.
Modified:
trunk/coregrind/m_main.c
Modified: trunk/coregrind/m_main.c
==============================================================================
--- trunk/coregrind/m_main.c (original)
+++ trunk/coregrind/m_main.c Mon May 22 09:53:37 2017
@@ -1407,7 +1407,8 @@
# if !defined(VGO_darwin)
if (0 == VG_(strcmp)(VG_(clo_toolname), "memcheck")
|| 0 == VG_(strcmp)(VG_(clo_toolname), "helgrind")
- || 0 == VG_(strcmp)(VG_(clo_toolname), "drd")) {
+ || 0 == VG_(strcmp)(VG_(clo_toolname), "drd")
+ || 0 == VG_(strcmp)(VG_(clo_toolname), "exp-dhat")) {
/* Change the default setting. Later on (just below)
main_process_cmd_line_options should pick up any
user-supplied setting for it and will override the default
|
|
From: <sv...@va...> - 2017-05-22 08:50:13
|
Author: sewardj
Date: Mon May 22 09:50:07 2017
New Revision: 16407
Log:
Make the message "brk segment overflow in thread #%u: can't grow to %#lx"
be printed only once, rather than every time it happens. Also make it
not be printed in silent mode (-q).
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-generic.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c Mon May 22 09:50:07 2017
@@ -1322,16 +1322,29 @@
vg_assert(delta > 0);
vg_assert(VG_IS_PAGE_ALIGNED(delta));
- Bool overflow;
+ Bool overflow = False;
if (! VG_(am_extend_into_adjacent_reservation_client)( aseg->start, delta,
&overflow)) {
- if (overflow)
- VG_(umsg)("brk segment overflow in thread #%u: can't grow to %#lx\n",
- tid, newbrkP);
- else
- VG_(umsg)("Cannot map memory to grow brk segment in thread #%u "
- "to %#lx\n", tid, newbrkP);
- VG_(umsg)("(see section Limitations in user manual)\n");
+ if (overflow) {
+ static Bool alreadyComplained = False;
+ if (!alreadyComplained) {
+ alreadyComplained = True;
+ if (VG_(clo_verbosity) > 0) {
+ VG_(umsg)("brk segment overflow in thread #%u: "
+ "can't grow to %#lx\n",
+ tid, newbrkP);
+ VG_(umsg)("(see section Limitations in user manual)\n");
+ VG_(umsg)("NOTE: further instances of this message "
+ "will not be shown\n");
+ }
+ }
+ } else {
+ if (VG_(clo_verbosity) > 0) {
+ VG_(umsg)("Cannot map memory to grow brk segment in thread #%u "
+ "to %#lx\n", tid, newbrkP);
+ VG_(umsg)("(see section Limitations in user manual)\n");
+ }
+ }
goto bad;
}
|
|
From: <sv...@va...> - 2017-05-22 08:47:31
|
Author: sewardj
Date: Mon May 22 09:47:24 2017
New Revision: 16406
Log:
Increase the size of the translation cache to keep up with the demands
of running modern large applications:
* the maximum number of sectors is increased from 24 to 48
* the default number of sectors is increased from 16 to 32 on all targets
except Android
* the default number of sectors is increased from 6 to 12 on Android targets
Modified:
trunk/coregrind/pub_core_transtab.h
Modified: trunk/coregrind/pub_core_transtab.h
==============================================================================
--- trunk/coregrind/pub_core_transtab.h (original)
+++ trunk/coregrind/pub_core_transtab.h Mon May 22 09:47:24 2017
@@ -66,20 +66,20 @@
/* Limits for number of sectors the TC is divided into. If you need a larger
overall translation cache, increase MAX_N_SECTORS. */
#define MIN_N_SECTORS 2
-#define MAX_N_SECTORS 24
+#define MAX_N_SECTORS 48
/* Default for the nr of sectors, if not overridden by command line.
On Android, space is limited, so try to get by with fewer sectors.
- On other platforms we can go to town. 16 sectors gives theoretical
- capacity of about 440MB of JITted code in 1.05 million translations
+ On other platforms we can go to town. 32 sectors gives theoretical
+ capacity of about 880MB of JITted code in 2.1 million translations
(realistically, about 2/3 of that) for Memcheck. */
#if defined(VGPV_arm_linux_android) \
|| defined(VGPV_x86_linux_android) \
|| defined(VGPV_mips32_linux_android) \
|| defined(VGPV_arm64_linux_android)
-# define N_SECTORS_DEFAULT 6
+# define N_SECTORS_DEFAULT 12
#else
-# define N_SECTORS_DEFAULT 16
+# define N_SECTORS_DEFAULT 32
#endif
extern
@@ -116,6 +116,7 @@
extern void VG_(print_tt_tc_stats) ( void );
extern UInt VG_(get_bbs_translated) ( void );
+extern UInt VG_(get_bbs_discarded_or_dumped) ( void );
/* Add to / search the auxiliary, small, unredirected translation
table. */
|
|
From: <sv...@va...> - 2017-05-22 08:41:14
|
Author: sewardj
Date: Mon May 22 09:41:07 2017
New Revision: 16405
Log:
Fix order of strings in a warning message, that has always been wrong.
n-i-bz.
Modified:
trunk/coregrind/m_libcprint.c
Modified: trunk/coregrind/m_libcprint.c
==============================================================================
--- trunk/coregrind/m_libcprint.c (original)
+++ trunk/coregrind/m_libcprint.c Mon May 22 09:41:07 2017
@@ -378,8 +378,8 @@
VG_(umsg)("Failed to connect to %slogging server '%s'.\n"
"%s will be sent to stderr instead.\n",
(is_xml) ? "XML " : "",
- (is_xml) ? "XML output" : "Logging messages",
- clo_fname_unexpanded);
+ clo_fname_unexpanded,
+ (is_xml) ? "XML output" : "Logging messages");
/* We don't change anything here. */
vg_assert(sink->fd == 2);
vg_assert(sink->type == VgLogTo_Fd);
|
|
From: <sv...@va...> - 2017-05-22 08:30:05
|
Author: sewardj
Date: Mon May 22 09:29:58 2017
New Revision: 16404
Log:
Documents --sim-hints=fallback-llsc. Pertains to bug 369459.
Modified:
trunk/docs/xml/manual-core.xml
Modified: trunk/docs/xml/manual-core.xml
==============================================================================
--- trunk/docs/xml/manual-core.xml (original)
+++ trunk/docs/xml/manual-core.xml Mon May 22 09:29:58 2017
@@ -2127,6 +2127,39 @@
functionality with completely proprietary semantics may report
large number of false positives.</para>
</listitem>
+ <listitem>
+ <para><option>fallback-llsc: </option>(MIPS and ARM64 only): Enables
+ an alternative implementation of Load-Linked (LL) and
+ Store-Conditional (SC) instructions. The standard implementation
+ gives more correct behaviour, but can cause indefinite looping on
+ certain processor implementations that are intolerant of extra
+ memory references between LL and SC. So far this is known only to
+ happen on Cavium 3 cores.
+
+ You should not need to use this flag, since the relevant cores are
+ detected at startup and the alternative implementation is
+ automatically enabled if necessary. There is no equivalent
+ anti-flag: you cannot force-disable the alternative
+ implementation, if it is automatically enabled.
+
+ The underlying problem exists because the "standard"
+ implementation of LL and SC is done by copying through LL and SC
+ instructions into the instrumented code. However, tools may
+ insert extra instrumentation memory references in between the LL
+ and SC instructions. These memory references are not present in
+ the original uninstrumented code, and their presence in the
+ instrumented code can cause the SC instructions to persistently
+ fail, leading to indefinite looping in LL-SC blocks.
+
+ The alternative implementation gives correct behaviour of LL and
+ SC instructions between threads in a process, up to and including
+ the ABA scenario. It also gives correct behaviour between a
+ Valgrinded thread and a non-Valgrinded thread running in a
+ different process, that communicate via shared memory, but only up
+ to and including correct CAS behaviour -- in this case the ABA
+ scenario may not be correctly handled.
+ </para>
+ </listitem>
</itemizedlist>
</listitem>
</varlistentry>
|