@@ -482,7 +482,10 @@ void vm_pop_frame(vm_thread_t **thread);
482482 * @param pc Program counter
483483 * @return a int16 value from program
484484 */
485- int16_t vm_read_i16 (vm_thread_t * * thread , uint32_t * pc );
485+ inline int16_t vm_read_i16 (vm_thread_t * * thread , uint32_t * pc ) {
486+ * pc += 2 ;
487+ return (int16_t )* ((uint32_t * )((* thread )-> state -> program + * pc - 2 ));
488+ }
486489
487490/**
488491 * @fn uint16_t vm_read_u16(vm_thread_t **thread, uint32_t *pc)
@@ -492,7 +495,10 @@ int16_t vm_read_i16(vm_thread_t **thread, uint32_t *pc);
492495 * @param pc Program counter
493496 * @return a uint16 value from program
494497 */
495- uint16_t vm_read_u16 (vm_thread_t * * thread , uint32_t * pc );
498+ inline uint16_t vm_read_u16 (vm_thread_t * * thread , uint32_t * pc ) {
499+ * pc += 2 ;
500+ return (uint16_t )* ((uint32_t * )((* thread )-> state -> program + * pc - 2 ));
501+ }
496502
497503/**
498504 * @fn int32_t vm_read_i32(vm_thread_t **thread, uint32_t *pc)
@@ -502,7 +508,10 @@ uint16_t vm_read_u16(vm_thread_t **thread, uint32_t *pc);
502508 * @param pc Program counter
503509 * @return a int32 value from program
504510 */
505- int32_t vm_read_i32 (vm_thread_t * * thread , uint32_t * pc );
511+ inline int32_t vm_read_i32 (vm_thread_t * * thread , uint32_t * pc ) {
512+ * pc += 4 ;
513+ return (int32_t )* ((uint32_t * )((* thread )-> state -> program + * pc - 4 ));
514+ }
506515
507516/**
508517 * @fn uint32_t vm_read_u32(vm_thread_t **thread, uint32_t *pc)
@@ -512,7 +521,10 @@ int32_t vm_read_i32(vm_thread_t **thread, uint32_t *pc);
512521 * @param pc Program counter
513522 * @return a uint32 value from program
514523 */
515- uint32_t vm_read_u32 (vm_thread_t * * thread , uint32_t * pc );
524+ inline uint32_t vm_read_u32 (vm_thread_t * * thread , uint32_t * pc ) {
525+ * pc += 4 ;
526+ return (uint32_t ) * ((uint32_t * ) ((* thread )-> state -> program + * pc - 4 ));
527+ }
516528
517529/**
518530 * @fn float vm_read_f32(vm_thread_t **thread, uint32_t *pc)
@@ -522,7 +534,10 @@ uint32_t vm_read_u32(vm_thread_t **thread, uint32_t *pc);
522534 * @param pc Program counter
523535 * @return a float value from program
524536 */
525- float vm_read_f32 (vm_thread_t * * thread , uint32_t * pc );
537+ inline float vm_read_f32 (vm_thread_t * * thread , uint32_t * pc ) {
538+ * pc += 4 ;
539+ return * ((float * ) ((* thread )-> state -> program + * pc - 4 ));
540+ }
526541
527542/////////// heap ////////
528543
0 commit comments