@@ -303,7 +303,8 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
303
303
304
304
const AMDGPUSubtarget &STM = MF.getSubtarget <AMDGPUSubtarget>();
305
305
MCContext &Context = getObjFileLowering ().getContext ();
306
- if (!STM.isAmdHsaOS ()) {
306
+ // FIXME: This should be an explicit check for Mesa.
307
+ if (!STM.isAmdHsaOS () && !STM.isAmdPalOS ()) {
307
308
MCSectionELF *ConfigSection =
308
309
Context.getELFSection (" .AMDGPU.config" , ELF::SHT_PROGBITS, 0 );
309
310
OutStreamer->SwitchSection (ConfigSection);
@@ -322,7 +323,7 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
322
323
323
324
if (STM.isAmdPalOS ())
324
325
EmitPALMetadata (MF, CurrentProgramInfo);
325
- if (!STM.isAmdHsaOS ()) {
326
+ else if (!STM.isAmdHsaOS ()) {
326
327
EmitProgramInfoSI (MF, CurrentProgramInfo);
327
328
}
328
329
} else {
@@ -1007,26 +1008,21 @@ void AMDGPUAsmPrinter::EmitProgramInfoSI(const MachineFunction &MF,
1007
1008
OutStreamer->EmitIntValue (RsrcReg, 4 );
1008
1009
OutStreamer->EmitIntValue (S_00B028_VGPRS (CurrentProgramInfo.VGPRBlocks ) |
1009
1010
S_00B028_SGPRS (CurrentProgramInfo.SGPRBlocks ), 4 );
1010
- unsigned Rsrc2Val = 0 ;
1011
1011
if (STM.isVGPRSpillingEnabled (MF.getFunction ())) {
1012
1012
OutStreamer->EmitIntValue (R_0286E8_SPI_TMPRING_SIZE, 4 );
1013
1013
OutStreamer->EmitIntValue (S_0286E8_WAVESIZE (CurrentProgramInfo.ScratchBlocks ), 4 );
1014
- if (TM.getTargetTriple ().getOS () == Triple::AMDPAL)
1015
- Rsrc2Val = S_00B84C_SCRATCH_EN (CurrentProgramInfo.ScratchBlocks > 0 );
1016
- }
1017
- if (MF.getFunction ().getCallingConv () == CallingConv::AMDGPU_PS) {
1018
- OutStreamer->EmitIntValue (R_0286CC_SPI_PS_INPUT_ENA, 4 );
1019
- OutStreamer->EmitIntValue (MFI->getPSInputEnable (), 4 );
1020
- OutStreamer->EmitIntValue (R_0286D0_SPI_PS_INPUT_ADDR, 4 );
1021
- OutStreamer->EmitIntValue (MFI->getPSInputAddr (), 4 );
1022
- Rsrc2Val |= S_00B02C_EXTRA_LDS_SIZE (CurrentProgramInfo.LDSBlocks );
1023
- }
1024
- if (Rsrc2Val) {
1025
- OutStreamer->EmitIntValue (RsrcReg + 4 /* rsrc2*/ , 4 );
1026
- OutStreamer->EmitIntValue (Rsrc2Val, 4 );
1027
1014
}
1028
1015
}
1029
1016
1017
+ if (MF.getFunction ().getCallingConv () == CallingConv::AMDGPU_PS) {
1018
+ OutStreamer->EmitIntValue (R_00B02C_SPI_SHADER_PGM_RSRC2_PS, 4 );
1019
+ OutStreamer->EmitIntValue (S_00B02C_EXTRA_LDS_SIZE (CurrentProgramInfo.LDSBlocks ), 4 );
1020
+ OutStreamer->EmitIntValue (R_0286CC_SPI_PS_INPUT_ENA, 4 );
1021
+ OutStreamer->EmitIntValue (MFI->getPSInputEnable (), 4 );
1022
+ OutStreamer->EmitIntValue (R_0286D0_SPI_PS_INPUT_ADDR, 4 );
1023
+ OutStreamer->EmitIntValue (MFI->getPSInputAddr (), 4 );
1024
+ }
1025
+
1030
1026
OutStreamer->EmitIntValue (R_SPILLED_SGPRS, 4 );
1031
1027
OutStreamer->EmitIntValue (MFI->getNumSpilledSGPRs (), 4 );
1032
1028
OutStreamer->EmitIntValue (R_SPILLED_VGPRS, 4 );
0 commit comments