VirtualBox

Changeset 106056 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Sep 16, 2024 9:33:54 AM (3 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: bugref:10658 SIMD FP testcase: Rename the invalid-values macro using the table names (from the Intel spec) in them (and a shorter prefix!). This will be useful for expressing values from more tables (/variations).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32

    r106055 r106056  
    542542};
    543543
    544 /** Packed single-precision invalid values. */
    545 #define BS3CPUINSTR4_PS_INVALIDS \
     544/**
     545 * Table D-1: Packed single-precision floating-point invalid values.
     546 * For instructions: addps, subps, mulps, divps, addsubps, haddps, hsubps.
     547 **/
     548#define FP32_TABLE_D1_PS_INVALIDS \
    546549    /*0 */{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V0),       FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V5) } },      \
    547550            { /*src1     */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V4) } },      \
     
    629632              /*xcpt?    */ true, true },                                                                                                                                                                                                                                          \
    630633
    631 /** Packed double-precision floating-point invalid values. */
    632 #define BS3CPUINSTR4_PD_INVALIDS \
     634/**
     635 * Table D-1: Packed double-precision floating-point invalid values.
     636 * For instructions: addpd, subpd, mulpd, divpd, addsubpd, haddpd, hsubpd.
     637 **/
     638#define FP64_TABLE_D1_PD_INVALIDS \
    633639    /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },      \
    634640            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },      \
     
    716722              /*xcpt?    */ true, true },                                                                                                                  \
    717723
    718 /** Scalar single-precision floating-point invalid values. */
    719 #define BS3CPUINSTR4_SS_INVALIDS \
     724/**
     725 * Table D-1: Scalar single-precision floating-point invalid values.
     726 * For instructions: addss, subss, mulss, divss.
     727 **/
     728#define FP32_TABLE_D1_SS_INVALIDS \
    720729    /* QNan, QNan (Masked). */                                                                                                                                                                                                                                                                      \
    721730    /*0 */{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V0),       FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V5) } },                       \
     
    928937              /*xcpt?    */ true, true },                                                                                                                                                                                                                                                           \
    929938
    930 /** Scalar double-precision floating-point invalid values. */
    931 #define BS3CPUINSTR4_SD_INVALIDS \
     939/**
     940 * Table D-1: Scalar double-precision floating-point invalid values.
     941 * For instructions: addsd, subsd, mulsd, divsd.
     942 **/
     943#define FP64_TABLE_D1_SD_INVALIDS \
    932944    /* QNan, QNan (Masked). */                                                                                                                                              \
    933945    /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },                       \
     
    11401152              /*xcpt?    */ true, true },                                                                                                                                   \
    11411153
    1142 /** Horizontally packed single-precision floating-point invalid values. */
    1143 #define BS3CPUINSTR4_H_PS_INVALIDS \
     1154/**
     1155 * Table D-1: Horizontally packed single-precision floating-point invalid values.
     1156 * For instructions: haddps, hsubps.
     1157 **/
     1158#define FP32_TABLE_D1_H_PS_INVALIDS \
    11441159    /*0 */{ { /*src2     */ { FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_V0),       FP32_QNAN_V(0, FP32_FRAC_V1),       FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V5) } }, \
    11451160            { /*src1     */ { FP32_QNAN(0),                       FP32_QNAN(0),                       FP32_QNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V4) } }, \
     
    12271242              /*xcpt?    */ true, true },                                                                                                                                                                                                                                                                 \
    12281243
    1229 /** Horizontally packed double-precision floating-point invalid values. */
    1230 #define BS3CPUINSTR4_H_PD_INVALIDS \
     1244/**
     1245 * Table D-1: Horizontally packed double-precision floating-point invalid values.
     1246 * For instructions: haddpd, hsubpd.
     1247 **/
     1248#define FP64_TABLE_D1_H_PD_INVALIDS \
    12311249    /*0 */{ { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1)       } }, \
    12321250            { /*src1     */ { FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } }, \
     
    26312649     * Invalids.
    26322650     */
    2633     /*34*/ BS3CPUINSTR4_PS_INVALIDS
     2651    /*34*/ FP32_TABLE_D1_PS_INVALIDS
    26342652    /** @todo Underflow, Precision; Rounding; FZ etc. */
    26352653    };
     
    29012919     * Invalids.
    29022920     */
    2903     /*27*/ BS3CPUINSTR4_PD_INVALIDS
     2921    /*27*/ FP64_TABLE_D1_PD_INVALIDS
    29042922    /** @todo Underflow, Precision; Rounding; FZ etc. */
    29052923    };
     
    31923210     * Invalids.
    31933211     */
    3194     /*30*/ BS3CPUINSTR4_SS_INVALIDS
     3212    /*30*/ FP32_TABLE_D1_SS_INVALIDS
    31953213    /** @todo Underflow; Precision; Rounding; FZ etc. */
    31963214    };
     
    34863504     * Invalids.
    34873505     */
    3488     /*32*/ BS3CPUINSTR4_SD_INVALIDS
     3506    /*32*/ FP64_TABLE_D1_SD_INVALIDS
    34893507    /** @todo Underflow, Precision; Rounding; FZ etc. */
    34903508    };
     
    37803798     * Invalids.
    37813799     */
    3782     /*32*/ BS3CPUINSTR4_H_PS_INVALIDS
     3800    /*32*/ FP32_TABLE_D1_H_PS_INVALIDS
    37833801    /** @todo Underflow; Precision; Rounding; FZ etc. */
    37843802    };
     
    40774095     * Invalids.
    40784096     */
    4079     /*31*/ BS3CPUINSTR4_H_PD_INVALIDS
     4097    /*31*/ FP64_TABLE_D1_H_PD_INVALIDS
    40804098    /** @todo Underflow; Precision; Rounding; FZ etc. */
    40814099    };
     
    43964414     * Invalids.
    43974415     */
    4398     /*34*/ BS3CPUINSTR4_PS_INVALIDS
     4416    /*34*/ FP32_TABLE_D1_PS_INVALIDS
    43994417    /** @todo Underflow; Precision; Rounding; FZ etc. */
    44004418    };
     
    46944712     * Invalids.
    46954713     */
    4696     /*31*/ BS3CPUINSTR4_PD_INVALIDS
     4714    /*31*/ FP64_TABLE_D1_PD_INVALIDS
    46974715    /** @todo Underflow; Precision; Rounding; FZ etc. */
    46984716    };
     
    50065024     * Invalids.
    50075025     */
    5008     /*30*/ BS3CPUINSTR4_SS_INVALIDS
     5026    /*30*/ FP32_TABLE_D1_SS_INVALIDS
    50095027    /** @todo Underflow; Precision; Rounding; FZ etc. */
    50105028    };
     
    53355353     * Invalids.
    53365354     */
    5337     /*32*/ BS3CPUINSTR4_SD_INVALIDS
     5355    /*32*/ FP64_TABLE_D1_SD_INVALIDS
    53385356    /** @todo Underflow; Precision; Rounding; FZ etc. */
    53395357    };
     
    56435661     * Invalids.
    56445662     */
    5645     /*32*/ BS3CPUINSTR4_H_PS_INVALIDS
     5663    /*32*/ FP32_TABLE_D1_H_PS_INVALIDS
    56465664    /** @todo Underflow; Precision; Rounding; FZ etc. */
    56475665    };
     
    59095927     * Invalids.
    59105928     */
    5911     /*27*/ BS3CPUINSTR4_H_PD_INVALIDS
     5929    /*27*/ FP64_TABLE_D1_H_PD_INVALIDS
    59125930    /** @todo Underflow; Precision; Rounding; FZ etc. */
    59135931    };
     
    62726290     * Invalids.
    62736291     */
    6274     /*40*/ BS3CPUINSTR4_PS_INVALIDS
     6292    /*40*/ FP32_TABLE_D1_PS_INVALIDS
    62756293    /** @todo Underflow, Precision; Rounding; FZ etc. */
    62766294    };
     
    65846602     * Invalids.
    65856603     */
    6586     /*33*/ BS3CPUINSTR4_PD_INVALIDS
     6604    /*33*/ FP64_TABLE_D1_PD_INVALIDS
    65876605    /** @todo Underflow, Precision; Rounding; FZ etc. */
    65886606    };
     
    68596877     * Invalids.
    68606878     */
    6861     /*28*/ BS3CPUINSTR4_SS_INVALIDS
     6879    /*28*/ FP32_TABLE_D1_SS_INVALIDS
    68626880    /** @todo Underflow, Precision; Rounding; FZ etc. */
    68636881    };
     
    71567174     * Invalids.
    71577175     */
    7158     /*33*/ BS3CPUINSTR4_SD_INVALIDS
     7176    /*33*/ FP64_TABLE_D1_SD_INVALIDS
    71597177    /** @todo Underflow, Precision; Rounding; FZ etc. */
    71607178    };
     
    74347452     * Invalids.
    74357453     */
    7436     /*30*/ BS3CPUINSTR4_SS_INVALIDS
     7454    /*30*/ FP32_TABLE_D1_SS_INVALIDS
    74377455    /** @todo Underflow; Precision; Rounding, FZ etc. */
    74387456    };
     
    78097827     * Invalids.
    78107828     */
    7811     /*40*/ BS3CPUINSTR4_SD_INVALIDS
     7829    /*40*/ FP64_TABLE_D1_SD_INVALIDS
    78127830    /** @todo Underflow, Precision; Rounding; FZ etc. */
    78137831    };
     
    81568174     * Invalids.
    81578175     */
    8158     /*38*/ BS3CPUINSTR4_PS_INVALIDS
     8176    /*38*/ FP32_TABLE_D1_PS_INVALIDS
    81598177    /** @todo Underflow; Precision; Rounding; FZ etc. */
    81608178    };
     
    86308648     * Invalids.
    86318649     */
    8632     /*56*/ BS3CPUINSTR4_PD_INVALIDS
     8650    /*56*/ FP64_TABLE_D1_PD_INVALIDS
    86338651    /** @todo Underflow; Precision; Rounding; FZ etc. */
    86348652    };
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