This file is indexed.

/usr/include/hphp/util/etch-helpers.h is in hhvm-dev 3.11.1+dfsg-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#ifndef incl_ETCH_HELPERS_H
#define incl_ETCH_HELPERS_H

#if defined(__CYGWIN__) || defined(__MINGW__) || defined(_MSC_VER)
#define CFI(x)          .cfi_##x
#define CFI2(x, y)      .cfi_##x y
#define CFI3C(x, y, z)  .cfi_##x y##, z
#define ETCH_ALIGN16    .align 16
#define ETCH_ALIGN8     .align 8
#define ETCH_ALIGN4     .align 4
#define ETCH_SECTION(x) .section .text.x
#define ETCH_SIZE(x)    /* Not used with PE/COFF on windows */
#define ETCH_NAME(x)    x
#define ETCH_LABEL(x)   .L##x
#define ETCH_TYPE(x, y) /* Not used on Windows */
#define ETCH_NAME_REL(x) $ x
#define ETCH_ARG1       %rcx
#define ETCH_ARG2       %rdx
#define ETCH_ARG3       %r8
#define ETCH_ARG4       %r9
#define ETCH_ARG5       %r10  /* Use r10 here */
#define ETCH_ARG6       %r11  /* Use r11 here */
/* Borrow scratch registers for the 5th and 6th args
 * since Windows only has four registers args in its ABI */
#define ETCH_GET_ARG5   mov 0x28(%rsp), %r10
#define ETCH_GET_ARG6   mov 0x30(%rsp), %r11

#elif defined(__APPLE__)
#define CFI(x)          .cfi_##x
#define CFI2(x, y)      .cfi_##x y
#define CFI3C(x, y, z)  .cfi_##x y##, z
#define ETCH_ALIGN16    .align 4 // on OSX this is 2^value
#define ETCH_ALIGN8     .align 3
#define ETCH_ALIGN4     .align 2
#define ETCH_SECTION(x) .text
#define ETCH_SIZE(x)    /* not used on OSX */
#define ETCH_NAME(x)    _##x
#define ETCH_LABEL(x)   .L##_##x
#define ETCH_TYPE(x, y) /* not used on OSX */
#define ETCH_NAME_REL(x) _##x@GOTPCREL(%rip)
#define ETCH_ARG1       %rdi
#define ETCH_ARG2       %rsi
#define ETCH_ARG3       %rdx
#define ETCH_ARG4       %rcx
#define ETCH_ARG5       %r8
#define ETCH_ARG6       %r9
#define ETCH_GET_ARG5   /* not used */
#define ETCH_GET_ARG6   /* not used */

#else /* Other x86 (e.g. linux) */
#define CFI(x)          .cfi_##x
#define CFI2(x, y)      .cfi_##x y
#define CFI3C(x, y, z)  .cfi_##x y##, z
#define ETCH_ALIGN16    .align 16
#define ETCH_ALIGN8     .align 8
#define ETCH_ALIGN4     .align 4
#define ETCH_SECTION(x) .section .text.x,"ax"
#define ETCH_SIZE(x)    .size x, .-x
#define ETCH_NAME(x)    x
#define ETCH_LABEL(x)   .L##x
#define ETCH_TYPE(x, y) .type x, y
#define ETCH_NAME_REL(x) $ x
#define ETCH_ARG1       %rdi
#define ETCH_ARG2       %rsi
#define ETCH_ARG3       %rdx
#define ETCH_ARG4       %rcx
#define ETCH_ARG5       %r8
#define ETCH_ARG6       %r9
#define ETCH_GET_ARG5   /* not used */
#define ETCH_GET_ARG6   /* not used */
#endif

#endif // incl_ETCH_HELPERS_H