************************************************************* * * * Les Macros LLM3 pour le G.C. * * * ************************************************************* * * * Jerome CHAILLOUX * * * * I . N . R . I . A . * * Domaine de Voluceau, Rocquencourt * * B.P. 105 78153 Le Chesnay Cedex * * Tel : (1) 954 90 20 poste 456 * * * ************************************************************* NOLIST BITMARK EQU 7 numero du bit de GC BITINVIS EQU 6 numero du bit invisible * * Macros Speciales du GC * ====================== * * BTMARK e,lab saut a 'lab' si 'e' est deja marque BTMARK MACRO BTST.B #BITMARK,\1 test le bit mark-gc BNE \2 Z=0 si le bit est a 1 ENDM * BFMARK e,lab saut a 'lab' si 'e' n'est pas deja marque BFMARK MACRO BTST.B #BITMARK,\1 test le bit mark-gc BEQ \2 Z=1 si le bit est a 0 ENDM * STMARK e marque l'objet e STMARK MACRO BSET.B #BITMARK,\1 ENDM * CLMARK e demarque l'objet e CLMARK MACRO BCLR.B #BITMARK,\1 enleve le bit ENDM * TCMARK e,lab test si e est marque : * si non ne fait rien * si oui enleve la marque et branche a 'lab' TCMARK MACRO BCLR.B #BITMARK,\1 enleve le bit (~Z = l'ancien) BNE.\0 \2 Z etait egal a 0 (donc le bit a 1) ENDM * * Macros speciales de manipulation du bit invisible * ================================================= * STINVSBL MACRO BSET.B #BITINVIS,\1 ENDM CLINVSBL MACRO BCLR.B #BITINVIS,\1 ENDM BTINVSBL MACRO BTST.B #BITINVIS,\1 BNE.\0 \2 ENDM BFINVSBL MACRO BTST.B #BITINVIS,\1 BEQ.\0 \2 ENDM *********************************************** * * * Pour avancer dans les zones * * * *********************************************** NXSTRG MACRO ADDQ.L #4,\1 ENDM NXARRAY MACRO ADDQ.L #4,\1 ENDM NXCONS MACRO ADDQ.L #8,\1 ENDM *************************************************** * * * Manipule le registre FREE List * * * *************************************************** FREEL MACRO MOVE.L A6,\1 ENDM SFREEL MACRO MOVE.L \1,A6 ENDM