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
icon
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.
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
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Fibonacci algorithm
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.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
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)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education