//MACRO Cdll.tailpush Anchor, Node, WReg[2], FieldDispl= 0 //-------------------------------------------------------------------------------------------------- // // @ CopyRight Roberti & Parau Enterprises, Inc. 2021-2023 // // This work is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License. // To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/4.0/ // or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. // //-------------------------------------------------------------------------------------------------- // // // Get the right load and store MIs // eval(DVASM.getEnv()[4]); var wrd= abiWID + "WRD"; var ld= "L" + abiWID; var st= "S" + abiWID; var wl= abiWLen; var prevField= FieldDispl; var nextField= wl + "+" + FieldDispl; // // Get working registers list // var next= WReg[0]; var prev= WReg[1]; // // Generate code // \#Label #ld #next, #Anchor // Get first node addr \ IF ( #next == 0 ), THEN // Check if list is empty \ #st #Node, #prevField[#Node] // Set prev node addr \ #st #Node, #nextField[#Node] // Set next node addr \ #st #Node, #Anchor // Set new node as first in list \