mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
uptimize for big arg, not ok
This commit is contained in:
parent
ba6751fc89
commit
04ae205e74
3
port/linux/.vscode/settings.json
vendored
3
port/linux/.vscode/settings.json
vendored
@ -66,6 +66,7 @@
|
|||||||
"_modbus__modbusrtu.h": "c",
|
"_modbus__modbusrtu.h": "c",
|
||||||
"_modbus__modbustcp.h": "c",
|
"_modbus__modbustcp.h": "c",
|
||||||
"pikastddata_string.h": "c",
|
"pikastddata_string.h": "c",
|
||||||
"gtesttask_proxytest.h": "c"
|
"gtesttask_proxytest.h": "c",
|
||||||
|
"datastack.h": "c"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -41,6 +41,7 @@ int32_t stack_init(Stack* stack) {
|
|||||||
arg_setContent(NULL, NULL, PIKA_STACK_BUFF_SIZE / 4);
|
arg_setContent(NULL, NULL, PIKA_STACK_BUFF_SIZE / 4);
|
||||||
stack_reset(stack);
|
stack_reset(stack);
|
||||||
stack->stack_totle_size = PIKA_STACK_BUFF_SIZE;
|
stack->stack_totle_size = PIKA_STACK_BUFF_SIZE;
|
||||||
|
stack->big_arg_buffer = New_args(NULL);
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -57,10 +58,18 @@ int32_t stack_popSize(Stack* stack) {
|
|||||||
int32_t stack_deinit(Stack* stack) {
|
int32_t stack_deinit(Stack* stack) {
|
||||||
arg_deinit(stack->stack_pyload);
|
arg_deinit(stack->stack_pyload);
|
||||||
arg_deinit(stack->stack_size_array);
|
arg_deinit(stack->stack_size_array);
|
||||||
|
args_deinit(stack->big_arg_buffer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void stack_pushPyload(Stack* stack, Arg* in, size_t size) {
|
void stack_pushPyload(Stack* stack, Arg* in, size_t size) {
|
||||||
|
#if 0
|
||||||
|
if (size > PIKA_STACK_BIG_ARG_SIZE) {
|
||||||
|
in->name_hash = (uintptr_t)stack->sp;
|
||||||
|
args_setArg(stack->big_arg_buffer, arg_copy(in));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
size_t stack_size_after_push =
|
size_t stack_size_after_push =
|
||||||
size + (stack->sp - arg_getContent(stack->stack_pyload));
|
size + (stack->sp - arg_getContent(stack->stack_pyload));
|
||||||
if (stack_size_after_push > stack->stack_totle_size) {
|
if (stack_size_after_push > stack->stack_totle_size) {
|
||||||
@ -87,6 +96,13 @@ void stack_pushPyload(Stack* stack, Arg* in, size_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t* stack_popPyload(Stack* stack, size_t size) {
|
uint8_t* stack_popPyload(Stack* stack, size_t size) {
|
||||||
|
#if 0
|
||||||
|
if (size > PIKA_STACK_BIG_ARG_SIZE) {
|
||||||
|
Arg* arg =
|
||||||
|
args_getArg_hash(stack->big_arg_buffer, (uintptr_t)stack->sp);
|
||||||
|
return (uint8_t*)arg;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
stack->sp -= size;
|
stack->sp -= size;
|
||||||
return stack->sp;
|
return stack->sp;
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,7 @@ typedef struct Stack_t {
|
|||||||
int32_t* sp_size;
|
int32_t* sp_size;
|
||||||
int32_t top;
|
int32_t top;
|
||||||
size_t stack_totle_size;
|
size_t stack_totle_size;
|
||||||
|
Args* big_arg_buffer;
|
||||||
} Stack;
|
} Stack;
|
||||||
|
|
||||||
int32_t stack_deinit(Stack* stack);
|
int32_t stack_deinit(Stack* stack);
|
||||||
|
@ -309,6 +309,10 @@
|
|||||||
#define PIKA_FLOAT_TYPE_DOUBLE 1
|
#define PIKA_FLOAT_TYPE_DOUBLE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef PIKA_STACK_BIG_ARG_SIZE
|
||||||
|
#define PIKA_STACK_BIG_ARG_SIZE 8
|
||||||
|
#endif
|
||||||
|
|
||||||
/* configuration validation */
|
/* configuration validation */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user