control stack merged into data stack

This commit is contained in:
2021-11-15 22:21:26 +01:00
parent 2d30f61387
commit 964aec76c8
5 changed files with 15 additions and 58 deletions
-35
View File
@@ -42,17 +42,6 @@ enum fh_error rs_peek_n(struct fh_thread_s *fh, uint32_t *out, int n)
return FH_OK;
}
/** Peek top of control stack */
enum fh_error cs_peek_n(struct fh_thread_s *fh, uint32_t *out, int n)
{
if (fh->control_stack_top <= n) {
LOG("CS peek_n UNDERFLOW");
return FH_ERR_CS_UNDERFLOW;
}
*out = fh->control_stack[fh->control_stack_top - 1 - n];
return FH_OK;
}
/** Pop from data stack */
enum fh_error ds_pop(struct fh_thread_s *fh, uint32_t *out)
{
@@ -77,18 +66,6 @@ enum fh_error rs_pop(struct fh_thread_s *fh, uint32_t *out)
return FH_OK;
}
/** Pop from control stack */
enum fh_error cs_pop(struct fh_thread_s *fh, uint32_t *out)
{
if (fh->control_stack_top == 0) {
LOG("CS pop UNDERFLOW");
return FH_ERR_CS_UNDERFLOW;
}
*out = fh->control_stack[--fh->control_stack_top];
LOG("CS pop %d", *out);
return FH_OK;
}
#define UPDATE_HWM(hwm, top) \
do { \
if((hwm) < (top)) { \
@@ -119,15 +96,3 @@ enum fh_error rs_push(struct fh_thread_s *fh, uint32_t in)
UPDATE_HWM(fh->return_stack_hwm, fh->return_stack_top);
return FH_OK;
}
/** Push to control stack */
enum fh_error cs_push(struct fh_thread_s *fh, uint32_t in)
{
LOG("CS push %d", in);
if (fh->control_stack_top == CONTROL_STACK_DEPTH) {
return FH_ERR_CS_OVERFLOW;
}
fh->control_stack[fh->control_stack_top++] = in;
UPDATE_HWM(fh->control_stack_hwm, fh->control_stack_top);
return FH_OK;
}
+2 -2
View File
@@ -84,8 +84,8 @@ int main(int argc, char *argv[])
}
// Show resource usage
LOG("\nResources used: DS %dW, RS %dW, CS %dW, memory %dB\n",
(int) fh.data_stack_hwm, (int) fh.return_stack_hwm, (int) fh.control_stack_hwm,
LOG("\nResources used: DS %dW, RS %dW, memory %dB\n",
(int) fh.data_stack_hwm, (int) fh.return_stack_hwm,
(int) fh.here);
FHPRINT_SVC("Bye.\n");