1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-17 16:44:00 +00:00

Ensure pointers have appropriate type and alignment for data being referenced

This commit is contained in:
Nick Briggs 2023-01-08 22:12:53 -08:00
parent 96fcc9475a
commit f51d269b1e

View File

@ -47,15 +47,15 @@ LispPTR N_OP_fplus2(LispPTR parg1, LispPTR parg2) {
float arg1;
float arg2;
float result;
DLword *wordp;
float *wordp;
N_MakeFloat(parg1, arg1, parg2);
N_MakeFloat(parg2, arg2, parg2);
FPCLEAR;
result = arg1 + arg2;
if (FPTEST(result)) ERROR_EXIT(parg2);
wordp = createcell68k(TYPE_FLOATP);
*((float *)wordp) = result;
wordp = (float *)createcell68k(TYPE_FLOATP);
*wordp = result;
return (LAddrFromNative(wordp));
} /* end N_OP_fplus2() */
@ -70,15 +70,15 @@ LispPTR N_OP_fplus2(LispPTR parg1, LispPTR parg2) {
LispPTR N_OP_fdifference(LispPTR parg1, LispPTR parg2) {
float arg1, arg2;
float result;
DLword *wordp;
float *wordp;
N_MakeFloat(parg1, arg1, parg2);
N_MakeFloat(parg2, arg2, parg2);
FPCLEAR;
result = arg1 - arg2;
if (FPTEST(result)) ERROR_EXIT(parg2);
wordp = createcell68k(TYPE_FLOATP);
*((float *)wordp) = result;
wordp = (float *)createcell68k(TYPE_FLOATP);
*wordp = result;
return (LAddrFromNative(wordp));
} /* end N_OP_fdifference() */
@ -93,15 +93,15 @@ LispPTR N_OP_fdifference(LispPTR parg1, LispPTR parg2) {
LispPTR N_OP_ftimes2(LispPTR parg1, LispPTR parg2) {
float arg1, arg2;
float result;
DLword *wordp;
float *wordp;
N_MakeFloat(parg1, arg1, parg2);
N_MakeFloat(parg2, arg2, parg2);
FPCLEAR;
result = arg1 * arg2;
if (FPTEST(result)) ERROR_EXIT(parg2);
wordp = createcell68k(TYPE_FLOATP);
*((float *)wordp) = result;
wordp = (float *)createcell68k(TYPE_FLOATP);
*wordp = result;
return (LAddrFromNative(wordp));
} /* end N_OP_ftimes2() */
@ -116,7 +116,7 @@ LispPTR N_OP_ftimes2(LispPTR parg1, LispPTR parg2) {
LispPTR N_OP_fquotient(LispPTR parg1, LispPTR parg2) {
float arg1, arg2;
float result;
DLword *wordp;
float *wordp;
N_MakeFloat(parg1, arg1, parg2);
N_MakeFloat(parg2, arg2, parg2);
@ -124,8 +124,8 @@ LispPTR N_OP_fquotient(LispPTR parg1, LispPTR parg2) {
result = arg1 / arg2;
if (FPTEST(result)) ERROR_EXIT(parg2);
wordp = createcell68k(TYPE_FLOATP);
*((float *)wordp) = result;
wordp = (float *)createcell68k(TYPE_FLOATP);
*wordp = result;
return (LAddrFromNative(wordp));
} /* end N_OP_fquotient() */