Create the LLVM / CodeView register mappings for the 32-bit ARM Window targets.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | ||
---|---|---|
129–131 | I think that Triple.isOSWindows() would be nicer than the explicit check to Win32. | |
llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp | ||
161 | 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. |
Thanks, this is a frequently reported issue.
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | ||
---|---|---|
129–131 | Is this conditional necessary? Can we always use ARMNT? Under what circumstances would one with to emit codeview for a non-windows OS triple? | |
llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp | ||
161 | 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. |
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | ||
---|---|---|
129–131 | 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. | |
llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp | ||
161 | Um, lets pretend I never said anything ... your approach is _significantly_ better. Im blaming (lack of) coffee. |
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | ||
---|---|---|
129–131 | Coment + ARMNT works for me. I just added the conditional there to not break anything existing but if there's no CE support anyways it should be fine. |
llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp | ||
---|---|---|
156 | nit: probably assign CPUType in the in switch case, then all calls to getRegisterNames can be consolidated? |
I think that Triple.isOSWindows() would be nicer than the explicit check to Win32.