mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-07 16:54:48 +00:00
This changes the IndexedModeAction representation to remove the limitation on the number of value types in MVT. This limitation prevents us from specifying AVX types. Prior to this change IndexedModActions was represented as follows... uint64_t IndexedModeActions[2][ISD::LAST_INDEXED_MODE]; the first dimension was used to represent loads, then stores. This imposed a limitation of 32 on the number of value types that could be handled with this method. The value type was used to shift the two bits into and out of the approprate bits in the uint64_t. With this change the array is now represented as ... uint8_t IndexedModeActions[MVT::LAST_VALUETYPE][2][ISD::LAST_INDEXED_MODE]; Takes more space but removes the limitation on MVT::LAST_VALUETYPE. The first dimension is now the value_type for the reference. The second dimension is the load [0] vs. store[1]. The third dimension represents the various modes for load store. Accesses are now direct, no shifting or masking. There are other limitations that need to be removed, so that MVT::LAST_VALUETYPE can be greater than 32. This is merely the first step towards that goal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73104 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
llvm | ||
llvm-c |