mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-22 10:33:23 +00:00
[Target] Teach the query interfaces for lowering of extloads and
truncstores to support EVTs and return expand for non-simple ones. This makes them more consistent with the isLegal... query style methods and makes using them simpler in many scenarios. No functionality actually changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213860 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2c7c54c86c
commit
6800393083
@ -517,10 +517,12 @@ public:
|
|||||||
/// Return how this load with extension should be treated: either it is legal,
|
/// Return how this load with extension should be treated: either it is legal,
|
||||||
/// needs to be promoted to a larger size, needs to be expanded to some other
|
/// needs to be promoted to a larger size, needs to be expanded to some other
|
||||||
/// code sequence, or the target has a custom expander for it.
|
/// code sequence, or the target has a custom expander for it.
|
||||||
LegalizeAction getLoadExtAction(unsigned ExtType, MVT VT) const {
|
LegalizeAction getLoadExtAction(unsigned ExtType, EVT VT) const {
|
||||||
assert(ExtType < ISD::LAST_LOADEXT_TYPE && VT < MVT::LAST_VALUETYPE &&
|
if (VT.isExtended()) return Expand;
|
||||||
|
unsigned I = (unsigned) VT.getSimpleVT().SimpleTy;
|
||||||
|
assert(ExtType < ISD::LAST_LOADEXT_TYPE && I < MVT::LAST_VALUETYPE &&
|
||||||
"Table isn't big enough!");
|
"Table isn't big enough!");
|
||||||
return (LegalizeAction)LoadExtActions[VT.SimpleTy][ExtType];
|
return (LegalizeAction)LoadExtActions[I][ExtType];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return true if the specified load with extension is legal on this target.
|
/// Return true if the specified load with extension is legal on this target.
|
||||||
@ -532,11 +534,13 @@ public:
|
|||||||
/// Return how this store with truncation should be treated: either it is
|
/// Return how this store with truncation should be treated: either it is
|
||||||
/// legal, needs to be promoted to a larger size, needs to be expanded to some
|
/// legal, needs to be promoted to a larger size, needs to be expanded to some
|
||||||
/// other code sequence, or the target has a custom expander for it.
|
/// other code sequence, or the target has a custom expander for it.
|
||||||
LegalizeAction getTruncStoreAction(MVT ValVT, MVT MemVT) const {
|
LegalizeAction getTruncStoreAction(EVT ValVT, EVT MemVT) const {
|
||||||
assert(ValVT < MVT::LAST_VALUETYPE && MemVT < MVT::LAST_VALUETYPE &&
|
if (ValVT.isExtended() || MemVT.isExtended()) return Expand;
|
||||||
|
unsigned ValI = (unsigned) ValVT.getSimpleVT().SimpleTy;
|
||||||
|
unsigned MemI = (unsigned) MemVT.getSimpleVT().SimpleTy;
|
||||||
|
assert(ValI < MVT::LAST_VALUETYPE && MemI < MVT::LAST_VALUETYPE &&
|
||||||
"Table isn't big enough!");
|
"Table isn't big enough!");
|
||||||
return (LegalizeAction)TruncStoreActions[ValVT.SimpleTy]
|
return (LegalizeAction)TruncStoreActions[ValI][MemI];
|
||||||
[MemVT.SimpleTy];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return true if the specified store with truncation is legal on this
|
/// Return true if the specified store with truncation is legal on this
|
||||||
|
Loading…
x
Reference in New Issue
Block a user