I SPARC V9 ABI har en mekanism lagts till för kontroll av hur globala register används, så att dessa globala register kan utnyttjas på ett mer pålitligt sätt.
Denna mekanism beskrivs i SPARC V9 ABI. Sammanfattningsvis kan sägas ELF-registeranvändningsposter införts. V9 ABI-kompatibla program krävs för att dessa poster ska kunna användas för att rapportera användningen av globala register. Under länktiden, antingen statisk eller dynamisk, jämförs posterna för att säkerställa att globala register mellan olika länkbara objekt används konsekvent. Länkoperationen resulterar i ett felmeddelande om inkonsekvent användning påträffas.
För att denna mekanism ska kunna implementeras måste kompilatorn hantera ELF-registerposter som utdata. Detta kan för tillfället ske genom att alternativet -Wc,-Qiselect-regsym=1 för C eller alternativet -Qoption cg -Qiselect-regsym=1 för C++ läggs till i kompilatorn när kompilering utförs för v9. Länkprogram som medföljer Solaris 2.5.1, Solaris 2.6 och Solaris 7 accepterar ELF-registerposterna. Länkprogram som medföljer tidigare versioner av Solaris accepterar inte ELF-registerposterna utan visar ett felmeddelande.
Eftersom SPARC-assemblern också kan generera länkbara objekt, måste även SPARC-assemblern hantera ELF-registerposter som utdata. Assemblern måste veta hur du tänker använda de refererade globala registren i varje .sindatafil. Du måste införa en ny assembler-pseudooperation för att få denna funktionalitet.
Eftersom kompilatorn också kan hantera assembly-språk som utdata, exempelvis med alternativen -S , som senare kan assembleras av assemblern, måste kompilatorn hantera de nya pseudo-operationerna så att användningen av globala register dokumenteras korrekt.
Ny pseudo-instruktion för SPARC V9:
.register %g {2 | 3 | 6 | 7}, {#scratch | symbol name
}
Den nya pseudo-operationen accepteras av SPARC-assemblern för alla arkitekturer. Den påverkar bara V9. Detta innebär att du kan skriva assembly-kod för V8 och V9 med hjälp av pesudo-operationerna för normal assemblering. För V8 på SPARC-arkitekturer med versionerna 2.5.1 och 2.6 accepteras pseudo-operationen men ignoreras.
Under -xarch=v9 visar SPARC-assemblern ett felmeddelande, om en användning av det globala registret som inte täcks av den nya pseudo-operationen påträffas.
Under -xarch=v9 visar SPARC-assemblern ett felmeddelande, om den upptäcker flera olika pseudo-operationer för samma globala register. Annars listar SPARC-assemblern korrekta ELF-registerposter som dessa identifieras av användaren. SPARC-assemblern kan granska att den angiven beskrivning av användningen är korrekt, men detta är inget krav.