[PATCH] D89622: [COFF][ARM] Fix CodeView for Windows on 32bit ARM targets.
Saleem Abdulrasool via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 19 13:36:01 PDT 2020
compnerd added inline comments.
================
Comment at: llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp:129
case Triple::ArchType::thumb:
- return CPUType::Thumb;
+ return Triple.getOS() == Triple::Win32 ? CPUType::ARMNT : CPUType::Thumb;
case Triple::ArchType::aarch64:
----------------
rnk wrote:
> compnerd wrote:
> > I think that `Triple.isOSWindows()` would be nicer than the explicit check to Win32.
> Is this conditional necessary? Can we always use ARMNT? Under what circumstances would one with to emit codeview for a non-windows OS triple?
The particular case that I think that this is trying to account for is WinCE vs WinNT. However, WinCE isn't currently supported by LLVM, so .... a TODO comment + ARMNT sounds like a good idea to me.
================
Comment at: llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp:161
+ break;
+ default:
+ CpuType = CPUType::X64;
----------------
rnk wrote:
> compnerd wrote:
> > It might be nice to change this to explicitly:
> >
> > ```
> > case COFF::IMAGE_FILE_MACHINE_AMD64:
> > ```
> >
> > and add the x86 case and `llvm::fatal_error` in any other case.
> For a dumper, I would prefer that the tool not report a fatal error for an unknown machine type. I think it would be best to send the code to the `enumFallback<Hex16>` case below, so the registers come out as numbers.
Um, lets pretend I never said anything ... your approach is _significantly_ better. Im blaming (lack of) coffee.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D89622/new/
https://reviews.llvm.org/D89622
More information about the llvm-commits
mailing list