@@ -1328,6 +1328,7 @@ unsigned MachineJumpTableInfo::getEntrySize(const DataLayout &TD) const {
13281328 case MachineJumpTableInfo::EK_GPRel32BlockAddress:
13291329 case MachineJumpTableInfo::EK_LabelDifference32:
13301330 case MachineJumpTableInfo::EK_Custom32:
1331+ case MachineJumpTableInfo::EK_CoffImgRel32:
13311332 return 4 ;
13321333 case MachineJumpTableInfo::EK_Inline:
13331334 return 0 ;
@@ -1348,6 +1349,7 @@ unsigned MachineJumpTableInfo::getEntryAlignment(const DataLayout &TD) const {
13481349 return TD.getABIIntegerTypeAlignment (64 ).value ();
13491350 case MachineJumpTableInfo::EK_GPRel32BlockAddress:
13501351 case MachineJumpTableInfo::EK_LabelDifference32:
1352+ case MachineJumpTableInfo::EK_CoffImgRel32:
13511353 case MachineJumpTableInfo::EK_Custom32:
13521354 return TD.getABIIntegerTypeAlignment (32 ).value ();
13531355 case MachineJumpTableInfo::EK_Inline:
@@ -1356,6 +1358,25 @@ unsigned MachineJumpTableInfo::getEntryAlignment(const DataLayout &TD) const {
13561358 llvm_unreachable (" Unknown jump table encoding!" );
13571359}
13581360
1361+ // / getEntryIsSigned - Return true if the load for the jump table index
1362+ // / should use signed extension, false if zero extension (unsigned)
1363+ bool MachineJumpTableInfo::getEntryIsSigned () const {
1364+ switch (getEntryKind ()) {
1365+ case MachineJumpTableInfo::EK_BlockAddress:
1366+ case MachineJumpTableInfo::EK_GPRel64BlockAddress:
1367+ case MachineJumpTableInfo::EK_GPRel32BlockAddress:
1368+ case MachineJumpTableInfo::EK_LabelDifference32:
1369+ case MachineJumpTableInfo::EK_LabelDifference64:
1370+ case MachineJumpTableInfo::EK_Inline:
1371+ case MachineJumpTableInfo::EK_Custom32:
1372+ return true ;
1373+
1374+ case MachineJumpTableInfo::EK_CoffImgRel32:
1375+ return false ;
1376+ }
1377+ llvm_unreachable (" Unknown jump table encoding!" );
1378+ }
1379+
13591380// / Create a new jump table entry in the jump table info.
13601381unsigned MachineJumpTableInfo::createJumpTableIndex (
13611382 const std::vector<MachineBasicBlock*> &DestBBs) {
0 commit comments