qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 3f215a: target/m68k: add DisasContext paramet


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 3f215a: target/m68k: add DisasContext parameter to gen_ext...
Date: Tue, 20 Mar 2018 08:43:36 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 3f215a147b352c45a1470d2646be07805a7af4c9
      
https://github.com/qemu/qemu/commit/3f215a147b352c45a1470d2646be07805a7af4c9
  Author: Laurent Vivier <address@hidden>
  Date:   2018-03-20 (Tue, 20 Mar 2018)

  Changed paths:
    M target/m68k/translate.c

  Log Message:
  -----------
  target/m68k: add DisasContext parameter to gen_extend()

This parameter will be needed to manage automatic release
of temporary allocated TCG variables.

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: ecc207d2fc1d45fabb16c38742a6675a7ba56cbc
      
https://github.com/qemu/qemu/commit/ecc207d2fc1d45fabb16c38742a6675a7ba56cbc
  Author: Laurent Vivier <address@hidden>
  Date:   2018-03-20 (Tue, 20 Mar 2018)

  Changed paths:
    M target/m68k/translate.c

  Log Message:
  -----------
  target/m68k: add a mechanism to automatically free TCGv

SRC_EA() and gen_extend() can return either a temporary
TCGv or a memory allocated one. Mark them when they are
allocated, and free them automatically at end of the
instruction translation.

We want to free locally allocated TCGv to avoid
overflow in sequence like:

  0xc00ae406:  movel %fp@(-132),%fp@(-268)
  0xc00ae40c:  movel %fp@(-128),%fp@(-264)
  0xc00ae412:  movel %fp@(-20),%fp@(-212)
  0xc00ae418:  movel %fp@(-16),%fp@(-208)
  0xc00ae41e:  movel %fp@(-60),%fp@(-220)
  0xc00ae424:  movel %fp@(-56),%fp@(-216)
  0xc00ae42a:  movel %fp@(-124),%fp@(-252)
  0xc00ae430:  movel %fp@(-120),%fp@(-248)
  0xc00ae436:  movel %fp@(-12),%fp@(-260)
  0xc00ae43c:  movel %fp@(-8),%fp@(-256)
  0xc00ae442:  movel %fp@(-52),%fp@(-276)
  0xc00ae448:  movel %fp@(-48),%fp@(-272)
  ...

That can fill a lot of TCGv entries in a sequence,
especially since 15fa08f845 ("tcg: Dynamically allocate TCGOps")
we have no limit to fill the TCGOps cache and we can fill
the entire TCG variables array and overflow it.

Suggested-by: Richard Henderson <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: 4aafb1b192e5d3685e94cefdce63343a86d64647
      
https://github.com/qemu/qemu/commit/4aafb1b192e5d3685e94cefdce63343a86d64647
  Author: Peter Maydell <address@hidden>
  Date:   2018-03-20 (Tue, 20 Mar 2018)

  Changed paths:
    M target/m68k/translate.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.12-pull-request' 
into staging

# gpg: Signature made Tue 20 Mar 2018 09:07:55 GMT
# gpg:                using RSA key F30C38BD3F2FBE3C
# gpg: Good signature from "Laurent Vivier <address@hidden>"
# gpg:                 aka "Laurent Vivier <address@hidden>"
# gpg:                 aka "Laurent Vivier (Red Hat) <address@hidden>"
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C

* remotes/vivier/tags/m68k-for-2.12-pull-request:
  target/m68k: add a mechanism to automatically free TCGv
  target/m68k: add DisasContext parameter to gen_extend()

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/036793aebfc1...4aafb1b192e5

reply via email to

[Prev in Thread] Current Thread [Next in Thread]