Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
recolic-hust
hust-x86-simulator
Commits
e568ce53
Verified
Commit
e568ce53
authored
Dec 29, 2019
by
Recolic Keghart
Browse files
another trial
parent
5b11c6b8
Pipeline
#799
passed with stages
in 2 minutes and 36 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
nemu/src/memory/memory.cc
View file @
e568ce53
...
...
@@ -12,14 +12,16 @@ uint8_t pmem[PMEM_SIZE];
/* Memory accessing interfaces */
__attribute__
((
hot
))
uint32_t
paddr_read
(
paddr_t
addr
,
int
len
)
{
switch
(
len
)
{
case
4
:
return
pmem_rw
(
addr
,
uint32_t
);
case
2
:
return
pmem_rw
(
addr
,
uint32_t
)
&
0x0000ffff
;
case
1
:
return
pmem_rw
(
addr
,
uint32_t
)
&
0x000000ff
;
case
3
:
return
pmem_rw
(
addr
,
uint32_t
)
&
0x00ffffff
;
case
0
:
return
0
;
}
return
pmem_rw
(
addr
,
uint32_t
)
&
(
~
0u
>>
((
4
-
len
)
<<
3
));
static
const
uint32_t
niddle
[]
=
{
0
,
0xff
,
0xffff
,
0xffffff
,
0xffffffff
};
return
pmem_rw
(
addr
,
uint32_t
)
&
niddle
[
len
];
// switch(len) {
// case 4: return pmem_rw(addr, uint32_t);
// case 2: return pmem_rw(addr, uint32_t) & 0x0000ffff;
// case 1: return pmem_rw(addr, uint32_t) & 0x000000ff;
// case 3: return pmem_rw(addr, uint32_t) & 0x00ffffff;
// case 0: return 0;
// }
// return pmem_rw(addr, uint32_t) & (~0u >> ((4 - len) << 3));
}
void
paddr_write
(
paddr_t
addr
,
uint32_t
data
,
int
len
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment