-
Notifications
You must be signed in to change notification settings - Fork 0
/
E803ops.h
39 lines (36 loc) · 1.54 KB
/
E803ops.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once
/* Declarations to functions in the assembler code */
int E803_add(E803word *, E803word *);
int E803_sub(E803word *, E803word *);
int E803_neg(E803word *, E803word *);
int E803_and(E803word *, E803word *);
int E803_neg_add(E803word *, E803word *);
void E803_signed_shift_right(E803word *, E803word * );
void E803_unsigned_shift_right(E803word *);
void E803_Double_M( E803word *);
void E803_Acc_to_Q(E803word *, E803word *, E803word * );
int E803_dadd(E803word *, E803word * ,E803word *, E803word * );
int E803_dsub(E803word *, E803word *, E803word *, E803word * );
int E803_shift_left(E803word *, E803word * );
int E803_Shift_M_Right(E803word * );
void E803_AR_to_ACC(E803word *, E803word * );
int E803_mant_shift_right(E803word *,int ,int);
int E803_fp_split( E803word * , E803word *);
void E803_fp_join( E803word *, int *, E803word *);
int E803_mant_add( E803word *, E803word *);
int E803_mant_sub( E803word *, E803word *);
void E803_rotate_left(E803word *, int * );
void E803_shift_left_F65( E803word *,int * );
void E803_SCR_to_STORE(int32_t *SCR, E803word *wptr);
int E803_add56(E803word *a, E803word *b) ;
int E803_sub56(E803word *a, E803word *b) ;
int E803_shift_left56(E803word *acc, E803word *ar );
// Some bit masks for specific bits in an 803 word.
#define Bits38 (0x3FFFFFFFFFLL)
#define Bits39 (0x7FFFFFFFFFLL)
#define Bits40 (0xFFFFFFFFFFLL)
//#define BitsFPSign (0x2000000000LL)
#define BitsSign (0x4000000000LL)
#define BitsSign2 (0x8000000000LL)
#define BitsCarry (0x4000000000LL)
#define BitsOver (0x8000000000LL)