1115013Smarcel/* 2160157SmarcelCopyright (c) 2003-2006 Hewlett-Packard Development Company, L.P. 3121642SmarcelPermission is hereby granted, free of charge, to any person 4121642Smarcelobtaining a copy of this software and associated documentation 5121642Smarcelfiles (the "Software"), to deal in the Software without 6121642Smarcelrestriction, including without limitation the rights to use, 7121642Smarcelcopy, modify, merge, publish, distribute, sublicense, and/or sell 8121642Smarcelcopies of the Software, and to permit persons to whom the 9121642SmarcelSoftware is furnished to do so, subject to the following 10121642Smarcelconditions: 11115013Smarcel 12121642SmarcelThe above copyright notice and this permission notice shall be 13121642Smarcelincluded in all copies or substantial portions of the Software. 14121642Smarcel 15121642SmarcelTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16121642SmarcelEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17121642SmarcelOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18121642SmarcelNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19121642SmarcelHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20121642SmarcelWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21121642SmarcelFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22121642SmarcelOTHER DEALINGS IN THE SOFTWARE. 23121642Smarcel*/ 24121642Smarcel 25115013Smarcelstruct uwx_utable_entry; 26115013Smarcel 27115013Smarcelextern int uwx_decode_uinfo( 28115013Smarcel struct uwx_env *env, 29115013Smarcel struct uwx_utable_entry *uentry, 30115013Smarcel uint64_t **rstatep); 31115013Smarcel 32115013Smarcelextern int uwx_default_rstate( 33115013Smarcel struct uwx_env *env, 34115013Smarcel uint64_t **rstatep); 35115013Smarcel 36115013Smarcel/* Region header record */ 37115013Smarcel 38115013Smarcelstruct uwx_rhdr { 39115013Smarcel int is_prologue; /* true if prologue region */ 40115013Smarcel unsigned int rlen; /* length of region (# instruction slots) */ 41115013Smarcel int mask; /* register save mask */ 42115013Smarcel int grsave; /* first gr used for saving */ 43115013Smarcel unsigned int ecount; /* epilogue count (0 = no epilogue) */ 44115013Smarcel unsigned int epilogue_t; /* epilogue "t" value */ 45115013Smarcel}; 46115013Smarcel 47115013Smarcelstruct uwx_bstream; 48115013Smarcel 49115013Smarcelextern int uwx_decode_rhdr( 50115013Smarcel struct uwx_env *env, 51115013Smarcel struct uwx_bstream *bstream, 52115013Smarcel struct uwx_rhdr *rhdr); 53115013Smarcel 54115013Smarcelextern int uwx_decode_prologue( 55115013Smarcel struct uwx_env *env, 56115013Smarcel struct uwx_bstream *bstream, 57115013Smarcel struct uwx_scoreboard *scoreboard, 58115013Smarcel struct uwx_rhdr *rhdr, 59115013Smarcel int ip_slot); 60115013Smarcel 61115013Smarcelextern int uwx_decode_body( 62115013Smarcel struct uwx_env *env, 63115013Smarcel struct uwx_bstream *bstream, 64115013Smarcel struct uwx_scoreboard *scoreboard, 65115013Smarcel struct uwx_rhdr *rhdr, 66115013Smarcel int ip_slot); 67