Purple  0.1
Standard Language Specification
llvm_stack_entry.h
Go to the documentation of this file.
1
8#ifndef LLVM_STACK_ENTRY_H
9#define LLVM_STACK_ENTRY_H
10
11#include "types/number.h"
12
16#define type_register unsigned long long int
17
21#define type_label unsigned long long int
22
28typedef struct LLVMStackEntryNode {
40
45
46#endif /* LLVM_STACK_ENTRY_H */
#define type_register
A too-big data type for register indices in case of stress testing.
Definition: llvm_stack_entry.h:16
void free_llvm_stack_entry_node_list(LLVMStackEntryNode *head)
Free memory used by LLVMStackEntryNode linked lists.
Definition: llvm_stack_entry.c:70
void prepend_stack_entry_linked_list(LLVMStackEntryNode **head, type_register register_index)
Add a stack entry to a stack entry linked list.
Definition: llvm_stack_entry.c:29
struct LLVMStackEntryNode LLVMStackEntryNode
Node of a linked list containing information about required stack allocation for a piece of data....
void initialize_stack_entry_linked_list(LLVMStackEntryNode **head)
Initialize a stack entry linked list.
Definition: llvm_stack_entry.c:18
type_register pop_stack_entry_linked_list(LLVMStackEntryNode **head)
Pop and free a stack entry from a Stack Entry Node linked list and get its type.
Definition: llvm_stack_entry.c:49
Definitions and function headers for the internal "Number" type.
NumberType
Types of numbers supported by Purple.
Definition: number.h:17
Node of a linked list containing information about required stack allocation for a piece of data....
Definition: llvm_stack_entry.h:28
int pointer_depth
Definition: llvm_stack_entry.h:32
NumberType type
Definition: llvm_stack_entry.h:34
type_register reg
Definition: llvm_stack_entry.h:30
int align_bytes
Definition: llvm_stack_entry.h:36
struct LLVMStackEntryNode * next
Definition: llvm_stack_entry.h:38