summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw14067.pp
blob: d3e33f8f1df1cdb06a1a96550a15d88d4732596e (plain)
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
{ %cpu=x86_64 }
{ %interactive }

{ check the assembler file for superfluous register moves from/to the
  parameter xmm regs }

program disasm;

{$mode objfpc}{$H+}

uses
  Classes, SysUtils
  { you can add units after this };

(*procedure ProcReg(A: Int64; B: Int64; C: Int64; D: Int64; E, F, G, H: Int64); register;
begin

end;

procedure ProcStd(A: Int64; B: Int64; C: Int64; D: Int64; E, F, G, H: Int64); stdcall;
begin

end;*)

procedure ProcFReg(A, B, C, D, E, F, G, H: Double); register;
begin

end;

procedure ProcFStd(A, B, C, D, E, F, G, H: Double); stdcall;
begin

end;

begin
  (*asm
    push %R8
    pop %R8
  end;
  ProcReg($10, $20, $30, $40, $50, $60, $70, $80);
  asm
    push %R8
    pop %R8
  end;
  ProcStd($10, $20, $30, $40, $50, $60, $70, $80);
  asm
    push %R8
    pop %R8
  end;
  ProcFReg(0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80);
  asm
    push %R8
    pop %R8
  end;                                                     *)
  ProcFStd(0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80);
  (*asm
    push %R8
    pop %R8
  end;*)
end.