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
(7) |
|
2
(13) |
3
(14) |
4
(11) |
5
(10) |
6
|
7
(5) |
8
(12) |
|
9
(14) |
10
(19) |
11
(16) |
12
(13) |
13
(11) |
14
(4) |
15
(5) |
|
16
(11) |
17
(10) |
18
(4) |
19
(15) |
20
(12) |
21
(11) |
22
|
|
23
|
24
|
25
|
26
(1) |
27
(6) |
28
(10) |
29
(10) |
|
30
(1) |
31
|
|
|
|
|
|
|
From: <sv...@va...> - 2014-03-07 22:54:30
|
Author: sewardj
Date: Fri Mar 7 22:54:19 2014
New Revision: 13856
Log:
More test cases:
xtn,xtn2
ushr 8h, 8h, #imm
Modified:
trunk/none/tests/arm64/test_arm64_fp_and_simd.c
Modified: trunk/none/tests/arm64/test_arm64_fp_and_simd.c
==============================================================================
--- trunk/none/tests/arm64/test_arm64_fp_and_simd.c (original)
+++ trunk/none/tests/arm64/test_arm64_fp_and_simd.c Fri Mar 7 22:54:19 2014
@@ -17,7 +17,7 @@
#define True ((Bool)1)
-#define ITERS 1
+#define ITERS 10
union _V128 {
@@ -972,6 +972,8 @@
GEN_UNARY_TEST(xtn2, 4s, 2d)
GEN_UNARY_TEST(xtn, 4h, 4s)
GEN_UNARY_TEST(xtn2, 8h, 4s)
+GEN_UNARY_TEST(xtn, 8b, 8h)
+GEN_UNARY_TEST(xtn2, 16b, 8h)
/* Generate a test that involves one integer reg and one vector reg,
@@ -1483,10 +1485,11 @@
test_shl_2s_2s_1();
test_shl_2s_2s_13();
test_shl_2s_2s_31();
-
+#endif
test_ushr_8h_8h_1();
test_ushr_8h_8h_13();
test_ushr_8h_8h_15();
+#if 0
test_sshr_8h_8h_1();
test_sshr_8h_8h_13();
test_sshr_8h_8h_15();
@@ -1540,7 +1543,9 @@
test_xtn2_4s_2d();
test_xtn_4h_4s();
test_xtn2_8h_4s();
- printf("END: XTN{,2} (MISSING b_h versions)\n\n");
+ test_xtn_8b_8h();
+ test_xtn2_16b_8h();
+ printf("END: XTN{,2}\n\n");
printf("DUP (element, vector) COMPLETELY MISSING\n\n");
|
|
From: <sv...@va...> - 2014-03-07 22:52:27
|
Author: sewardj
Date: Fri Mar 7 22:52:19 2014
New Revision: 2833
Log:
Support extra instruction bits and pieces, enough to get Firefox started:
* more scalar int <-> FP conversions
* more vector integer narrowing
* a few more vector shift by imm cases
* FCVTAS (kludged)
Modified:
trunk/priv/guest_arm64_toIR.c
trunk/priv/host_arm64_defs.c
trunk/priv/host_arm64_defs.h
trunk/priv/host_arm64_isel.c
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Fri Mar 7 22:52:19 2014
@@ -5401,8 +5401,13 @@
// A bit of ATCery: bounce all cases we haven't seen an example of.
if (/* F32toI32S */
(op == Iop_F32toI32S && irrm == Irrm_ZERO) /* FCVTZS Wd,Sn */
+ || (op == Iop_F32toI32S && irrm == Irrm_NegINF) /* FCVTMS Wd,Sn */
+ || (op == Iop_F32toI32S && irrm == Irrm_PosINF) /* FCVTPS Wd,Sn */
/* F32toI32U */
+ || (op == Iop_F32toI32U && irrm == Irrm_ZERO) /* FCVTZU Wd,Sn */
+ || (op == Iop_F32toI32U && irrm == Irrm_NegINF) /* FCVTMU Wd,Sn */
/* F32toI64S */
+ || (op == Iop_F32toI64S && irrm == Irrm_ZERO) /* FCVTZS Xd,Sn */
/* F32toI64U */
|| (op == Iop_F32toI64U && irrm == Irrm_ZERO) /* FCVTZU Xd,Sn */
/* F64toI32S */
@@ -5410,12 +5415,16 @@
|| (op == Iop_F64toI32S && irrm == Irrm_NegINF) /* FCVTMS Wd,Dn */
|| (op == Iop_F64toI32S && irrm == Irrm_PosINF) /* FCVTPS Wd,Dn */
/* F64toI32U */
- || (op == Iop_F64toI32U && irrm == Irrm_NegINF) /* FCVTMU Wd,Dn */
|| (op == Iop_F64toI32U && irrm == Irrm_ZERO) /* FCVTZU Wd,Dn */
+ || (op == Iop_F64toI32U && irrm == Irrm_NegINF) /* FCVTMU Wd,Dn */
+ || (op == Iop_F64toI32U && irrm == Irrm_PosINF) /* FCVTPU Wd,Dn */
/* F64toI64S */
|| (op == Iop_F64toI64S && irrm == Irrm_ZERO) /* FCVTZS Xd,Dn */
+ || (op == Iop_F64toI64S && irrm == Irrm_NegINF) /* FCVTMS Xd,Dn */
+ || (op == Iop_F64toI64S && irrm == Irrm_PosINF) /* FCVTPS Xd,Dn */
/* F64toI64U */
|| (op == Iop_F64toI64U && irrm == Irrm_ZERO) /* FCVTZU Xd,Dn */
+ || (op == Iop_F64toI64U && irrm == Irrm_PosINF) /* FCVTPU Xd,Dn */
) {
/* validated */
} else {
@@ -5433,6 +5442,37 @@
return True;
}
+ /* -------- FCVTAS (KLUDGED) (scalar, integer) -------- */
+ /* 30 23 20 18 15 9 4
+ 1 00 11110 0x 1 00 100 000000 n d FCVTAS Xd, Fn
+ 0 00 11110 0x 1 00 100 000000 n d FCVTAS Wd, Fn
+ Fn is Dn when x==1, Sn when x==0
+ */
+ if (INSN(30,23) == BITS8(0,0,1,1,1,1,0,0)
+ && INSN(21,16) == BITS6(1,0,0,1,0,0)
+ && INSN(15,10) == BITS6(0,0,0,0,0,0)) {
+ Bool isI64 = INSN(31,31) == 1;
+ Bool isF64 = INSN(22,22) == 1;
+ UInt nn = INSN(9,5);
+ UInt dd = INSN(4,0);
+ /* Decide on the IR rounding mode to use. */
+ /* KLUDGE: should be Irrm_NEAREST_TIE_AWAY_0 */
+ IRRoundingMode irrm = Irrm_NEAREST;
+ /* Decide on the conversion primop. */
+ IROp op = isI64 ? (isF64 ? Iop_F64toI64S : Iop_F32toI64S)
+ : (isF64 ? Iop_F64toI32S : Iop_F32toI32S);
+ IRType srcTy = isF64 ? Ity_F64 : Ity_F32;
+ IRType dstTy = isI64 ? Ity_I64 : Ity_I32;
+ IRTemp src = newTemp(srcTy);
+ IRTemp dst = newTemp(dstTy);
+ assign(src, getQRegLO(nn, srcTy));
+ assign(dst, binop(op, mkU32(irrm), mkexpr(src)));
+ putIRegOrZR(isI64, dd, mkexpr(dst));
+ DIP("fcvtas %s, %s (KLUDGED)\n",
+ nameIRegOrZR(isI64, dd), nameQRegLO(nn, srcTy));
+ return True;
+ }
+
/* ---------------- FRINT{I,M,P,Z} (scalar) ---------------- */
/* 31 23 21 17 14 9 4
000 11110 0x 1001 111 10000 n d FRINTI Fd, Fm (round per FPCR)
@@ -5444,7 +5484,7 @@
010 -inf (FRINTM)
011 zero (FRINTZ)
000 tieeven
- 100 tieaway
+ 100 tieaway (FRINTA) -- !! FIXME KLUDGED !!
110 per FPCR + "exact = TRUE"
101 unallocated
*/
@@ -5461,6 +5501,8 @@
case BITS3(0,1,1): ch = 'z'; irrmE = mkU32(Irrm_ZERO); break;
case BITS3(0,1,0): ch = 'm'; irrmE = mkU32(Irrm_NegINF); break;
case BITS3(0,0,1): ch = 'p'; irrmE = mkU32(Irrm_PosINF); break;
+ // The following is a kludge. Should be: Irrm_NEAREST_TIE_AWAY_0
+ case BITS3(1,0,0): ch = 'a'; irrmE = mkU32(Irrm_NEAREST); break;
default: break;
}
if (irrmE) {
@@ -5483,9 +5525,9 @@
000 11110 11 10001 00 10000 n d FCVT Sd, Hn (unimp)
--------- 11 ----- 01 --------- FCVT Dd, Hn (unimp)
--------- 00 ----- 11 --------- FCVT Hd, Sn (unimp)
- --------- 00 ----- 01 --------- FCVT Dd, Sn (unimp)
+ --------- 00 ----- 01 --------- FCVT Dd, Sn
--------- 01 ----- 11 --------- FCVT Hd, Dn (unimp)
- --------- 01 ----- 00 --------- FCVT Sd, Dn (unimp)
+ --------- 01 ----- 00 --------- FCVT Sd, Dn
Rounding, when dst is smaller than src, is per the FPCR.
*/
if (INSN(31,24) == BITS8(0,0,0,1,1,1,1,0)
Modified: trunk/priv/host_arm64_defs.c
==============================================================================
--- trunk/priv/host_arm64_defs.c (original)
+++ trunk/priv/host_arm64_defs.c Fri Mar 7 22:52:19 2014
@@ -905,6 +905,7 @@
{
switch (op) {
case ARM64vecsh_USHR64x2: *nm = "ushr "; *ar = "2d"; return;
+ case ARM64vecsh_USHR16x8: *nm = "ushr "; *ar = "8h"; return;
case ARM64vecsh_SSHR64x2: *nm = "sshr "; *ar = "2d"; return;
case ARM64vecsh_SHL32x4: *nm = "shl "; *ar = "4s"; return;
default: vpanic("showARM64VecShiftImmOp");
@@ -1620,6 +1621,8 @@
maxSh = 63; break;
case ARM64vecsh_SHL32x4:
maxSh = 31; break;
+ case ARM64vecsh_USHR16x8:
+ maxSh = 15; break;
default:
vassert(0);
}
@@ -3351,6 +3354,7 @@
#define X111110 BITS8(0,0, 1,1,1,1,1,0)
#define X111111 BITS8(0,0, 1,1,1,1,1,1)
+#define X0010000 BITS8(0, 0,0,1,0,0,0,0)
#define X0100000 BITS8(0, 0,1,0,0,0,0,0)
#define X1000000 BITS8(0, 1,0,0,0,0,0,0)
@@ -4679,7 +4683,9 @@
case ARM64cvt_F64_I64S: /* SCVTF Dd, Xn */
*p++ = X_3_5_8_6_5_5(X100, X11110, X01100010, X000000, rN, rD);
break;
- /* UCVTF Sd, Wn ATC */
+ case ARM64cvt_F32_I32U: /* UCVTF Sd, Wn */
+ *p++ = X_3_5_8_6_5_5(X000, X11110, X00100011, X000000, rN, rD);
+ break;
case ARM64cvt_F64_I32U: /* UCVTF Dd, Wn */
*p++ = X_3_5_8_6_5_5(X000, X11110, X01100011, X000000, rN, rD);
break;
@@ -4728,12 +4734,18 @@
*p++ = X_3_5_8_6_5_5(X100, X11110, X01100001 | (armRM << 3),
X000000, rN, rD);
break;
- /* */
case ARM64cvt_F32_I32S: /* FCVTxS Wd, Sn */
*p++ = X_3_5_8_6_5_5(X000, X11110, X00100000 | (armRM << 3),
X000000, rN, rD);
break;
- /* */
+ case ARM64cvt_F32_I32U: /* FCVTxU Wd, Sn */
+ *p++ = X_3_5_8_6_5_5(X000, X11110, X00100001 | (armRM << 3),
+ X000000, rN, rD);
+ break;
+ case ARM64cvt_F32_I64S: /* FCVTxS Xd, Sn */
+ *p++ = X_3_5_8_6_5_5(X100, X11110, X00100000 | (armRM << 3),
+ X000000, rN, rD);
+ break;
case ARM64cvt_F32_I64U: /* FCVTxU Xd, Sn */
*p++ = X_3_5_8_6_5_5(X100, X11110, X00100001 | (armRM << 3),
X000000, rN, rD);
@@ -5130,6 +5142,15 @@
goto done;
}
break;
+ //case ARM64vecsh_SSHR16x8: syned = True; ATC
+ case ARM64vecsh_USHR16x8: /* fallthrough */
+ if (sh >= 1 && sh <= 15) {
+ UInt xxxx = 16-sh;
+ *p++ = X_3_6_7_6_5_5(syned ? X010 : X011, X011110,
+ X0010000 | xxxx, X000001, vN, vD);
+ goto done;
+ }
+ break;
default:
break;
}
Modified: trunk/priv/host_arm64_defs.h
==============================================================================
--- trunk/priv/host_arm64_defs.h (original)
+++ trunk/priv/host_arm64_defs.h Fri Mar 7 22:52:19 2014
@@ -357,6 +357,7 @@
typedef
enum {
ARM64vecsh_USHR64x2=350,
+ ARM64vecsh_USHR16x8,
ARM64vecsh_SSHR64x2,
ARM64vecsh_SHL32x4,
ARM64vecsh_INVALID
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Fri Mar 7 22:52:19 2014
@@ -1812,6 +1812,10 @@
cvt_op = ARM64cvt_F64_I32U; srcIsD = True; break;
case Iop_F32toI32S:
cvt_op = ARM64cvt_F32_I32S; srcIsD = False; break;
+ case Iop_F32toI32U:
+ cvt_op = ARM64cvt_F32_I32U; srcIsD = False; break;
+ case Iop_F32toI64S:
+ cvt_op = ARM64cvt_F32_I64S; srcIsD = False; break;
case Iop_F32toI64U:
cvt_op = ARM64cvt_F32_I64U; srcIsD = False; break;
default:
@@ -2118,6 +2122,7 @@
ARM64sh_SAR));
return dst;
}
+ case Iop_NarrowUn16to8x8:
case Iop_NarrowUn32to16x4:
case Iop_NarrowUn64to32x2: {
HReg src = iselV128Expr(env, e->Iex.Unop.arg);
@@ -2125,6 +2130,7 @@
HReg dst = newVRegI(env);
UInt dszBlg2 = 3; /* illegal */
switch (e->Iex.Unop.op) {
+ case Iop_NarrowUn16to8x8: dszBlg2 = 0; break; // 16to8_x8
case Iop_NarrowUn32to16x4: dszBlg2 = 1; break; // 32to16_x4
case Iop_NarrowUn64to32x2: dszBlg2 = 2; break; // 64to32_x2
default: vassert(0);
@@ -5425,8 +5431,10 @@
//ZZ case Iop_ShrN16x8:
//ZZ case Iop_ShrN32x4:
case Iop_ShrN64x2:
+ case Iop_ShrN16x8:
case Iop_SarN64x2:
- case Iop_ShlN32x4: {
+ case Iop_ShlN32x4:
+ {
IRExpr* argL = e->Iex.Binop.arg1;
IRExpr* argR = e->Iex.Binop.arg2;
if (argR->tag == Iex_Const && argR->Iex.Const.con->tag == Ico_U8) {
@@ -5436,6 +5444,8 @@
switch (e->Iex.Binop.op) {
case Iop_ShrN64x2:
op = ARM64vecsh_USHR64x2; limit = 63; break;
+ case Iop_ShrN16x8:
+ op = ARM64vecsh_USHR16x8; limit = 15; break;
case Iop_SarN64x2:
op = ARM64vecsh_SSHR64x2; limit = 63; break;
case Iop_ShlN32x4:
@@ -6167,11 +6177,13 @@
addInstr(env, ARM64Instr_VCvtSD(False/*dToS*/, dstS, srcD));
return dstS;
}
+ case Iop_I32UtoF32:
case Iop_I32StoF32:
case Iop_I64UtoF32:
case Iop_I64StoF32: {
ARM64CvtOp cvt_op = ARM64cvt_INVALID;
switch (e->Iex.Binop.op) {
+ case Iop_I32UtoF32: cvt_op = ARM64cvt_F32_I32U; break;
case Iop_I32StoF32: cvt_op = ARM64cvt_F32_I32S; break;
case Iop_I64UtoF32: cvt_op = ARM64cvt_F32_I64U; break;
case Iop_I64StoF32: cvt_op = ARM64cvt_F32_I64S; break;
|
|
From: <sv...@va...> - 2014-03-07 22:49:04
|
Author: sewardj
Date: Fri Mar 7 22:48:50 2014
New Revision: 13855
Log:
Enable the following syscalls: sys_eventfd2 sys_symlinkat sys_renameat
sys_fstatfs sys_fsync sys_clock_getres sys_sched_getaffinity
sys_shmget sys_fadvise64
Modified:
trunk/coregrind/m_syswrap/syswrap-arm64-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-arm64-linux.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-arm64-linux.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-arm64-linux.c Fri Mar 7 22:48:50 2014
@@ -416,12 +416,13 @@
#define PRE(name) DEFN_PRE_TEMPLATE(arm64_linux, name)
#define POST(name) DEFN_POST_TEMPLATE(arm64_linux, name)
-//ZZ /* Add prototypes for the wrappers declared here, so that gcc doesn't
-//ZZ harass us for not having prototypes. Really this is a kludge --
-//ZZ the right thing to do is to make these wrappers 'static' since they
-//ZZ aren't visible outside this file, but that requires even more macro
-//ZZ magic. */
-//ZZ
+/* Add prototypes for the wrappers declared here, so that gcc doesn't
+ harass us for not having prototypes. Really this is a kludge --
+ the right thing to do is to make these wrappers 'static' since they
+ aren't visible outside this file, but that requires even more macro
+ magic. */
+
+DECL_TEMPLATE(arm64_linux, sys_fadvise64);
DECL_TEMPLATE(arm64_linux, sys_mmap);
//ZZ DECL_TEMPLATE(arm_linux, sys_stat64);
//ZZ DECL_TEMPLATE(arm_linux, sys_lstat64);
@@ -434,7 +435,7 @@
//ZZ DECL_TEMPLATE(arm_linux, sys_set_tls);
//ZZ DECL_TEMPLATE(arm_linux, sys_cacheflush);
//ZZ DECL_TEMPLATE(arm_linux, sys_ptrace);
-//ZZ
+
//ZZ PRE(sys_mmap2)
//ZZ {
//ZZ SysRes r;
@@ -459,6 +460,14 @@
//ZZ }
// ARM64 FIXME is this correct?
+PRE(sys_fadvise64)
+{
+ PRINT("sys_fadvise64 ( %ld, %ld, %lu, %ld )", ARG1,ARG2,ARG3,ARG4);
+ PRE_REG_READ4(long, "fadvise64",
+ int, fd, vki_loff_t, offset, vki_size_t, len, int, advice);
+}
+
+// ARM64 FIXME is this correct?
PRE(sys_mmap)
{
SysRes r;
@@ -881,6 +890,7 @@
LINXY(__NR_getxattr, sys_getxattr), // 8
LINXY(__NR_lgetxattr, sys_lgetxattr), // 9
GENXY(__NR_getcwd, sys_getcwd), // 17
+ LINXY(__NR_eventfd2, sys_eventfd2), // 19
LINXY(__NR_epoll_create1, sys_epoll_create1), // 20
LINX_(__NR_epoll_ctl, sys_epoll_ctl), // 21
LINXY(__NR_epoll_pwait, sys_epoll_pwait), // 22
@@ -893,9 +903,12 @@
LINXY(__NR_ioctl, sys_ioctl), // 29
LINX_(__NR_mkdirat, sys_mkdirat), // 34
LINX_(__NR_unlinkat, sys_unlinkat), // 35
+ LINX_(__NR_symlinkat, sys_symlinkat), // 36
+ LINX_(__NR_renameat, sys_renameat), // 38
// FIXME IS THIS CORRECT? it may well not be.
GENXY(__NR3264_statfs, sys_statfs), // 43
+ GENXY(__NR3264_fstatfs, sys_fstatfs), // 44
// FIXME IS THIS CORRECT? it may well not be.
GENX_(__NR3264_ftruncate, sys_ftruncate), // 46
@@ -921,6 +934,7 @@
LINXY(__NR3264_fstatat, sys_newfstatat), // 79
GENXY(__NR3264_fstat, sys_newfstat), // 80
+ GENX_(__NR_fsync, sys_fsync), // 82
GENX_(__NR_exit, sys_exit), // 93
LINX_(__NR_exit_group, sys_exit_group), // 94
LINX_(__NR_set_tid_address, sys_set_tid_address), // 96
@@ -929,6 +943,8 @@
GENXY(__NR_nanosleep, sys_nanosleep), // 101
GENXY(__NR_setitimer, sys_setitimer), // 103
LINXY(__NR_clock_gettime, sys_clock_gettime), // 113
+ LINXY(__NR_clock_getres, sys_clock_getres), // 114
+ LINXY(__NR_sched_getaffinity, sys_sched_getaffinity), // 123
GENX_(__NR_kill, sys_kill), // 129
LINX_(__NR_tgkill, sys_tgkill), // 131
LINX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 133
@@ -963,6 +979,7 @@
LINXY(__NR_semctl, sys_semctl), // 191
LINX_(__NR_semtimedop, sys_semtimedop), // 192
LINX_(__NR_semop, sys_semop), // 193
+ LINX_(__NR_shmget, sys_shmget), // 194
LINXY(__NR_socket, sys_socket), // 198
LINXY(__NR_socketpair, sys_socketpair), // 199
LINX_(__NR_bind, sys_bind), // 200
@@ -986,6 +1003,7 @@
// FIXME IS THIS CORRECT?
PLAX_(__NR3264_mmap, sys_mmap), // 222
+ PLAX_(__NR3264_fadvise64, sys_fadvise64), // 223
GENXY(__NR_mprotect, sys_mprotect), // 226
GENX_(__NR_madvise, sys_madvise), // 233
|
|
From: <sv...@va...> - 2014-03-07 14:38:25
|
Author: bart
Date: Fri Mar 7 14:38:14 2014
New Revision: 13854
Log:
drd/tests/thread_namedrd/tests/thread_name: Ensure mutex address uniqueness (see also #331847)
From: Ivo Raisr <iv...@iv...>
Modified:
trunk/drd/tests/thread_name.c
Modified: trunk/drd/tests/thread_name.c
==============================================================================
--- trunk/drd/tests/thread_name.c (original)
+++ trunk/drd/tests/thread_name.c Fri Mar 7 14:38:14 2014
@@ -11,6 +11,7 @@
#define NUM_THREADS 10
+static pthread_barrier_t s_barrier;
static pthread_mutex_t s_mutex;
static pthread_cond_t s_cond;
static int s_counter;
@@ -27,6 +28,8 @@
memset(&invalid_mutex, 0xff, sizeof(invalid_mutex));
+ pthread_barrier_wait(&s_barrier);
+
pthread_mutex_lock(&s_mutex);
while (s_counter != thread_num)
pthread_cond_wait(&s_cond, &s_mutex);
@@ -45,6 +48,7 @@
int i;
pthread_t tid[NUM_THREADS];
+ pthread_barrier_init(&s_barrier, NULL, NUM_THREADS);
pthread_mutex_init(&s_mutex, 0);
pthread_cond_init(&s_cond, 0);
|
|
From: <sv...@va...> - 2014-03-07 07:46:09
|
Author: bart
Date: Fri Mar 7 07:45:43 2014
New Revision: 13853
Log:
drd/tests/sem_open: Change the semaphore name (#331839)
Modified:
trunk/drd/tests/sem_open.c
trunk/drd/tests/sem_open_traced.stderr.exp
Modified: trunk/drd/tests/sem_open.c
==============================================================================
--- trunk/drd/tests/sem_open.c (original)
+++ trunk/drd/tests/sem_open.c Fri Mar 7 07:45:43 2014
@@ -58,7 +58,7 @@
* Use the ipcs and ipcrm commands to clean up named semaphores left by
* aborted instances of this process.
*/
- snprintf(semaphore_name, sizeof(semaphore_name), "drd-sem-open-test-%d",
+ snprintf(semaphore_name, sizeof(semaphore_name), "/drd-sem-open-test-%d",
getpid());
s_sem = sem_open(semaphore_name, O_CREAT | O_EXCL, 0600, 1);
if (s_sem == SEM_FAILED)
Modified: trunk/drd/tests/sem_open_traced.stderr.exp
==============================================================================
--- trunk/drd/tests/sem_open_traced.stderr.exp (original)
+++ trunk/drd/tests/sem_open_traced.stderr.exp Fri Mar 7 07:45:43 2014
@@ -1,5 +1,5 @@
-[1] sem_open 0x........ name drd-sem-open-test oflag 0x........ mode 0600 value 1
+[1] sem_open 0x........ name /drd-sem-open-test oflag 0x........ mode 0600 value 1
[2] sem_wait 0x........ value 1 -> 0
[2] sem_post 0x........ value 0 -> 1
[1] sem_wait 0x........ value 1 -> 0
|