VirtualBox

Ignore:
Timestamp:
Sep 10, 2024 11:51:08 AM (5 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164750
Message:

Disassembler/ArmV8: Updates and start on floating point and SIMD instructions, bugref:10394

File:
1 edited

Legend:

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

    r105858 r106004  
    55
    66/*
    7  * Copyright (C) 2023 Oracle and/or its affiliates.
     7 * Copyright (C) 2024 Oracle and/or its affiliates.
    88 *
    99 * This file is part of VirtualBox base platform packages, as
     
    665665        ccmn w0, w1, #0xf, al
    666666
     667        msr spsel,   #1
     668        msr spsel,   #0
     669        msr daifset, #0
     670        msr daifset, #15
     671        msr daifclr, #0
     672        msr daifclr, #15
     673        msr uao,     #1
     674        msr uao,     #0
     675        msr pan,     #1
     676        msr pan,     #0
     677        ; msr allint,  #1 Not supported by the toolchain
     678        ; msr allint,  #0 Not supported by the toolchain
     679        msr pm,      #1
     680        msr pm,      #0
     681        msr ssbs,    #1
     682        msr ssbs,    #0
     683        msr dit,     #1
     684        msr dit,     #0
     685        ; msr tco,     #1 Not supported by the toolchain
     686        ; msr tco,     #0 Not supported by the toolchain
     687        ; msr svcrsm,  #1 Not supported by the toolchain
     688        ; msr svcrsm,  #0 Not supported by the toolchain
     689        ; msr svcrza,  #1 Not supported by the toolchain
     690        ; msr svcrza,  #0 Not supported by the toolchain
     691        ; msr svcrsma, #1 Not supported by the toolchain
     692        ; msr svcrsma, #0 Not supported by the toolchain
     693
     694        ; Floating Point instructions.
     695        fmadd  s0, s1, s3, s31
     696        fmadd  d0, d1, d3, d31
     697        fmadd  h0, h1, h3, h31
     698
     699        fmsub  s0, s1, s3, s31
     700        fmsub  d0, d1, d3, d31
     701        fmsub  h0, h1, h3, h31
     702
     703        fnmadd s0, s1, s3, s31
     704        fnmadd d0, d1, d3, d31
     705        fnmadd h0, h1, h3, h31
     706
     707        fnmsub s0, s1, s3, s31
     708        fnmsub d0, d1, d3, d31
     709        fnmsub h0, h1, h3, h31
     710
     711        fcvtzu x0, s0, #1
     712        fcvtzu x0, s0, #31
     713        fcvtzu x0, s0, #63
     714        fcvtzu w0, s0, #1
     715        fcvtzu w0, s0, #32
     716
     717        fcvtzu x0, d0, #1
     718        fcvtzu x0, d0, #31
     719        fcvtzu x0, d0, #63
     720        fcvtzu w0, d0, #1
     721        fcvtzu w0, d0, #32
     722
     723        fcvtzu x0, h0, #1
     724        fcvtzu x0, h0, #31
     725        fcvtzu x0, h0, #63
     726        fcvtzu w0, h0, #1
     727        fcvtzu w0, h0, #32
     728
     729        fcvtzs x0, s0, #1
     730        fcvtzs x0, s0, #31
     731        fcvtzs x0, s0, #63
     732        fcvtzs w0, s0, #1
     733        fcvtzs w0, s0, #32
     734
     735        fcvtzs x0, d0, #1
     736        fcvtzs x0, d0, #31
     737        fcvtzs x0, d0, #63
     738        fcvtzs w0, d0, #1
     739        fcvtzs w0, d0, #32
     740
     741        fcvtzs x0, h0, #1
     742        fcvtzs x0, h0, #31
     743        fcvtzs x0, h0, #63
     744        fcvtzs w0, h0, #1
     745        fcvtzs w0, h0, #32
     746
     747        ucvtf  s0, x0, #1
     748        ucvtf  s0, x0, #31
     749        ucvtf  s0, x0, #63
     750        ucvtf  s0, w0, #1
     751        ucvtf  s0, w0, #32
     752
     753        ucvtf  d0, x0, #1
     754        ucvtf  d0, x0, #31
     755        ucvtf  d0, x0, #63
     756        ucvtf  d0, w0, #1
     757        ucvtf  d0, w0, #32
     758
     759        ucvtf  h0, x0, #1
     760        ucvtf  h0, x0, #31
     761        ucvtf  h0, x0, #63
     762        ucvtf  h0, w0, #1
     763        ucvtf  h0, w0, #32
     764
     765        scvtf  s0, x0, #1
     766        scvtf  s0, x0, #31
     767        scvtf  s0, x0, #63
     768        scvtf  s0, w0, #1
     769        scvtf  s0, w0, #32
     770
     771        scvtf  d0, x0, #1
     772        scvtf  d0, x0, #31
     773        scvtf  d0, x0, #63
     774        scvtf  d0, w0, #1
     775        scvtf  d0, w0, #32
     776
     777        scvtf  h0, x0, #1
     778        scvtf  h0, x0, #31
     779        scvtf  h0, x0, #63
     780        scvtf  h0, w0, #1
     781        scvtf  h0, w0, #32
     782
     783        fcsel  s0, s1, s2, eq
     784        fcsel  d0, d1, d2, eq
     785        fcsel  h0, h1, h2, eq
     786
     787        fmul   s0, s1, s2
     788        fmul   d0, d1, d2
     789        fmul   h0, h1, h2
     790
     791        fdiv   s0, s1, s2
     792        fdiv   d0, d1, d2
     793        fdiv   h0, h1, h2
     794
     795        fadd   s0, s1, s2
     796        fadd   d0, d1, d2
     797        fadd   h0, h1, h2
     798
     799        fsub   s0, s1, s2
     800        fsub   d0, d1, d2
     801        fsub   h0, h1, h2
     802
     803        fmax   s0, s1, s2
     804        fmax   d0, d1, d2
     805        fmax   h0, h1, h2
     806
     807        fmin   s0, s1, s2
     808        fmin   d0, d1, d2
     809        fmin   h0, h1, h2
     810
     811        fmaxnm s0, s1, s2
     812        fmaxnm d0, d1, d2
     813        fmaxnm h0, h1, h2
     814
     815        fminnm s0, s1, s2
     816        fminnm d0, d1, d2
     817        fminnm h0, h1, h2
     818
     819        fnmul  s0, s1, s2
     820        fnmul  d0, d1, d2
     821        fnmul  h0, h1, h2
     822
     823        fccmp  s0, s1, #0,  eq
     824        fccmp  s0, s1, #15, ne
     825        fccmp  d0, d1, #0,  eq
     826        fccmp  d0, d1, #15, ne
     827        fccmp  h0, h1, #0,  eq
     828        fccmp  h0, h1, #15, ne
     829
     830        fccmpe s0, s1, #0,  eq
     831        fccmpe s0, s1, #15, ne
     832        fccmpe d0, d1, #0,  eq
     833        fccmpe d0, d1, #15, ne
     834        fccmpe h0, h1, #0,  eq
     835        fccmpe h0, h1, #15, ne
     836
     837        ;fmov   s0, #1 @todo Needs FP immediate parsing
     838
     839        fcmp s0, s1
     840        ;fcmp s0, #0.0
     841        fcmp d0, d1
     842        ;fcmp d0, #0.0
     843        fcmp h0, h1
     844        ;fcmp h0, #0.0
     845
     846        fcmpe s0, s1
     847        ;fcmpe s0, #0.0
     848        fcmpe d0, d1
     849        ;fcmpe d0, #0.0
     850        fcmpe h0, h1
     851        ;fcmpe h0, #0.0
     852
     853        fmov  s0, s1
     854        fmov  d0, d1
     855        fmov  h0, h1
     856
     857        fabs  s0, s1
     858        fabs  d0, d1
     859        fabs  h0, h1
     860
     861        fneg  s0, s1
     862        fneg  d0, d1
     863        fneg  h0, h1
     864
     865        fsqrt s0, s1
     866        fsqrt d0, d1
     867        fsqrt h0, h1
     868
     869        fcvt s0, d1
     870        fcvt s0, h1
     871        fcvt d0, s1
     872        fcvt d0, h1
     873        fcvt h0, s1
     874        fcvt h0, d1
     875
     876        frintn s0, s1
     877        frintn d0, d1
     878        frintn h0, h1
     879
     880        frintp s0, s1
     881        frintp d0, d1
     882        frintp h0, h1
     883
     884        frintm s0, s1
     885        frintm d0, d1
     886        frintm h0, h1
     887
     888        frintz s0, s1
     889        frintz d0, d1
     890        frintz h0, h1
     891
     892        frinta s0, s1
     893        frinta d0, d1
     894        frinta h0, h1
     895
     896        frintx s0, s1
     897        frintx d0, d1
     898        frintx h0, h1
     899
     900        frinti s0, s1
     901        frinti d0, d1
     902        frinti h0, h1
     903
     904        frint32z s0, s1
     905        frint32z d0, d1
     906
     907        frint32x s0, s1
     908        frint32x d0, d1
     909
     910        frint64z s0, s1
     911        frint64z d0, d1
     912
     913        frint64x s0, s1
     914        frint64x d0, d1
     915
     916        sshr d0, d1, #1
     917        sshr d0, d1, #64
     918
     919        ssra d0, d1, #1
     920        ssra d0, d1, #64
     921
     922        srshr d0, d1, #1
     923        srshr d0, d1, #64
     924
     925        srsra d0, d1, #1
     926        srsra d0, d1, #64
     927
     928        ; @todo
     929        ;shl   d0, d1, #0
     930        ;shl   d0, d1, #63
     931
     932        ;sqshl d0, d1, #0
     933        ;sqshl d0, d1, #63
     934
     935        ;sqshrn q0, q1, #1
     936        ;sqshrn q0, q1, #64
     937
     938        ;sqrshrn q0, dq, #1
     939        ;sqrshrn q0, q1, #64
     940
    667941        ;
    668942        ; 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