VirtualBox

Ignore:
Timestamp:
Oct 23, 2024 10:41:19 AM (4 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165456
Message:

Disassembler: Fix decoding instructions which take sp as a register instead of of xzr/wzr, bugref:10394

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Disassembler/testcase/tstDisasmArmv8-1-asm.S

    r106018 r106616  
    303303        bic  w0, w1, w28, ROR #31
    304304
     305        bic  wzr, wzr, wzr
     306        bic  wzr, wzr, wzr, LSL #1
     307        bic  wzr, wzr, wzr, LSL #31
     308        bic  wzr, wzr, wzr, LSR #1
     309        bic  wzr, wzr, wzr, LSR #31
     310        bic  wzr, wzr, wzr, ASR #1
     311        bic  wzr, wzr, wzr, ASR #31
     312        bic  wzr, wzr, wzr, ROR #1
     313        bic  wzr, wzr, wzr, ROR #31
     314
    305315        bic  x0, x0, x27
    306316        bic  x0, x1, x28, LSL #1
     
    313323        bic  x0, x1, x28, ROR #63
    314324
     325        bic  xzr, xzr, xzr
     326        bic  xzr, xzr, xzr, LSL #1
     327        bic  xzr, xzr, xzr, LSL #63
     328        bic  xzr, xzr, xzr, LSR #1
     329        bic  xzr, xzr, xzr, LSR #63
     330        bic  xzr, xzr, xzr, ASR #1
     331        bic  xzr, xzr, xzr, ASR #63
     332        bic  xzr, xzr, xzr, ROR #1
     333        bic  xzr, xzr, xzr, ROR #63
     334
    315335        orn  w0, w0, w27
    316336        orn  w0, w1, w28, LSL #1
     
    323343        orn  w0, w1, w28, ROR #31
    324344
     345        orn  wzr, wzr, wzr
     346        orn  wzr, wzr, wzr, LSL #1
     347        orn  wzr, wzr, wzr, LSL #31
     348        orn  wzr, wzr, wzr, LSR #1
     349        orn  wzr, wzr, wzr, LSR #31
     350        orn  wzr, wzr, wzr, ASR #1
     351        orn  wzr, wzr, wzr, ASR #31
     352        orn  wzr, wzr, wzr, ROR #1
     353        orn  wzr, wzr, wzr, ROR #31
     354
    325355        orn  x0, x0, x27
    326356        orn  x0, x1, x28, LSL #1
     
    333363        orn  x0, x1, x28, ROR #63
    334364
     365        orn  xzr, xzr, xzr
     366        orn  xzr, xzr, xzr, LSL #1
     367        orn  xzr, xzr, xzr, LSL #63
     368        orn  xzr, xzr, xzr, LSR #1
     369        orn  xzr, xzr, xzr, LSR #63
     370        orn  xzr, xzr, xzr, ASR #1
     371        orn  xzr, xzr, xzr, ASR #63
     372        orn  xzr, xzr, xzr, ROR #1
     373        orn  xzr, xzr, xzr, ROR #63
     374
    335375        eon  w0, w0, w27
    336376        eon  w0, w1, w28, LSL #1
     
    343383        eon  w0, w1, w28, ROR #31
    344384
     385        eon  wzr, wzr, wzr
     386        eon  wzr, wzr, wzr, LSL #1
     387        eon  wzr, wzr, wzr, LSL #31
     388        eon  wzr, wzr, wzr, LSR #1
     389        eon  wzr, wzr, wzr, LSR #31
     390        eon  wzr, wzr, wzr, ASR #1
     391        eon  wzr, wzr, wzr, ASR #31
     392        eon  wzr, wzr, wzr, ROR #1
     393        eon  wzr, wzr, wzr, ROR #31
     394
    345395        eon  x0, x0, x27
    346396        eon  x0, x1, x28, LSL #1
     
    353403        eon  x0, x1, x28, ROR #63
    354404
     405        eon  xzr, xzr, xzr
     406        eon  xzr, xzr, xzr, LSL #1
     407        eon  xzr, xzr, xzr, LSL #63
     408        eon  xzr, xzr, xzr, LSR #1
     409        eon  xzr, xzr, xzr, LSR #63
     410        eon  xzr, xzr, xzr, ASR #1
     411        eon  xzr, xzr, xzr, ASR #63
     412        eon  xzr, xzr, xzr, ROR #1
     413        eon  xzr, xzr, xzr, ROR #63
     414
    355415        bics w0, w0, w27
    356416        bics w0, w1, w28, LSL #1
     
    363423        bics w0, w1, w28, ROR #31
    364424
     425        bics wzr, wzr, wzr
     426        bics wzr, wzr, wzr, LSL #1
     427        bics wzr, wzr, wzr, LSL #31
     428        bics wzr, wzr, wzr, LSR #1
     429        bics wzr, wzr, wzr, LSR #31
     430        bics wzr, wzr, wzr, ASR #1
     431        bics wzr, wzr, wzr, ASR #31
     432        bics wzr, wzr, wzr, ROR #1
     433        bics wzr, wzr, wzr, ROR #31
     434
    365435        bics x0, x0, x27
    366436        bics x0, x1, x28, LSL #1
     
    373443        bics x0, x1, x28, ROR #63
    374444
     445        bics xzr, xzr, xzr
     446        bics xzr, xzr, xzr, LSL #1
     447        bics xzr, xzr, xzr, LSL #63
     448        bics xzr, xzr, xzr, LSR #1
     449        bics xzr, xzr, xzr, LSR #63
     450        bics xzr, xzr, xzr, ASR #1
     451        bics xzr, xzr, xzr, ASR #63
     452        bics xzr, xzr, xzr, ROR #1
     453        bics xzr, xzr, xzr, ROR #63
     454
    375455        ; Memory loads
    376456        ldrb w0, [x28]
     
    378458        ldrb w0, [x28, #4095]
    379459
     460        ldrb w0, [sp]
     461        ldrb w0, [sp, #1]
     462        ldrb w0, [sp, #4095]
     463
    380464        ldrsb w0, [x28]
    381465        ldrsb w0, [x28, #1]
    382466        ldrsb w0, [x28, #4095]
    383467
     468        ldrsb w0, [sp]
     469        ldrsb w0, [sp, #1]
     470        ldrsb w0, [sp, #4095]
     471
    384472        ldrsb x0, [x28]
    385473        ldrsb x0, [x28, #1]
    386474        ldrsb x0, [x28, #4095]
    387475
     476        ldrsb x0, [sp]
     477        ldrsb x0, [sp, #1]
     478        ldrsb x0, [sp, #4095]
     479
    388480        ldrh w0, [x28]
    389481        ldrh w0, [x28, #2]
    390482        ldrh w0, [x28, #1024]
    391483
     484        ldrh w0, [sp]
     485        ldrh w0, [sp, #2]
     486        ldrh w0, [sp, #1024]
     487
    392488        ldrsh w0, [x28]
    393489        ldrsh w0, [x28, #2]
    394490        ldrsh w0, [x28, #1024]
    395491
     492        ldrsh w0, [sp]
     493        ldrsh w0, [sp, #2]
     494        ldrsh w0, [sp, #1024]
     495
    396496        ldrsh x0, [x28]
    397497        ldrsh x0, [x28, #2]
    398498        ldrsh x0, [x28, #1024]
    399499
     500        ldrsh x0, [sp]
     501        ldrsh x0, [sp, #2]
     502        ldrsh x0, [sp, #1024]
     503
    400504        ldr x0, [x28]
    401505        ldr x0, [x28, #8]
    402506        ldr x0, [x28, #32760]
    403507
     508        ldr x0, [sp]
     509        ldr x0, [sp, #8]
     510        ldr x0, [sp, #32760]
     511
    404512        ldr w0, [x28]
    405513        ldr w0, [x28, #4]
    406514        ldr w0, [x28, #16380]
    407515
     516        ldr w0, [sp]
     517        ldr w0, [sp, #4]
     518        ldr w0, [sp, #16380]
     519
    408520        ldrsw x0, [x28]
    409521        ldrsw x0, [x28, #4]
    410522        ldrsw x0, [x28, #16380]
    411523
     524        ldrsw x0, [sp]
     525        ldrsw x0, [sp, #4]
     526        ldrsw x0, [sp, #16380]
     527
    412528        ldurb w0, [x28]
    413529        ldurb w0, [x28, #-256]
    414530        ldurb w0, [x28, #255]
    415531
     532        ldurb w0, [sp]
     533        ldurb w0, [sp, #-256]
     534        ldurb w0, [sp, #255]
     535
    416536        ldursb w0, [x28]
    417537        ldursb w0, [x28, #-256]
    418538        ldursb w0, [x28, #255]
    419539
     540        ldursb w0, [sp]
     541        ldursb w0, [sp, #-256]
     542        ldursb w0, [sp, #255]
     543
    420544        ldursb x0, [x28]
    421545        ldursb x0, [x28, #-256]
    422546        ldursb x0, [x28, #255]
    423547
     548        ldursb x0, [sp]
     549        ldursb x0, [sp, #-256]
     550        ldursb x0, [sp, #255]
     551
    424552        ldurh w0, [x28]
    425553        ldurh w0, [x28, #-256]
    426554        ldurh w0, [x28, #255]
    427555
     556        ldurh w0, [sp]
     557        ldurh w0, [sp, #-256]
     558        ldurh w0, [sp, #255]
     559
    428560        ldursh w0, [x28]
    429561        ldursh w0, [x28, #-256]
    430562        ldursh w0, [x28, #255]
    431563
     564        ldursh w0, [sp]
     565        ldursh w0, [sp, #-256]
     566        ldursh w0, [sp, #255]
     567
    432568        ldursh x0, [x28]
    433569        ldursh x0, [x28, #-256]
    434570        ldursh x0, [x28, #255]
    435571
     572        ldursh x0, [sp]
     573        ldursh x0, [sp, #-256]
     574        ldursh x0, [sp, #255]
     575
    436576        ldur x0, [x28]
    437577        ldur x0, [x28, #-256]
    438578        ldur x0, [x28, #255]
    439579
     580        ldur x0, [sp]
     581        ldur x0, [sp, #-256]
     582        ldur x0, [sp, #255]
     583
    440584        ldur w0, [x28]
    441585        ldur w0, [x28, #-256]
    442586        ldur w0, [x28, #255]
    443587
     588        ldur w0, [sp]
     589        ldur w0, [sp, #-256]
     590        ldur w0, [sp, #255]
     591
    444592        ldursw x0, [x28]
    445593        ldursw x0, [x28, #-256]
    446594        ldursw x0, [x28, #255]
     595
     596        ldursw x0, [sp]
     597        ldursw x0, [sp, #-256]
     598        ldursw x0, [sp, #255]
    447599
    448600        ldp w0, w1, [x28]
     
    451603        ldp w0, w1, [x28, #252]
    452604
     605        ldp w0, w1, [sp]
     606        ldp w0, w1, [sp, #4]
     607        ldp w0, w1, [sp, #-256]
     608        ldp w0, w1, [sp, #252]
     609
    453610        ldp x0, x1, [x28]
    454611        ldp x0, x1, [x28, #8]
     
    456613        ldp x0, x1, [x28, #504]
    457614
     615        ldp x0, x1, [sp]
     616        ldp x0, x1, [sp, #8]
     617        ldp x0, x1, [sp, #-512]
     618        ldp x0, x1, [sp, #504]
     619
    458620        ldp w0, w1, [x28, #4]!
    459621        ldp w0, w1, [x28, #-256]!
    460622        ldp w0, w1, [x28, #252]!
    461623
     624        ldp w0, w1, [sp, #4]!
     625        ldp w0, w1, [sp, #-256]!
     626        ldp w0, w1, [sp, #252]!
     627
    462628        ldp x0, x1, [x28, #8]!
    463629        ldp x0, x1, [x28, #-512]!
    464630        ldp x0, x1, [x28, #504]!
    465631
     632        ldp x0, x1, [sp, #8]!
     633        ldp x0, x1, [sp, #-512]!
     634        ldp x0, x1, [sp, #504]!
     635
    466636        ldp w0, w1, [x28], #4
    467637        ldp w0, w1, [x28], #-256
    468638        ldp w0, w1, [x28], #252
    469639
     640        ldp w0, w1, [sp], #4
     641        ldp w0, w1, [sp], #-256
     642        ldp w0, w1, [sp], #252
     643
    470644        ldp x0, x1, [x28], #8
    471645        ldp x0, x1, [x28], #-512
    472646        ldp x0, x1, [x28], #504
     647
     648        ldp x0, x1, [sp], #8
     649        ldp x0, x1, [sp], #-512
     650        ldp x0, x1, [sp], #504
    473651
    474652        ldr  x0, [x1, x2]
     
    482660        ldr  w0, [x1, w2, SXTW #2]
    483661
     662        ldr  x0, [sp, x2]
     663        ldr  w0, [sp, x2]
     664        ldr  x0, [sp, x2, SXTX #0]
     665        ldr  x0, [sp, x2, LSL  #3]  ; UXTX
     666        ldr  x0, [sp, x2, SXTX #3]
     667        ldr  w0, [sp, w2, UXTW #0]
     668        ldr  w0, [sp, w2, SXTW #0]
     669        ldr  w0, [sp, w2, UXTW #2]
     670        ldr  w0, [sp, w2, SXTW #2]
     671
    484672        ldrb w0, [x1, x2]
    485673        ldrb w0, [x1, x2, LSL  #0]  ; UXTX
     
    488676        ldrb w0, [x1, w2, SXTW #0]
    489677
     678        ldrb w0, [sp, x2]
     679        ldrb w0, [sp, x2, LSL  #0]  ; UXTX
     680        ldrb w0, [sp, x2, SXTX #0]
     681        ldrb w0, [sp, w2, UXTW #0]
     682        ldrb w0, [sp, w2, SXTW #0]
     683
    490684        ldrsb w0, [x1, x2]
    491685        ldrsb w0, [x1, x2, LSL  #0] ; UXTX
     
    493687        ldrsb w0, [x1, w2, UXTW #0]
    494688        ldrsb w0, [x1, w2, SXTW #0]
     689
     690        ldrsb w0, [sp, x2]
     691        ldrsb w0, [sp, x2, LSL  #0] ; UXTX
     692        ldrsb w0, [sp, x2, SXTX #0]
     693        ldrsb w0, [sp, w2, UXTW #0]
     694        ldrsb w0, [sp, w2, SXTW #0]
    495695
    496696        ldrh w0, [x1, x2]
     
    504704        ldrh w0, [x1, w2, SXTW #1]
    505705
     706        ldrh w0, [sp, x2]
     707        ;ldrh w0, [sp, x2, LSL  #0]  ; UXTX
     708        ldrh w0, [sp, x2, SXTX #0]
     709        ldrh w0, [sp, x2, LSL  #1]   ; UXTX
     710        ldrh w0, [sp, x2, SXTX #1]
     711        ldrh w0, [sp, w2, UXTW #0]
     712        ldrh w0, [sp, w2, SXTW #0]
     713        ldrh w0, [sp, w2, UXTW #1]
     714        ldrh w0, [sp, w2, SXTW #1]
     715
    506716        ldrsh w0, [x1, x2]
    507717        ;ldrsh w0, [x1, x2, LSL  #0] ; UXTX
     
    514724        ldrsh w0, [x1, w2, SXTW #1]
    515725
     726        ldrsh w0, [sp, x2]
     727        ;ldrsh w0, [sp, x2, LSL  #0] ; UXTX
     728        ldrsh w0, [sp, x2, SXTX #0]
     729        ldrsh w0, [sp, x2, LSL  #1]   ; UXTX
     730        ldrsh w0, [sp, x2, SXTX #1]
     731        ldrsh w0, [sp, w2, UXTW #0]
     732        ldrsh w0, [sp, w2, SXTW #0]
     733        ldrsh w0, [sp, w2, UXTW #1]
     734        ldrsh w0, [sp, w2, SXTW #1]
     735
    516736        ldrsw x0, [x1, x2]
    517737        ;ldrsw x0, [x1, x2, LSL  #0] ; UXTX
     
    524744        ldrsw x0, [x1, w2, SXTW #2]
    525745
     746        ldrsw x0, [sp, x2]
     747        ;ldrsw x0, [sp, x2, LSL  #0] ; UXTX
     748        ldrsw x0, [sp, x2, SXTX #0]
     749        ldrsw x0, [sp, x2, LSL  #2]  ; UXTX
     750        ldrsw x0, [sp, x2, SXTX #2]
     751        ldrsw x0, [sp, w2, UXTW #0]
     752        ldrsw x0, [sp, w2, SXTW #0]
     753        ldrsw x0, [sp, w2, UXTW #2]
     754        ldrsw x0, [sp, w2, SXTW #2]
     755
    526756        ; Memory stores
    527757        strb w0, [x28]
     
    529759        strb w0, [x28, #4095]
    530760
     761        strb w0, [sp]
     762        strb w0, [sp, #1]
     763        strb w0, [sp, #4095]
     764
    531765        strh w0, [x28]
    532766        strh w0, [x28, #2]
    533767        strh w0, [x28, #1024]
    534768
     769        strh w0, [sp]
     770        strh w0, [sp, #2]
     771        strh w0, [sp, #1024]
     772
    535773        str x0, [x28]
    536774        str x0, [x28, #8]
    537775        str x0, [x28, #32760]
    538776
     777        str x0, [sp]
     778        str x0, [sp, #8]
     779        str x0, [sp, #32760]
     780
    539781        str w0, [x28]
    540782        str w0, [x28, #4]
    541783        str w0, [x28, #16380]
    542784
     785        str w0, [sp]
     786        str w0, [sp, #4]
     787        str w0, [sp, #16380]
    543788
    544789        sturb w0, [x28]
     
    546791        sturb w0, [x28, #255]
    547792
     793        sturb w0, [sp]
     794        sturb w0, [sp, #-256]
     795        sturb w0, [sp, #255]
     796
    548797        sturh w0, [x28]
    549798        sturh w0, [x28, #-256]
    550799        sturh w0, [x28, #255]
    551800
     801        sturh w0, [sp]
     802        sturh w0, [sp, #-256]
     803        sturh w0, [sp, #255]
     804
    552805        stur x0, [x28]
    553806        stur x0, [x28, #-256]
    554807        stur x0, [x28, #255]
    555808
     809        stur x0, [sp]
     810        stur x0, [sp, #-256]
     811        stur x0, [sp, #255]
     812
    556813        stur w0, [x28]
    557814        stur w0, [x28, #-256]
    558815        stur w0, [x28, #255]
     816
     817        stur w0, [sp]
     818        stur w0, [sp, #-256]
     819        stur w0, [sp, #255]
    559820
    560821        stp w0, w1, [x28]
     
    563824        stp w0, w1, [x28, #252]
    564825
     826        stp w0, w1, [sp]
     827        stp w0, w1, [sp, #4]
     828        stp w0, w1, [sp, #-256]
     829        stp w0, w1, [sp, #252]
     830
    565831        stp x0, x1, [x28]
    566832        stp x0, x1, [x28, #8]
     
    568834        stp x0, x1, [x28, #504]
    569835
     836        stp x0, x1, [sp]
     837        stp x0, x1, [sp, #8]
     838        stp x0, x1, [sp, #-512]
     839        stp x0, x1, [sp, #504]
     840
    570841        stp w0, w1, [x28, #4]!
    571842        stp w0, w1, [x28, #-256]!
    572843        stp w0, w1, [x28, #252]!
    573844
     845        stp w0, w1, [sp, #4]!
     846        stp w0, w1, [sp, #-256]!
     847        stp w0, w1, [sp, #252]!
     848
    574849        stp x0, x1, [x28, #8]!
    575850        stp x0, x1, [x28, #-512]!
    576851        stp x0, x1, [x28, #504]!
    577852
     853        stp x0, x1, [sp, #8]!
     854        stp x0, x1, [sp, #-512]!
     855        stp x0, x1, [sp, #504]!
     856
    578857        stp w0, w1, [x28], #4
    579858        stp w0, w1, [x28], #-256
    580859        stp w0, w1, [x28], #252
    581860
     861        stp w0, w1, [sp], #4
     862        stp w0, w1, [sp], #-256
     863        stp w0, w1, [sp], #252
     864
    582865        stp x0, x1, [x28], #8
    583866        stp x0, x1, [x28], #-512
    584867        stp x0, x1, [x28], #504
     868
     869        stp x0, x1, [sp], #8
     870        stp x0, x1, [sp], #-512
     871        stp x0, x1, [sp], #504
    585872
    586873        str  x0, [x1, x2]
     
    594881        str  w0, [x1, w2, SXTW #2]
    595882
     883        str  x0, [sp, x2]
     884        str  w0, [sp, x2]
     885        str  x0, [sp, x2, SXTX #0]
     886        str  x0, [sp, x2, LSL  #3]  ; UXTX
     887        str  x0, [sp, x2, SXTX #3]
     888        str  w0, [sp, w2, UXTW #0]
     889        str  w0, [sp, w2, SXTW #0]
     890        str  w0, [sp, w2, UXTW #2]
     891        str  w0, [sp, w2, SXTW #2]
     892
    596893        strb w0, [x1, x2]
    597894        strb w0, [x1, x2, LSL  #0x0]
     
    599896        strb w0, [x1, w2, UXTW #0x0]
    600897        strb w0, [x1, w2, SXTW #0x0]
     898
     899        strb w0, [sp, x2]
     900        strb w0, [sp, x2, LSL  #0x0]
     901        strb w0, [sp, x2, SXTX #0x0]
     902        strb w0, [sp, w2, UXTW #0x0]
     903        strb w0, [sp, w2, SXTW #0x0]
    601904
    602905        strh w0, [x1, x2]
     
    609912        strh w0, [x1, w2, UXTW #1]
    610913        strh w0, [x1, w2, SXTW #1]
     914
     915        strh w0, [sp, x2]
     916        ;strh w0, [sp, x2, LSL  #0x0] ; UXTX
     917        strh w0, [sp, x2, SXTX #0x0]
     918        strh w0, [sp, x2, LSL  #1]   ; UXTX
     919        strh w0, [sp, x2, SXTX #1]
     920        strh w0, [sp, w2, UXTW #0x0]
     921        strh w0, [sp, w2, SXTW #0x0]
     922        strh w0, [sp, w2, UXTW #1]
     923        strh w0, [sp, w2, SXTW #1]
    611924
    612925        ; Conditional compare
     
    9391252        ;sqrshrn q0, q1, #64
    9401253
     1254        dsb #0
     1255        dsb #1
     1256        dsb #2
     1257        dsb #3
     1258        dsb #4
     1259        dsb #5
     1260        dsb #6
     1261        dsb #7
     1262        dsb #8
     1263        dsb #9
     1264        dsb #0xa
     1265        dsb #0xb
     1266        dsb #0xc
     1267        dsb #0xd
     1268        dsb #0xe
     1269        dsb #0xf
     1270
    9411271        ;
    9421272        ; Keep last so the testcase can catch errors in
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette