PreviousUpNext

15.4.728  src/lib/core/init/rawmem.pkg

## author: Matthias Blume (blume@research.bell-labs.com)

# Compiled by:
#     src/lib/core/init/init.cmi

# Raw memory access primops and raw C calls.
# (This is for use by ml-nlffi.)
#



###                        "Guilt is absolutely the most useless emotion."
###
###                                                   -- Cynthia Matuszek



package raw_mem_inline_t {
    #
    my w8l:   Unt1 -> Unt1             = inline::rawu8l;
    my i8l:   Unt1 -> Int1             = inline::rawi8l;
    my w16l:  Unt1 -> Unt1             = inline::raww16l;
    my i16l:  Unt1 -> Int1             = inline::rawi16l;
    my w32l:  Unt1 -> Unt1             = inline::rawu32l;
    my i32l:  Unt1 -> Int1             = inline::rawi32l;
    my f32l:  Unt1 -> Float             = inline::rawf32l;
    my f64l:  Unt1 -> Float             = inline::rawf64l;
    my w8s:   (Unt1, Unt1) -> Void     = inline::rawu8s;
    my i8s:   (Unt1, Int1) -> Void     = inline::rawi8s;
    my w16s:  (Unt1, Unt1) -> Void     = inline::raww16s;
    my i16s:  (Unt1, Int1) -> Void     = inline::rawi16s;
    my w32s:  (Unt1, Unt1) -> Void     = inline::rawu32s;
    my i32s:  (Unt1, Int1) -> Void     = inline::rawi32s;
    my f32s:  (Unt1, Float)  -> Void     = inline::rawf32s;
    my f64s:  (Unt1, Float)  -> Void     = inline::rawf64s;
    my rawccall:  (Unt1, X, Y) -> Z = inline::rawccall;

    #  Allen Leung's additions... 
    my rawrecord:    Int -> X = inline::rawrecord;
    my rawrecord64:  Int -> X = inline::rawrecord64;

    my subw8:   (X, Unt1) -> Unt1  = inline::rawselectu8;
    my subi8:   (X, Unt1) -> Int1  = inline::rawselecti8;
    my subw16:  (X, Unt1) -> Unt1  = inline::rawselectw16;
    my subi16:  (X, Unt1) -> Int1  = inline::rawselecti16;
    my subw32:  (X, Unt1) -> Unt1  = inline::rawselectu32;
    my subi32:  (X, Unt1) -> Int1  = inline::rawselecti32;
    my subf32:  (X, Unt1) -> Float   = inline::rawselectf32;
    my subf64:  (X, Unt1) -> Float   = inline::rawselectf64;

    my updw8:   (X, Unt1, Unt1)  -> Void = inline::rawupdateu8;
    my updi8:   (X, Unt1, Int1)  -> Void = inline::rawupdatei8;
    my updw16:  (X, Unt1, Unt1)  -> Void = inline::rawupdateu16;
    my updi16:  (X, Unt1, Int1)  -> Void = inline::rawupdatei16;
    my updw32:  (X, Unt1, Unt1)  -> Void = inline::rawupdateu32;
    my updi32:  (X, Unt1, Int1)  -> Void = inline::rawupdatei32;
    my updf32:  (X, Unt1, Float)   -> Void = inline::rawupdatef32;
    my updf64:  (X, Unt1, Float)   -> Void = inline::rawupdatef64;
};


## Copyright (c) 2001 by Lucent Technologies, Bell Labs
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2013,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext