Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: Jiri Gaisler <jiri@gaisler.se>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH v2 10/22] sim/erc32: Switched emulated memory to host endian order.
Date: Sun, 22 Feb 2015 20:51:00 -0000	[thread overview]
Message-ID: <20150222205132.GA31422@vapier> (raw)
In-Reply-To: <1424385100-15397-11-git-send-email-jiri@gaisler.se>

[-- Attachment #1: Type: text/plain, Size: 1475 bytes --]

On 19 Feb 2015 23:31, Jiri Gaisler wrote:
> +	    *((unsigned short *) &(mem[waddr])) = *data & 0x0ffff;

this violates strict aliasing.  you can't cast the RHS side like this.  it also 
violates alignment since the buffer is passed in as unsigned char *.

you should use memcpy() instead.  on systems where unaligned access are OK, gcc 
should optimize it down to a few load/stores anyways.

this form shows up a few times in this patch and they should all get fixed.

> --- a/sim/erc32/exec.c
> +++ b/sim/erc32/exec.c
>  
> +static int
> +extract_short(uint32 data, uint32 address)

space before the (.  comes up multiple times in this patch.

> +    return((data>>((2 - (address & 2))*8)) & 0xffff);

need to fix the spacing here:
	return ((data >> ((2 - (address & 2)) * 8)) & 0xffff);

comes up multiple times in this patch.

> @@ -808,21 +808,28 @@ disp_mem(addr, len)
>  
>      uint32          i;
>      unsigned char   data[4];
> +    uint32          *wdata = (uint32 *) data;

you need to use a union here to avoid aliasing/alignment problems:
	union {
		unsigned char u8[4];
		uint32 u32;
	} data;

>  		while (section_size > 0) {
> -		    char            buffer[1024];
>  		    int             count;
> +		    char            buffer[1024];
> +		    uint32          *wbuffer = (uint32 *) buffer;

same here

> +      for (i=0; i<length; i+=4) {

need spaces around the operators here.  comes up a few times.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2015-02-22 20:51 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-19 22:32 [PATCH v2 00/22] Update of the SPARC SIS simulator Jiri Gaisler
2015-02-19 22:32 ` [PATCH v2 21/22] sim/erc32: Add data watchpoint support Jiri Gaisler
2015-02-19 22:32 ` [PATCH v2 19/22] sim/erc32: Add support for LEON2 processor emulation Jiri Gaisler
2015-02-22 21:06   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 02/22] sim/erc32: Corrected wrong CPU implementation and version ID in psr Jiri Gaisler
2015-02-22  4:15   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 11/22] sim/erc32: use SIM_AC_OPTION_HOSTENDIAN to probe for host endianess Jiri Gaisler
2015-02-22 20:52   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 14/22] sim/erc32: Use gdb callback for UART I/O when linked with gdb Jiri Gaisler
2015-02-22 21:02   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 17/22] sim/erc32: Move local extern declarations into sis.h Jiri Gaisler
2015-02-22 20:59   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 16/22] sim/erc32: Use readline.h for readline types and functions Jiri Gaisler
2015-02-22 20:58   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 20/22] sim/erc32: Updated documentation Jiri Gaisler
2015-02-19 22:32 ` [PATCH v2 01/22] sim/erc32: Disassembly in stand-alone mode did not work Jiri Gaisler
2015-02-22  4:10   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 05/22] sim/erc32: Remove unused defines in Makefile and switch off statistics Jiri Gaisler
2015-02-22  4:24   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 06/22] sim/erc32: Fix incorrect simulator performance report Jiri Gaisler
2015-02-22  4:29   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 12/22] sim/erc32: Use memory_iread() function for instruction fetching Jiri Gaisler
2015-02-22 20:54   ` Mike Frysinger
2015-02-19 22:32 ` [PATCH v2 22/22] Add watchpoint support to gdb simulator interface Jiri Gaisler
2015-02-19 22:33 ` [PATCH v2 13/22] sim/erc32: Fix a few compiler warnings Jiri Gaisler
2015-02-22 20:56   ` Mike Frysinger
2015-02-19 22:33 ` [PATCH v2 08/22] sim/erc32: Added -v command line switch for verbose output Jiri Gaisler
2015-02-22  4:34   ` Mike Frysinger
2015-02-19 22:33 ` [PATCH v2 09/22] sim/erc32: Removed type mismatch compiler warnings Jiri Gaisler
2015-02-22  4:43   ` Mike Frysinger
2015-02-19 22:33 ` [PATCH v2 07/22] sim/erc32: File loading via command line did not work Jiri Gaisler
2015-02-22  4:32   ` Mike Frysinger
2015-02-19 22:33 ` [PATCH v2 04/22] sim/erc32: Use fenv.h for host FPU access Jiri Gaisler
2015-02-22  4:24   ` Mike Frysinger
2015-02-19 22:33 ` [PATCH v2 10/22] sim/erc32: Switched emulated memory to host endian order Jiri Gaisler
2015-02-22 20:51   ` Mike Frysinger [this message]
2015-02-22 23:10     ` Jiri Gaisler
2015-02-23 19:39       ` Mike Frysinger
2015-02-19 22:33 ` [PATCH v2 15/22] sim/erc32: Access memory subsystem through struct memsys Jiri Gaisler
2015-02-22 21:01   ` Mike Frysinger
2015-02-19 22:33 ` [PATCH v2 18/22] sim/erc32: Add support for LEON3 processor emulation Jiri Gaisler
2015-02-19 22:33 ` [PATCH v2 03/22] sim/erc32: Perform pseudo-init if binary linked to non-zero address Jiri Gaisler
2015-02-22  4:17   ` Mike Frysinger
2015-02-21 19:29 ` [PATCH v2 00/22] Update of the SPARC SIS simulator Mike Frysinger
2015-02-21 20:26   ` Jiri Gaisler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150222205132.GA31422@vapier \
    --to=vapier@gentoo.org \
    --cc=gdb-patches@sourceware.org \
    --cc=jiri@gaisler.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox