diff options
author | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-03 14:51:31 +0000 |
---|---|---|
committer | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-03 14:51:31 +0000 |
commit | 337558ca7682fbd20c8d070e30b98ac4a0278971 (patch) | |
tree | 5af5677ac2217320b8d17856c4312adfa4f0dc07 /compiler/x86_64 | |
parent | be72eb69008dd1e94ad02a34a572cbf1bcd626ee (diff) | |
download | fpc-337558ca7682fbd20c8d070e30b98ac4a0278971.tar.gz |
+ support all XSAVE instructions, resolves #37864
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47042 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/x86_64')
-rw-r--r-- | compiler/x86_64/x8664ats.inc | 7 | ||||
-rw-r--r-- | compiler/x86_64/x8664att.inc | 7 | ||||
-rw-r--r-- | compiler/x86_64/x8664int.inc | 7 | ||||
-rw-r--r-- | compiler/x86_64/x8664nop.inc | 2 | ||||
-rw-r--r-- | compiler/x86_64/x8664op.inc | 7 | ||||
-rw-r--r-- | compiler/x86_64/x8664pro.inc | 7 | ||||
-rw-r--r-- | compiler/x86_64/x8664tab.inc | 49 |
7 files changed, 85 insertions, 1 deletions
diff --git a/compiler/x86_64/x8664ats.inc b/compiler/x86_64/x8664ats.inc index b80734920f..010ce8ff13 100644 --- a/compiler/x86_64/x8664ats.inc +++ b/compiler/x86_64/x8664ats.inc @@ -1121,6 +1121,13 @@ attsufNONE, attsufNONE, attsufNONE, attsufNONE, +attsufNONE, +attsufNONE, +attsufNONE, +attsufNONE, +attsufNONE, +attsufNONE, +attsufNONE, attsufINT, attsufNONE, attsufNONE, diff --git a/compiler/x86_64/x8664att.inc b/compiler/x86_64/x8664att.inc index 774854d2e9..3f6f71dc5e 100644 --- a/compiler/x86_64/x8664att.inc +++ b/compiler/x86_64/x8664att.inc @@ -1121,6 +1121,13 @@ 'rdrand', 'rdseed', 'xgetbv', +'xsetbv', +'xsave', +'xsave64', +'xrstor', +'xrstor64', +'xsaveopt', +'xsaveopt64', 'prefetchwt1', 'kaddb', 'kaddd', diff --git a/compiler/x86_64/x8664int.inc b/compiler/x86_64/x8664int.inc index 26c35368aa..e3c4980b08 100644 --- a/compiler/x86_64/x8664int.inc +++ b/compiler/x86_64/x8664int.inc @@ -1121,6 +1121,13 @@ 'rdrand', 'rdseed', 'xgetbv', +'xsetbv', +'xsave', +'xsave64', +'xrstor', +'xrstor64', +'xsaveopt', +'xsaveopt64', 'prefetchwt1', 'kaddb', 'kaddd', diff --git a/compiler/x86_64/x8664nop.inc b/compiler/x86_64/x8664nop.inc index b42cdb7aa5..16c3d8ee81 100644 --- a/compiler/x86_64/x8664nop.inc +++ b/compiler/x86_64/x8664nop.inc @@ -1,2 +1,2 @@ { don't edit, this file is generated from x86ins.dat } -4207; +4214; diff --git a/compiler/x86_64/x8664op.inc b/compiler/x86_64/x8664op.inc index 12fc3aa709..806b875e43 100644 --- a/compiler/x86_64/x8664op.inc +++ b/compiler/x86_64/x8664op.inc @@ -1121,6 +1121,13 @@ A_XTEST, A_RDRAND, A_RDSEED, A_XGETBV, +A_XSETBV, +A_XSAVE, +A_XSAVE64, +A_XRSTOR, +A_XRSTOR64, +A_XSAVEOPT, +A_XSAVEOPT64, A_PREFETCHWT1, A_KADDB, A_KADDD, diff --git a/compiler/x86_64/x8664pro.inc b/compiler/x86_64/x8664pro.inc index 169204faf8..8ca04ad3d4 100644 --- a/compiler/x86_64/x8664pro.inc +++ b/compiler/x86_64/x8664pro.inc @@ -1121,6 +1121,13 @@ (Ch: [Ch_Wop1, Ch_WFlags]), (Ch: [Ch_Wop1, Ch_WFlags]), (Ch: [Ch_WEAX, Ch_WEDX, Ch_RECX]), +(Ch: [Ch_REAX, Ch_REDX, Ch_RECX]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), +(Ch: [Ch_All]), (Ch: [Ch_All]), (Ch: [Ch_All]), (Ch: [Ch_All]), diff --git a/compiler/x86_64/x8664tab.inc b/compiler/x86_64/x8664tab.inc index a46fafb435..fe1ee77557 100644 --- a/compiler/x86_64/x8664tab.inc +++ b/compiler/x86_64/x8664tab.inc @@ -20672,6 +20672,55 @@ flags : [if_xsave] ), ( + opcode : A_XSETBV; + ops : 0; + optypes : (ot_none,ot_none,ot_none,ot_none); + code : #3#15#1#209; + flags : [if_xsave] + ), + ( + opcode : A_XSAVE; + ops : 1; + optypes : (ot_memory,ot_none,ot_none,ot_none); + code : #2#15#174#132; + flags : [if_xsave] + ), + ( + opcode : A_XSAVE64; + ops : 1; + optypes : (ot_memory,ot_none,ot_none,ot_none); + code : #214#2#15#174#132; + flags : [if_xsave] + ), + ( + opcode : A_XRSTOR; + ops : 1; + optypes : (ot_memory,ot_none,ot_none,ot_none); + code : #2#15#174#133; + flags : [if_xsave] + ), + ( + opcode : A_XRSTOR64; + ops : 1; + optypes : (ot_memory,ot_none,ot_none,ot_none); + code : #214#2#15#174#133; + flags : [if_xsave] + ), + ( + opcode : A_XSAVEOPT; + ops : 1; + optypes : (ot_memory,ot_none,ot_none,ot_none); + code : #2#15#174#134; + flags : [if_xsave] + ), + ( + opcode : A_XSAVEOPT64; + ops : 1; + optypes : (ot_memory,ot_none,ot_none,ot_none); + code : #214#2#15#174#134; + flags : [if_xsave] + ), + ( opcode : A_PREFETCHWT1; ops : 1; optypes : (ot_memory,ot_none,ot_none,ot_none); |