@@ -1,12 +1,13 @@
Loading
1 1
/**
2 -
 * Compiler implementation of the
3 -
 * $(LINK2 http://www.dlang.org, D programming language).
2 +
 * Constants and data structures specific to the x86 platform.
4 3
 *
5 4
 * Copyright:   Copyright (C) 1985-1998 by Symantec
6 5
 *              Copyright (C) 2000-2020 by The D Language Foundation, All Rights Reserved
7 6
 * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
8 7
 * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
9 8
 * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/backend/code_x86.d, backend/code_x86.d)
9 +
 * Documentation:  https://dlang.org/phobos/dmd_backend_code_x86.html
10 +
 * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/backend/code_x86.d
10 11
 */
11 12
12 13
module dmd.backend.code_x86;
@@ -461,6 +462,7 @@
Loading
461 462
    JG      = 0x7F,
462 463
463 464
    UD2     = 0x0F0B,
465 +
    PAUSE   = 0xF390,  // aka REP NOP
464 466
465 467
    // NOP is used as a placeholder in the linked list of instructions, no
466 468
    // actual code will be generated for it.

@@ -6192,6 +6192,10 @@
Loading
6192 6192
            }
6193 6193
            break;
6194 6194
6195 +
        case 0x90:
6196 +
            size = (c.Iop == PAUSE) ? 2 : 1;
6197 +
            goto Lret2;
6198 +
6195 6199
        case NOP:
6196 6200
        case ESCAPE:
6197 6201
            size = 0;                   // since these won't be output

@@ -1,11 +1,12 @@
Loading
1 1
/**
2 -
 * Compiler implementation of the
3 -
 * $(LINK2 http://www.dlang.org, D programming language).
2 +
 * Instruction tables for inline assembler.
4 3
 *
5 4
 * Copyright:   Copyright (C) 1985-1998 by Symantec
6 5
 *              Copyright (C) 2000-2020 by The D Language Foundation, All Rights Reserved
7 6
 * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8 7
 * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/backend/ptrntab.d, backend/ptrntab.d)
8 +
 * Documentation:  https://dlang.org/phobos/dmd_backend_ptrntab.html
9 +
 * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/backend/ptrntab.d
9 10
 */
10 11
11 12
module dmd.backend.ptrntab;
@@ -1751,12 +1752,9 @@
Loading
1751 1752
1752 1753
////////////////////// New Opcodes /////////////////////////////
1753 1754
1754 -
static if (0) // Use REP NOP instead
1755 -
{
1756 1755
PTRNTAB0[1] aptb0PAUSE =  /* PAUSE */ [
1757 -
        { 0xf390, 0 }
1756 +
        { PAUSE, 0 }            // same as REP NOP sequene
1758 1757
];
1759 -
}
1760 1758
1761 1759
PTRNTAB0[1] aptb0SYSCALL =  /* SYSCALL */ [
1762 1760
        { 0x0f05, _modcxr11 }
@@ -4802,6 +4800,7 @@
Loading
4802 4800
4803 4801
immutable OP[] optab =
4804 4802
[
4803 +
//      opcode string, number of operators, reference to PTRNTAB
4805 4804
        { "__emit",     ITdata | OPdb,  { null } },
4806 4805
        { "_emit",      ITdata | OPdb,  { null } },
4807 4806
        { "aaa",        0,              { aptb0AAA.ptr } },
@@ -5215,7 +5214,7 @@
Loading
5215 5214
        { "palignr",        3,              { aptb3PALIGNR.ptr } },
5216 5215
        { "pand",           2,              { aptb2PAND.ptr } },
5217 5216
        { "pandn",          2,              { aptb2PANDN.ptr } },
5218 -
        /* { "pause",       0,              { aptb0PAUSE.ptr } }, */
5217 +
        { "pause",          0,              { aptb0PAUSE.ptr } },
5219 5218
        { "pavgb",          2,              { aptb2PAVGB.ptr } },
5220 5219
        { "pavgusb",        2,              { aptb2PAVGUSB.ptr } },
5221 5220
        { "pavgw",          2,              { aptb2PAVGW.ptr } },

@@ -1714,6 +1714,10 @@
Loading
1714 1714
            {
1715 1715
                pc.Irm = puc[0];
1716 1716
            }
1717 +
            else if (opcode == PAUSE)
1718 +
            {
1719 +
                pc.Iop = PAUSE;
1720 +
            }
1717 1721
            else
1718 1722
            {
1719 1723
                pc.IEV2.Vint = puc[0];
Files Coverage
src/dmd 77.206%
Project Totals (203 files) 77.206%
1
# Documentation: https://docs.codecov.io/docs/codecov-yaml
2
# Validate with: `curl --data-binary @.codecov.yml https://codecov.io/validate`
3

4
codecov:
5
  notify:
6
    # We don't want to wait for the CodeCov report
7
    # See https://github.com/codecov/support/issues/312
8
    require_ci_to_pass: false
9
    after_n_builds: 1  # send notifications after the first upload
10
    wait_for_ci: false
11

12
  bot: dlang-bot
13
  ci:
14
    # https://docs.codecov.io/docs/detecting-ci-services
15
    # Only CircleCi generates coverages files atm.
16
    # Don't wait for the other CIs
17
    - circleci.com
18
    - !dtest.dlang.io
19
    - !auto-tester.puremagic.com
20
    - !appveyor.com
21
    - !ci.dlang.io
22
    - !travis-ci.org
23

24
  # At CircleCi, the PR is merged into `master` before the testsuite is run.
25
  # This allows CodeCov to adjust the resulting coverage diff, s.t. it matches
26
  # with the GitHub diff.
27
  # https://github.com/codecov/support/issues/363
28
  # https://docs.codecov.io/v4.3.6/docs/comparing-commits
29
  allow_coverage_offsets: true
30

31
coverage:
32
  precision: 3
33
  round: down
34
  range: "80...100"
35

36
  # Learn more at https://docs.codecov.io/docs/commit-status
37
  status:
38
    project: off
39
    patch:
40
      default:
41
        informational: true
42
    changes: off
43

44
  # https://docs.codecov.io/docs/fixing-paths
45
  fixes:
46
    - "test/.*/::src/"
47
    - "fail_compilation/::src/"
48

49
comment: false
Sunburst
The inner-most circle is the entire project, moving away from the center are folders then, finally, a single file. The size and color of each slice is representing the number of statements and the coverage, respectively.
Icicle
The top section represents the entire project. Proceeding with folders and finally individual files. The size and color of each slice is representing the number of statements and the coverage, respectively.
Grid
Each block represents a single file in the project. The size and color of each block is represented by the number of statements and the coverage, respectively.
Loading