Translate C code to MIPS. You can only use core MIPS instructions listed in the table below. You must follow MIPS conventions of register usage and function calls/returns. A quick reference is provided to you at the end. MIPS instructions that you can use: Category Instruction Definition Note Arithmetic/ add $rd, $rs, $rt logical R[$rd] << R[$rs] +R[$t] Addition addi $rt, Srs, imm R[$rt] – R[$rs] + SignExt16&(imm) sll $rd, $rt, shamt srl $rd, $rt, shamt R[$rd] + R[$rt] >> shamt slt $rd, $rs, $rt beq $rs, Srt, label if(R[$rs] = R[Srt]) branch to label bne $rs, $rt, label j label jal label jr $rs Iw $rt, imm($rs) sw $rt, imm($rs) Addition with immediate R[$rd] + R[$rt]« shamt Left shift Unsigned right shift Signed comparison Branch if equal Branch if not equal Unconditional jump Jump and link Jump register Compare/ conditional R[Srd] – R[$rs]
Translate C code to MIPS. You can only use core MIPS instructions listed in the table below. You must follow MIPS conventions of register usage and function calls/returns. A quick reference is provided to you at the end. MIPS instructions that you can use: Category Instruction Definition Note Arithmetic/ add $rd, $rs, $rt logical R[$rd] << R[$rs] +R[$t] Addition addi $rt, Srs, imm R[$rt] – R[$rs] + SignExt16&(imm) sll $rd, $rt, shamt srl $rd, $rt, shamt R[$rd] + R[$rt] >> shamt slt $rd, $rs, $rt beq $rs, Srt, label if(R[$rs] = R[Srt]) branch to label bne $rs, $rt, label j label jal label jr $rs Iw $rt, imm($rs) sw $rt, imm($rs) Addition with immediate R[$rd] + R[$rt]« shamt Left shift Unsigned right shift Signed comparison Branch if equal Branch if not equal Unconditional jump Jump and link Jump register Compare/ conditional R[Srd] – R[$rs]
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Question
You dont need to implement foo

![Translate C code to MIPS. You can only use core MIPS instructions listed in the
table below. You must follow MIPS conventions of register usage and function
calls/returns. A quick reference is provided to you at the end.
MIPS instructions that you can use:
Category
Instruction
Definition
Note
Arithmetic/ add $rd, $rs, $rt
logical
R[$rd] << R[$rs] +R[$t]
Addition
addi $rt, Srs, imm R[$rt] – R[$rs] + SignExt16&(imm)
sll $rd, $rt, shamt
srl $rd, $rt, shamt R[$rd] + R[$rt] >> shamt
slt $rd, $rs, $rt
beq $rs, Srt, label if(R[$rs] = R[Srt]) branch to label
bne $rs, $rt, label
j label
jal label
jr $rs
Iw $rt, imm($rs)
sw $rt, imm($rs)
Addition with immediate
R[$rd] + R[$rt]« shamt
Left shift
Unsigned right shift
Signed comparison
Branch if equal
Branch if not equal
Unconditional jump
Jump and link
Jump register
Compare/
conditional
R[Srd] – R[$rs]<R[$rt]
if(R[$rs] != R[$rt]) branch to label
Jump to label
Jump to label; R[Sra]<–PC +4
Jump to address specified by R[$rs]
R[Srt] – Mem(R[$rs] + SignExt¡6b(imm)) Load word
Mem(R[$rs] + SignExt165(imm)) – R[$rt] | Store word
branches
Jumps
Data
moving
MIPS conventions you must follow:
You are required to follow MIPS conventions for register usages and function calls/returns.
Check the textbook and lecture slides for details. Here is a quick summary:
• Function calls/returns must use jal and jr.
Arguments and return values must use $a and $v registers in order. That is, the first
argument must use $a0, the second argument must use $al, etc. If there is only one 32-
bit return value, $v0 must be used.
• Use stack and $sp for local data and register spilling.
Divide the maintenance of shared registers between the caller and callee following the
table below:
Reg Name
Reg Number
Usage
Whose Responsibility?
Caller
Callee
$v0-$v1
2-3
Return value
V
$a0-Sa3
4-7
Argument
Temporaries
V
$t0-$t7, $t8-$t9_ 8-15,24-25
V
$s0-$s7
16-23
Saved
V
Stack pointer
$sp
$ra
29
V
31
Return address
V *
* The value of $ra will be changed by jal.](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F1596ec61-3286-45f1-9b9e-af4e30ef4e78%2Feb932792-b41b-4cda-81d1-8bc2300b977c%2Feqffzkx.png&w=3840&q=75)
Transcribed Image Text:Translate C code to MIPS. You can only use core MIPS instructions listed in the
table below. You must follow MIPS conventions of register usage and function
calls/returns. A quick reference is provided to you at the end.
MIPS instructions that you can use:
Category
Instruction
Definition
Note
Arithmetic/ add $rd, $rs, $rt
logical
R[$rd] << R[$rs] +R[$t]
Addition
addi $rt, Srs, imm R[$rt] – R[$rs] + SignExt16&(imm)
sll $rd, $rt, shamt
srl $rd, $rt, shamt R[$rd] + R[$rt] >> shamt
slt $rd, $rs, $rt
beq $rs, Srt, label if(R[$rs] = R[Srt]) branch to label
bne $rs, $rt, label
j label
jal label
jr $rs
Iw $rt, imm($rs)
sw $rt, imm($rs)
Addition with immediate
R[$rd] + R[$rt]« shamt
Left shift
Unsigned right shift
Signed comparison
Branch if equal
Branch if not equal
Unconditional jump
Jump and link
Jump register
Compare/
conditional
R[Srd] – R[$rs]<R[$rt]
if(R[$rs] != R[$rt]) branch to label
Jump to label
Jump to label; R[Sra]<–PC +4
Jump to address specified by R[$rs]
R[Srt] – Mem(R[$rs] + SignExt¡6b(imm)) Load word
Mem(R[$rs] + SignExt165(imm)) – R[$rt] | Store word
branches
Jumps
Data
moving
MIPS conventions you must follow:
You are required to follow MIPS conventions for register usages and function calls/returns.
Check the textbook and lecture slides for details. Here is a quick summary:
• Function calls/returns must use jal and jr.
Arguments and return values must use $a and $v registers in order. That is, the first
argument must use $a0, the second argument must use $al, etc. If there is only one 32-
bit return value, $v0 must be used.
• Use stack and $sp for local data and register spilling.
Divide the maintenance of shared registers between the caller and callee following the
table below:
Reg Name
Reg Number
Usage
Whose Responsibility?
Caller
Callee
$v0-$v1
2-3
Return value
V
$a0-Sa3
4-7
Argument
Temporaries
V
$t0-$t7, $t8-$t9_ 8-15,24-25
V
$s0-$s7
16-23
Saved
V
Stack pointer
$sp
$ra
29
V
31
Return address
V *
* The value of $ra will be changed by jal.
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps

Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you

Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON

Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON

C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON

Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning

Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education