瀏覽代碼

Add cntfrq_el0 and cntpct_el0 AArch64 registers

Robert Roland 3 年之前
父節點
當前提交
a19add9c88

+ 3 - 0
compiler/aarch64/a64reg.dat

@@ -82,6 +82,9 @@ FPSR,$05,$00,$02,fpsr,0,0
 TPIDR_EL0,$05,$00,$03,tpidr_el0,0,0
 MPIDR_EL1,$05,$00,$04,mpidr_el1,0,0
 
+CNTFRQ_EL0,$03,$03,$0D,cntfrq_el0,0,0
+CNTPCT_EL0,$03,$03,$0E,cntpct_el0,0,0
+
 ; vfp registers
 ; generated by fpc/compiler/utils/gena64vfp.pp to avoid tedious typing
 B0,$04,$01,$00,b0,64,64

+ 2 - 0
compiler/aarch64/ra64con.inc

@@ -71,6 +71,8 @@ NR_FPCR = tregister($05000001);
 NR_FPSR = tregister($05000002);
 NR_TPIDR_EL0 = tregister($05000003);
 NR_MPIDR_EL1 = tregister($05000004);
+NR_CNTFRQ_EL0 = tregister($0303000D);
+NR_CNTPCT_EL0 = tregister($0303000E);
 NR_B0 = tregister($04010000);
 NR_H0 = tregister($04030000);
 NR_S0 = tregister($04090000);

+ 2 - 0
compiler/aarch64/ra64dwa.inc

@@ -71,6 +71,8 @@
 0,
 0,
 0,
+0,
+0,
 64,
 64,
 64,

+ 1 - 1
compiler/aarch64/ra64nor.inc

@@ -1,2 +1,2 @@
 { don't edit, this file is generated from a64reg.dat }
-648
+650

+ 2 - 0
compiler/aarch64/ra64num.inc

@@ -71,6 +71,8 @@ tregister($05000001),
 tregister($05000002),
 tregister($05000003),
 tregister($05000004),
+tregister($0303000D),
+tregister($0303000E),
 tregister($04010000),
 tregister($04030000),
 tregister($04090000),

+ 224 - 222
compiler/aarch64/ra64rni.inc

@@ -66,102 +66,40 @@
 62,
 64,
 66,
-77,
-95,
-113,
-131,
-149,
-167,
-185,
-203,
-221,
-239,
-257,
-275,
-293,
-311,
-329,
-347,
-365,
-383,
-401,
-419,
-437,
-455,
-473,
-491,
-509,
-527,
-545,
-563,
-581,
-599,
-617,
-635,
 72,
-90,
-108,
-126,
-144,
-162,
-180,
-198,
-216,
-234,
-252,
-270,
-288,
-306,
-324,
-342,
-360,
-378,
-396,
-414,
-432,
-450,
-468,
-486,
-504,
-522,
-540,
-558,
-576,
-594,
-612,
-630,
 73,
-91,
-109,
-127,
-145,
-163,
-181,
-199,
-217,
-235,
-253,
-271,
-289,
-307,
-325,
-343,
-361,
-379,
-397,
-415,
-433,
-451,
-469,
-487,
-505,
-523,
-541,
-559,
-577,
-595,
-613,
-631,
+79,
+97,
+115,
+133,
+151,
+169,
+187,
+205,
+223,
+241,
+259,
+277,
+295,
+313,
+331,
+349,
+367,
+385,
+403,
+421,
+439,
+457,
+475,
+493,
+511,
+529,
+547,
+565,
+583,
+601,
+619,
+637,
 74,
 92,
 110,
@@ -258,70 +196,70 @@
 598,
 616,
 634,
-82,
-100,
-118,
-136,
-154,
-172,
-190,
-208,
-226,
-244,
-262,
-280,
-298,
-316,
-334,
-352,
-370,
-388,
-406,
-424,
-442,
-460,
-478,
-496,
-514,
-532,
-550,
-568,
-586,
-604,
-622,
-640,
-83,
-101,
-119,
-137,
-155,
-173,
-191,
-209,
-227,
-245,
-263,
-281,
-299,
-317,
-335,
-353,
-371,
-389,
-407,
-425,
-443,
-461,
-479,
-497,
-515,
-533,
-551,
-569,
-587,
-605,
-623,
-641,
+77,
+95,
+113,
+131,
+149,
+167,
+185,
+203,
+221,
+239,
+257,
+275,
+293,
+311,
+329,
+347,
+365,
+383,
+401,
+419,
+437,
+455,
+473,
+491,
+509,
+527,
+545,
+563,
+581,
+599,
+617,
+635,
+78,
+96,
+114,
+132,
+150,
+168,
+186,
+204,
+222,
+240,
+258,
+276,
+294,
+312,
+330,
+348,
+366,
+384,
+402,
+420,
+438,
+456,
+474,
+492,
+510,
+528,
+546,
+564,
+582,
+600,
+618,
+636,
 84,
 102,
 120,
@@ -514,70 +452,70 @@
 611,
 629,
 647,
-78,
-96,
-114,
-132,
-150,
-168,
-186,
-204,
-222,
-240,
-258,
-276,
-294,
-312,
-330,
-348,
-366,
-384,
-402,
-420,
-438,
-456,
-474,
-492,
-510,
-528,
-546,
-564,
-582,
-600,
-618,
-636,
-79,
-97,
-115,
-133,
-151,
-169,
-187,
-205,
-223,
-241,
-259,
-277,
-295,
-313,
-331,
-349,
-367,
-385,
-403,
-421,
-439,
-457,
-475,
-493,
-511,
-529,
-547,
-565,
-583,
-601,
-619,
-637,
+90,
+108,
+126,
+144,
+162,
+180,
+198,
+216,
+234,
+252,
+270,
+288,
+306,
+324,
+342,
+360,
+378,
+396,
+414,
+432,
+450,
+468,
+486,
+504,
+522,
+540,
+558,
+576,
+594,
+612,
+630,
+648,
+91,
+109,
+127,
+145,
+163,
+181,
+199,
+217,
+235,
+253,
+271,
+289,
+307,
+325,
+343,
+361,
+379,
+397,
+415,
+433,
+451,
+469,
+487,
+505,
+523,
+541,
+559,
+577,
+595,
+613,
+631,
+649,
 80,
 98,
 116,
@@ -642,6 +580,70 @@
 603,
 621,
 639,
+82,
+100,
+118,
+136,
+154,
+172,
+190,
+208,
+226,
+244,
+262,
+280,
+298,
+316,
+334,
+352,
+370,
+388,
+406,
+424,
+442,
+460,
+478,
+496,
+514,
+532,
+550,
+568,
+586,
+604,
+622,
+640,
+83,
+101,
+119,
+137,
+155,
+173,
+191,
+209,
+227,
+245,
+263,
+281,
+299,
+317,
+335,
+353,
+371,
+389,
+407,
+425,
+443,
+461,
+479,
+497,
+515,
+533,
+551,
+569,
+587,
+605,
+623,
+641,
 67,
 68,
 69,

+ 355 - 353
compiler/aarch64/ra64sri.inc

@@ -1,37 +1,73 @@
 { don't edit, this file is generated from a64reg.dat }
 0,
+74,
+92,
+254,
+272,
+290,
+308,
+326,
+344,
+362,
+380,
+398,
+416,
+110,
+434,
+452,
+470,
+488,
+506,
+524,
+542,
+560,
+578,
+596,
+128,
+614,
+632,
+146,
+164,
+182,
+200,
+218,
+236,
 72,
-90,
-252,
-270,
-288,
-306,
-324,
-342,
-360,
-378,
-396,
-414,
-108,
-432,
-450,
-468,
-486,
-504,
-522,
-540,
-558,
-576,
-594,
-126,
-612,
-630,
-144,
-162,
-180,
-198,
-216,
-234,
+73,
+77,
+95,
+257,
+275,
+293,
+311,
+329,
+347,
+365,
+383,
+401,
+419,
+113,
+437,
+455,
+473,
+491,
+509,
+527,
+545,
+563,
+581,
+599,
+131,
+617,
+635,
+149,
+167,
+185,
+203,
+221,
+239,
+68,
+69,
 75,
 93,
 255,
@@ -64,42 +100,40 @@
 201,
 219,
 237,
-68,
-69,
-73,
-91,
-253,
-271,
-289,
-307,
-325,
-343,
-361,
-379,
-397,
-415,
-109,
-433,
-451,
-469,
-487,
-505,
-523,
-541,
-559,
-577,
-595,
-127,
-613,
-631,
-145,
-163,
-181,
-199,
-217,
-235,
 71,
 67,
+78,
+96,
+258,
+276,
+294,
+312,
+330,
+348,
+366,
+384,
+402,
+420,
+114,
+438,
+456,
+474,
+492,
+510,
+528,
+546,
+564,
+582,
+600,
+132,
+618,
+636,
+150,
+168,
+186,
+204,
+222,
+240,
 76,
 94,
 256,
@@ -132,456 +166,424 @@
 202,
 220,
 238,
-74,
-92,
-254,
-272,
-290,
-308,
-326,
-344,
-362,
-380,
-398,
-416,
-110,
-434,
-452,
-470,
-488,
-506,
-524,
-542,
-560,
-578,
-596,
-128,
-614,
-632,
-146,
-164,
-182,
-200,
-218,
-236,
 66,
 70,
-77,
-83,
+79,
+85,
+90,
+91,
 88,
-89,
 86,
+89,
 84,
 87,
-82,
-85,
-78,
-81,
-79,
 80,
-95,
-101,
+83,
+81,
+82,
+97,
+103,
+108,
+109,
 106,
-107,
 104,
+107,
 102,
 105,
-100,
-103,
-96,
-99,
-97,
 98,
-257,
-263,
+101,
+99,
+100,
+259,
+265,
+270,
+271,
 268,
-269,
 266,
+269,
 264,
 267,
-262,
-265,
-258,
-261,
-259,
 260,
-275,
-281,
+263,
+261,
+262,
+277,
+283,
+288,
+289,
 286,
-287,
 284,
+287,
 282,
 285,
+278,
+281,
+279,
 280,
-283,
-276,
-279,
-277,
-278,
-293,
-299,
+295,
+301,
+306,
+307,
 304,
-305,
 302,
+305,
 300,
 303,
-298,
-301,
-294,
-297,
-295,
 296,
-311,
-317,
+299,
+297,
+298,
+313,
+319,
+324,
+325,
 322,
-323,
 320,
+323,
 318,
 321,
-316,
-319,
-312,
-315,
-313,
 314,
-329,
-335,
+317,
+315,
+316,
+331,
+337,
+342,
+343,
 340,
-341,
 338,
+341,
 336,
 339,
-334,
-337,
-330,
-333,
-331,
 332,
-347,
-353,
+335,
+333,
+334,
+349,
+355,
+360,
+361,
 358,
-359,
 356,
+359,
 354,
 357,
-352,
-355,
-348,
-351,
-349,
 350,
-365,
-371,
+353,
+351,
+352,
+367,
+373,
+378,
+379,
 376,
-377,
 374,
+377,
 372,
 375,
-370,
-373,
-366,
-369,
-367,
 368,
-383,
-389,
+371,
+369,
+370,
+385,
+391,
+396,
+397,
 394,
-395,
 392,
+395,
 390,
 393,
-388,
-391,
-384,
-387,
-385,
 386,
-401,
-407,
+389,
+387,
+388,
+403,
+409,
+414,
+415,
 412,
-413,
 410,
+413,
 408,
 411,
-406,
-409,
-402,
-405,
-403,
 404,
-419,
-425,
+407,
+405,
+406,
+421,
+427,
+432,
+433,
 430,
-431,
 428,
+431,
 426,
 429,
-424,
-427,
-420,
-423,
-421,
 422,
-113,
-119,
+425,
+423,
+424,
+115,
+121,
+126,
+127,
 124,
-125,
 122,
+125,
 120,
 123,
-118,
-121,
-114,
-117,
-115,
 116,
-437,
-443,
+119,
+117,
+118,
+439,
+445,
+450,
+451,
 448,
-449,
 446,
+449,
 444,
 447,
-442,
-445,
-438,
-441,
-439,
 440,
-455,
-461,
+443,
+441,
+442,
+457,
+463,
+468,
+469,
 466,
-467,
 464,
+467,
 462,
 465,
-460,
-463,
-456,
-459,
-457,
 458,
-473,
-479,
+461,
+459,
+460,
+475,
+481,
+486,
+487,
 484,
-485,
 482,
+485,
 480,
 483,
-478,
-481,
-474,
-477,
-475,
 476,
-491,
-497,
+479,
+477,
+478,
+493,
+499,
+504,
+505,
 502,
-503,
 500,
+503,
 498,
 501,
-496,
-499,
-492,
-495,
-493,
 494,
-509,
-515,
+497,
+495,
+496,
+511,
+517,
+522,
+523,
 520,
-521,
 518,
+521,
 516,
 519,
-514,
-517,
-510,
-513,
-511,
 512,
-527,
-533,
+515,
+513,
+514,
+529,
+535,
+540,
+541,
 538,
-539,
 536,
+539,
 534,
 537,
-532,
-535,
-528,
-531,
-529,
 530,
-545,
-551,
+533,
+531,
+532,
+547,
+553,
+558,
+559,
 556,
-557,
 554,
+557,
 552,
 555,
-550,
-553,
-546,
-549,
-547,
 548,
-563,
-569,
+551,
+549,
+550,
+565,
+571,
+576,
+577,
 574,
-575,
 572,
+575,
 570,
 573,
-568,
-571,
-564,
-567,
-565,
 566,
-581,
-587,
+569,
+567,
+568,
+583,
+589,
+594,
+595,
 592,
-593,
 590,
+593,
 588,
 591,
-586,
-589,
-582,
-585,
-583,
 584,
-599,
-605,
+587,
+585,
+586,
+601,
+607,
+612,
+613,
 610,
-611,
 608,
+611,
 606,
 609,
-604,
-607,
-600,
-603,
-601,
 602,
-131,
-137,
+605,
+603,
+604,
+133,
+139,
+144,
+145,
 142,
-143,
 140,
+143,
 138,
 141,
-136,
-139,
-132,
-135,
-133,
 134,
-617,
-623,
+137,
+135,
+136,
+619,
+625,
+630,
+631,
 628,
-629,
 626,
+629,
 624,
 627,
-622,
-625,
-618,
-621,
-619,
 620,
-635,
-641,
+623,
+621,
+622,
+637,
+643,
+648,
+649,
 646,
-647,
 644,
+647,
 642,
 645,
-640,
-643,
-636,
-639,
-637,
 638,
-149,
-155,
+641,
+639,
+640,
+151,
+157,
+162,
+163,
 160,
-161,
 158,
+161,
 156,
 159,
-154,
-157,
-150,
-153,
-151,
 152,
-167,
-173,
+155,
+153,
+154,
+169,
+175,
+180,
+181,
 178,
-179,
 176,
+179,
 174,
 177,
-172,
-175,
-168,
-171,
-169,
 170,
-185,
-191,
+173,
+171,
+172,
+187,
+193,
+198,
+199,
 196,
-197,
 194,
+197,
 192,
 195,
-190,
-193,
-186,
-189,
-187,
 188,
-203,
-209,
+191,
+189,
+190,
+205,
+211,
+216,
+217,
 214,
-215,
 212,
+215,
 210,
 213,
-208,
-211,
-204,
-207,
-205,
 206,
-221,
-227,
+209,
+207,
+208,
+223,
+229,
+234,
+235,
 232,
-233,
 230,
+233,
 228,
 231,
-226,
-229,
-222,
-225,
-223,
 224,
-239,
-245,
+227,
+225,
+226,
+241,
+247,
+252,
+253,
 250,
-251,
 248,
+251,
 246,
 249,
-244,
-247,
-240,
-243,
-241,
 242,
+245,
+243,
+244,
 1,
 3,
 21,

+ 2 - 0
compiler/aarch64/ra64sta.inc

@@ -71,6 +71,8 @@
 0,
 0,
 0,
+0,
+0,
 64,
 64,
 64,

+ 2 - 0
compiler/aarch64/ra64std.inc

@@ -71,6 +71,8 @@
 'fpsr',
 'tpidr_el0',
 'mpidr_el1',
+'cntfrq_el0',
+'cntpct_el0',
 'b0',
 'h0',
 's0',

+ 2 - 0
compiler/aarch64/ra64sup.inc

@@ -71,6 +71,8 @@ RS_FPCR = $01;
 RS_FPSR = $02;
 RS_TPIDR_EL0 = $03;
 RS_MPIDR_EL1 = $04;
+RS_CNTFRQ_EL0 = $0D;
+RS_CNTPCT_EL0 = $0E;
 RS_B0 = $00;
 RS_H0 = $00;
 RS_S0 = $00;