FictionTools/z88dk/src/sccz80/codegen.c
/* Push the primary floating point register, preserving
        the top value  */
Push the primary floating point register, preserving
the top value
Push the primary floating point register preserving the top value
void dpush_under(int val_type)
{
    if ( val_type == KIND_LONG || val_type == KIND_CPTR ) {
        if ( c_fp_size == 4 ) {
            ol("pop\tbc");	
            swap(); 
            swapstk(); 
            zpushde(); 
            zpush();   
            ol("push\tbc"); 
        } else {
           callrts("dpush_under_long");
           Zsp -= c_fp_size;
        }
    } else {
        if ( c_fp_size == 4 ) {
            swap(); 
            swapstk(); 
            zpushde(); 
            zpush();
        } else {
            callrts("dpush_under_int");
            Zsp -= c_fp_size;
        }
    }
}
void dpush_under ( int val_type ) { if ( val_type == KIND_LONG || val_type == KIND_CPTR ) { if ( c_fp_size == 4 ) { ol ( " \t " ) ; swap ( ) ; swapstk ( ) ; zpushde ( ) ; zpush ( ) ; ol ( " \t " ) ; } else { callrts ( " " ) ; Zsp -= c_fp_size ; } } else { if ( c_fp_size == 4 ) { swap ( ) ; swapstk ( ) ; zpushde ( ) ; zpush ( ) ; } else { callrts ( " " ) ; Zsp -= c_fp_size ; } } }
Push the primary floating point register, preserving
the top value
Push the primary floating point register preserving the top value
// addr2 -> bc /* MSW -> hl */ /* MSW -> stack, addr1 -> hl */ /* LSW -> stack, addr1 = hl */ // addr -> stack // addr2 -> stack /* MSW -> hl */ /* MSW -> stack, addr -> hl */ /* LSW -> stack, addr = hl */