1. 25 3月, 2023 2 次提交
  2. 24 3月, 2023 4 次提交
  3. 23 3月, 2023 3 次提交
  4. 22 3月, 2023 1 次提交
  5. 21 3月, 2023 12 次提交
  6. 20 3月, 2023 6 次提交
    • S
      Add new MemoryExtension.Replace(src, dst, ...) overload (#83120) · e223790c
      Stephen Toub 提交于
      * Add new MemoryExtension.Replace(src, dst, ...) overload
      
      * Address PR feedback
      e223790c
    • I
      11cbe0e2
    • S
      Fix ToString handling of [Flags] enums with negative values (#83616) · 61ce0910
      Stephen Toub 提交于
      * Fix ToString handling of [Flags] enums with negative values
      
      Our Enum rewrite earlier in .NET 8 broke the handling of ToString for [Flags] enums with negative values.  Prior to that rewrite, all of the enum values were stored as a sorted array of ulongs, regardless of the enum's underlying type. Now, they're stored as a sorted array of the underlying type.  However, that means that for signed underlying types, the position of negative values moved from the end to the beginning.  We knew this, and accordingly updated tests that reflected that order (which as an implementation detail is observable via APIs that get the underlying values).  But what we didn't notice because we didn't have tests covering it is that the logic for formatting [Flags] enums actually depends on those negative values being after the non-negative ones.  That's for two reasons.  First, there's logic that special-cases 0 and assumes that an enum value of 0 must be in the first slot of the values array if it exists.  Second, the logic for deciding which enum values should be included starts at the largest unsigned value and walks down subtracting out matching bit patterns as they're found; if the values are sorted differently, the resulting strings are different.  Not only might different names be included, but a number might be rendered if the order of evaluation means that no perfect subsetting is found even if there would have been had a different order been used.
      
      This fixes the issues by restoring the ordering based on the values being unsigned.  When we sort, we sort based on the unsigned version of the underlying primitive, even if it's signed.
      
      * Collapse GetEnumInfo for integer types to only be unsigned
      
      Rather than 13 possible `EnumInfo<T>`, we consolidate down to just 8, such that for all of the underlying types that are signed integers, we instead always use their unsigned counterparts.  This then ensures that the data for the values is always sorted according to the unsigned representation and all logic in Enum that performs searches based on value is always doing so consistently.
      61ce0910
    • S
      Delete dead GetUserFeatureDirectory functions (#83660) · 823641a8
      Stephen Toub 提交于
      The only overload that's used is the one taking two arguments.
      823641a8
    • S
    • S
      98343399
  7. 19 3月, 2023 4 次提交
    • T
      Update xarch to track more instruction metadata as flags (#83473) · 9c818a31
      Tanner Gooding 提交于
      * Reorder entries in instrsxarch to make finding SIMD instructions easier
      
      * Remove unused instructions: cvtpd2pi, cvtpi2pd, cvtpi2ps, cvtps2pi, cvttpd2pi, and cvttps2pi
      
      * Updating the xarch SIMD instructions to track flags indicating REX.W bit encoding and VEX/EVEX support
      
      * Update the emitter to take advantage of the new insFlags
      
      * Ensure TakesRexWPrefix works on x86
      
      * Properly track REX.W encoding for VEX vs EVEX
      
      * Ensure supportsVEX is set before supportsEVEX
      
      * Ensure canUseVexEncoding is true when ForceEVEXEncoding is set
      
      * Track how some special EVEX instructions are handled differently
      
      * Apply formatting patch
      
      * Ensure REX.WX is handled for EVEX where required
      9c818a31
    • S
      Add async post to deep-dive-blog-posts.md (#83506) · 3bc0ec22
      Stephen Toub 提交于
      3bc0ec22
    • F
      [Mono] Intrinsify As* on ARM64 with mini JIT (#83544) · 1f86cb72
      Fan Yang 提交于
      * Intrinsify As* on arm64
      
      * Address review feedback
      
      * Uncomment
      1f86cb72
    • M
      Improve and enable writing test wrappers to disk (#83444) · 2aec3816
      Mark Plesko 提交于
      `CodeBuilder` utility (mainly handles indentation) was lifted from the [PROSE codebase](https://msdata.visualstudio.com/PROSE/_git/PROSE?version=GCa244bb231dcaabe04b4825d4e093beaceed434d8&path=/Microsoft.ProgramSynthesis/Common/Utils/CodeBuilder.cs).  I omitted the last two revisions to it as they opened a few API questions for me and I didn't need the functionality anyway.
      
      Then use it to format the generated code in `XUnitWrapperGenerator`.  Diffs are probably best viewed with whitespace ignored.  Writing simple text (`Append`/`AppendLine`) is the same as `StringBuilder`.  Indentation is specified (usually with a `using` that cleans up) and then added automatically.
      
      Interesting tidbits:
      - Factored `AppendAliasMap` from the 3 identical uses
      - The loop structure for breaking the tests into groups of 50 doesn't allow `using`.  I did the push/pop of indentation manually rather than trying to restructure it.
      
      Add a new MergedTestRunner.targets for relevant logic.  Enable `EmitCompilerGeneratedFiles` in it.
      2aec3816
  8. 18 3月, 2023 8 次提交