Computers and Technology, 18.06.2020 18:57 beiachapman122
For this exercise, we will examine the code generated by GCC for functions that have structures as arguments and return values, and from this see how these language features are typically implemented. The following C code has a function process having structures as argument and return values, and a function eval that calls process. typedef struct {long a[2]; long *p;} strA; typedef struct {long u[2]; long q;} strB strB process(strA s) {strB r; r. u[0] = s. a[1]; r. u[1] = s. a[0]; r. q = *s. p; return r;} long eval (long x, long y, long z) {strA s; s. a[0] = x; s. a[1] = y; s. p = &z; strB r = process(s); return r. u[0] + r. u[1] + r. q;} Gcc generates the following code for these two functions: strB process(strA s) process: movq %rdi, %rax movq 24(%rsp), %rdx movq (%rdx), %rdx movq 16(%rsp), %rcx movq %rcx, (%rdi) movq 8(%rsp), %rcx movq %rcx, 8(%rdi) movq %rdx, 16(%rdi) ret long eval(long x, long y, long z) x in %rdi, y in %rsi, z in %rdx eval: subq $104, %rsp movq %rdx, 24(%rsp) leaq 24(%rsp), %rax movq %rdi, (%rsp) movq %rsi, 8(%rsp) movq %rax, 16(%rsp) leaq 64(%rsp), %rdi call process movq 72(%rsp), %rax addq 64(%rsp), %rax addq 80(%rsp), %rax addq $104, %rsp ret
A. We can see on line 2 of function eval that it allocates 104 bytes on the stack. Diagram the stack frame for eval, showing the values that it stores on the stack prior to calling process.
B. What value does eval pass in its call to process?
C. How does the code for process access the elements of structure argument s?
D. How does the code for process set the fields of result structure r?
E. Complete your diagram of the stack frame for eval, showing how eval accesses the elements of structure r following the return from process.
F. What general principles can you discern about how structure values are passed as function arguments and how they are returned as function results?
Answers: 1
Computers and Technology, 21.06.2019 16:50, glitch14
3.2.5 suppose that we have an estimate ahead of time of how often search keys are to be accessed in a bst, and the freedom to insert items in any order that we desire. should the keys be inserted into the tree in increasing order, decreasing order of likely frequency of access, or some other order? explain your answer.
Answers: 1
Computers and Technology, 23.06.2019 04:31, mjweed3381
Cloud computing service providers manage different computing resources based on the services they offer. which resources do iaas and paas providers not manage? iaas providers do not manage the for the client, whereas paas providers usually do not manage the for their clients. iaas- storage server operating system network paas- applications interafce storage vertualiation
Answers: 2
For this exercise, we will examine the code generated by GCC for functions that have structures as a...
English, 22.11.2019 13:31
Mathematics, 22.11.2019 13:31
Social Studies, 22.11.2019 13:31
English, 22.11.2019 13:31
History, 22.11.2019 13:31
Mathematics, 22.11.2019 13:31
History, 22.11.2019 13:31
Mathematics, 22.11.2019 13:31