Annotation of coherent/b/kernel/emulator/fpu_arith.c, revision 1.1.1.1

1.1       root        1: /*---------------------------------------------------------------------------+
                      2:  |  fpu_arith.c                                                              |
                      3:  |                                                                           |
                      4:  | Code to implement the FPU register/register arithmetis instructions       |
                      5:  |                                                                           |
                      6:  | Copyright (C) 1992    W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      |
                      7:  |                       Australia.  E-mail [email protected]    |
                      8:  |                                                                           |
                      9:  |                                                                           |
                     10:  +---------------------------------------------------------------------------*/
                     11: 
                     12: #include "fpu_system.h"
                     13: #include "fpu_emu.h"
                     14: 
                     15: 
                     16: void fadd__()
                     17: {
                     18:   /* fadd st,st(i) */
                     19:   reg_add(FPU_st0_ptr, &st(FPU_rm), FPU_st0_ptr);
                     20: }
                     21: 
                     22: 
                     23: void fmul__()
                     24: {
                     25:   /* fmul st,st(i) */
                     26:   reg_mul(FPU_st0_ptr, &st(FPU_rm), FPU_st0_ptr);
                     27: }
                     28: 
                     29: 
                     30: 
                     31: void fsub__()
                     32: {
                     33:   /* fsub st,st(i) */
                     34:   reg_sub(FPU_st0_ptr, &st(FPU_rm), FPU_st0_ptr);
                     35: }
                     36: 
                     37: 
                     38: void fsubr_()
                     39: {
                     40:   /* fsubr st,st(i) */
                     41:   reg_sub(&st(FPU_rm), FPU_st0_ptr, FPU_st0_ptr);
                     42: }
                     43: 
                     44: 
                     45: void fdiv__()
                     46: {
                     47:   /* fdiv st,st(i) */
                     48:   reg_div(FPU_st0_ptr, &st(FPU_rm), FPU_st0_ptr);
                     49: }
                     50: 
                     51: 
                     52: void fdivr_()
                     53: {
                     54:   /* fdivr st,st(i) */
                     55:   reg_div(&st(FPU_rm), FPU_st0_ptr, FPU_st0_ptr);
                     56: }
                     57: 
                     58: 
                     59: 
                     60: void fadd_i()
                     61: {
                     62:   /* fadd st(i),st */
                     63:   reg_add(FPU_st0_ptr, &st(FPU_rm), &st(FPU_rm));
                     64: }
                     65: 
                     66: 
                     67: void fmul_i()
                     68: {
                     69:   /* fmul st(i),st */
                     70:   reg_mul(&st(FPU_rm), FPU_st0_ptr, &st(FPU_rm));
                     71: }
                     72: 
                     73: 
                     74: void fsubri()
                     75: {
                     76:   /* fsubr st(i),st */
                     77:   /* This is the sense of the 80486 manual
                     78:      reg_sub(&st(FPU_rm), FPU_st0_ptr, &st(FPU_rm)); */
                     79:   reg_sub(FPU_st0_ptr, &st(FPU_rm), &st(FPU_rm));
                     80: }
                     81: 
                     82: 
                     83: void fsub_i()
                     84: {
                     85:   /* fsub st(i),st */
                     86:   /* This is the sense of the 80486 manual
                     87:      reg_sub(FPU_st0_ptr, &st(FPU_rm), &st(FPU_rm)); */
                     88:   reg_sub(&st(FPU_rm), FPU_st0_ptr, &st(FPU_rm));
                     89: }
                     90: 
                     91: 
                     92: void fdivri()
                     93: {
                     94:   /* fdivr st(i),st */
                     95:   reg_div(FPU_st0_ptr, &st(FPU_rm), &st(FPU_rm));
                     96: }
                     97: 
                     98: 
                     99: void fdiv_i()
                    100: {
                    101:   /* fdiv st(i),st */
                    102:   reg_div(&st(FPU_rm), FPU_st0_ptr, &st(FPU_rm));
                    103: }
                    104: 
                    105: 
                    106: 
                    107: void faddp_()
                    108: {
                    109:   /* faddp st(i),st */
                    110:   reg_add(FPU_st0_ptr, &st(FPU_rm), &st(FPU_rm));
                    111:   pop();
                    112: }
                    113: 
                    114: 
                    115: void fmulp_()
                    116: {
                    117:   /* fmulp st(i),st */
                    118:   reg_mul(&st(FPU_rm), FPU_st0_ptr, &st(FPU_rm));
                    119:   pop();
                    120: }
                    121: 
                    122: 
                    123: 
                    124: void fsubrp()
                    125: {
                    126:   /* fsubrp st(i),st */
                    127:   /* This is the sense of the 80486 manual
                    128:      reg_sub(&st(FPU_rm), FPU_st0_ptr, &st(FPU_rm)); */
                    129:   reg_sub(FPU_st0_ptr, &st(FPU_rm), &st(FPU_rm));
                    130:   pop();
                    131: }
                    132: 
                    133: 
                    134: void fsubp_()
                    135: {
                    136:   /* fsubp st(i),st */
                    137:   /* This is the sense of the 80486 manual
                    138:      reg_sub(FPU_st0_ptr, &st(FPU_rm), &st(FPU_rm)); */
                    139:   reg_sub(&st(FPU_rm), FPU_st0_ptr, &st(FPU_rm));
                    140:   pop();
                    141: }
                    142: 
                    143: 
                    144: void fdivrp()
                    145: {
                    146:   /* fdivrp st(i),st */
                    147:   reg_div(FPU_st0_ptr, &st(FPU_rm), &st(FPU_rm));
                    148:   pop();
                    149: }
                    150: 
                    151: 
                    152: void fdivp_()
                    153: {
                    154:   /* fdivp st(i),st */
                    155:   reg_div(&st(FPU_rm), FPU_st0_ptr, &st(FPU_rm));
                    156:   pop();
                    157: }
                    158: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.