URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 297 |
Rev 338 |
/* PR rtl-optimization/34628 */
|
/* PR rtl-optimization/34628 */
|
/* Origin: Martin Michlmayr <tbm@cyrius.com> */
|
/* Origin: Martin Michlmayr <tbm@cyrius.com> */
|
|
|
typedef unsigned short u16;
|
typedef unsigned short u16;
|
typedef unsigned char u8;
|
typedef unsigned char u8;
|
|
|
static void
|
static void
|
do_segfault(u8 in_buf[], const u8 out_buf[], const int len)
|
do_segfault(u8 in_buf[], const u8 out_buf[], const int len)
|
{
|
{
|
int i;
|
int i;
|
|
|
for (i = 0; i < len; i++) {
|
for (i = 0; i < len; i++) {
|
asm("");
|
asm("");
|
|
|
in_buf[2*i] = ( out_buf[2*i] | out_buf[(2*i)+1]<<8 ) & 0xFF;
|
in_buf[2*i] = ( out_buf[2*i] | out_buf[(2*i)+1]<<8 ) & 0xFF;
|
|
|
asm("");
|
asm("");
|
|
|
in_buf[(2*i)+1] = ( out_buf[2*i] | out_buf[(2*i)+1]<<8 ) >> 8;
|
in_buf[(2*i)+1] = ( out_buf[2*i] | out_buf[(2*i)+1]<<8 ) >> 8;
|
|
|
asm("");
|
asm("");
|
}
|
}
|
}
|
}
|
|
|
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
{
|
{
|
u8 outbuf[32] = "buffer ";
|
u8 outbuf[32] = "buffer ";
|
u8 inbuf[32] = "\f";
|
u8 inbuf[32] = "\f";
|
|
|
asm("");
|
asm("");
|
do_segfault(inbuf, outbuf, 12);
|
do_segfault(inbuf, outbuf, 12);
|
asm("");
|
asm("");
|
|
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.