Re: [PATCH] target/nios2: fix page-fit instruction count

2021-06-05 Thread Laurent Vivier
Le 25/05/2021 à 16:28, Richard Henderson a écrit :
> Laurent, how about through trivial?

Applied to my trivial-patches branch.

Thanks,
Laurent

> 
> r~
> 
> On 5/24/21 11:40 PM, Pavel Dovgalyuk wrote:
>> ping
>>
>> On 11.05.2021 11:40, Pavel Dovgalyuk wrote:
>>> This patch fixes calculation of number of the instructions
>>> that fit the current page. It prevents creation of the translation
>>> blocks that cross the page boundaries. It is required for deterministic
>>> exception generation in icount mode.
>>>
>>> Signed-off-by: Pavel Dovgalyuk 
>>> Reviewed-by: Richard Henderson 
>>> ---
>>>   target/nios2/translate.c |    2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/target/nios2/translate.c b/target/nios2/translate.c
>>> index 9824544eb3..399f22d938 100644
>>> --- a/target/nios2/translate.c
>>> +++ b/target/nios2/translate.c
>>> @@ -829,7 +829,7 @@ void gen_intermediate_code(CPUState *cs, 
>>> TranslationBlock *tb, int max_insns)
>>>   /* Set up instruction counts */
>>>   num_insns = 0;
>>>   if (max_insns > 1) {
>>> -    int page_insns = (TARGET_PAGE_SIZE - (tb->pc & TARGET_PAGE_MASK)) 
>>> / 4;
>>> +    int page_insns = (TARGET_PAGE_SIZE - (tb->pc & ~TARGET_PAGE_MASK)) 
>>> / 4;
>>>   if (max_insns > page_insns) {
>>>   max_insns = page_insns;
>>>   }
>>>
>>
> 
> 




Re: [PATCH] target/nios2: fix page-fit instruction count

2021-05-25 Thread Richard Henderson

Laurent, how about through trivial?

r~

On 5/24/21 11:40 PM, Pavel Dovgalyuk wrote:

ping

On 11.05.2021 11:40, Pavel Dovgalyuk wrote:

This patch fixes calculation of number of the instructions
that fit the current page. It prevents creation of the translation
blocks that cross the page boundaries. It is required for deterministic
exception generation in icount mode.

Signed-off-by: Pavel Dovgalyuk 
Reviewed-by: Richard Henderson 
---
  target/nios2/translate.c |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/nios2/translate.c b/target/nios2/translate.c
index 9824544eb3..399f22d938 100644
--- a/target/nios2/translate.c
+++ b/target/nios2/translate.c
@@ -829,7 +829,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock 
*tb, int max_insns)

  /* Set up instruction counts */
  num_insns = 0;
  if (max_insns > 1) {
-    int page_insns = (TARGET_PAGE_SIZE - (tb->pc & TARGET_PAGE_MASK)) / 4;
+    int page_insns = (TARGET_PAGE_SIZE - (tb->pc & ~TARGET_PAGE_MASK)) / 4;
  if (max_insns > page_insns) {
  max_insns = page_insns;
  }








Re: [PATCH] target/nios2: fix page-fit instruction count

2021-05-25 Thread Pavel Dovgalyuk

ping

On 11.05.2021 11:40, Pavel Dovgalyuk wrote:

This patch fixes calculation of number of the instructions
that fit the current page. It prevents creation of the translation
blocks that cross the page boundaries. It is required for deterministic
exception generation in icount mode.

Signed-off-by: Pavel Dovgalyuk 
Reviewed-by: Richard Henderson 
---
  target/nios2/translate.c |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/nios2/translate.c b/target/nios2/translate.c
index 9824544eb3..399f22d938 100644
--- a/target/nios2/translate.c
+++ b/target/nios2/translate.c
@@ -829,7 +829,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock 
*tb, int max_insns)
  /* Set up instruction counts */
  num_insns = 0;
  if (max_insns > 1) {
-int page_insns = (TARGET_PAGE_SIZE - (tb->pc & TARGET_PAGE_MASK)) / 4;
+int page_insns = (TARGET_PAGE_SIZE - (tb->pc & ~TARGET_PAGE_MASK)) / 4;
  if (max_insns > page_insns) {
  max_insns = page_insns;
  }






[PATCH] target/nios2: fix page-fit instruction count

2021-05-11 Thread Pavel Dovgalyuk
This patch fixes calculation of number of the instructions
that fit the current page. It prevents creation of the translation
blocks that cross the page boundaries. It is required for deterministic
exception generation in icount mode.

Signed-off-by: Pavel Dovgalyuk 
Reviewed-by: Richard Henderson 
---
 target/nios2/translate.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/nios2/translate.c b/target/nios2/translate.c
index 9824544eb3..399f22d938 100644
--- a/target/nios2/translate.c
+++ b/target/nios2/translate.c
@@ -829,7 +829,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock 
*tb, int max_insns)
 /* Set up instruction counts */
 num_insns = 0;
 if (max_insns > 1) {
-int page_insns = (TARGET_PAGE_SIZE - (tb->pc & TARGET_PAGE_MASK)) / 4;
+int page_insns = (TARGET_PAGE_SIZE - (tb->pc & ~TARGET_PAGE_MASK)) / 4;
 if (max_insns > page_insns) {
 max_insns = page_insns;
 }




Re: [PATCH] target/nios2: fix page-fit instruction count

2021-04-05 Thread Richard Henderson

On 4/5/21 1:20 AM, Pavel Dovgalyuk wrote:

This patch fixes calculation of number of the instructions
that fit the current page. It prevents creation of the translation
blocks that cross the page boundaries. It is required for deterministic
exception generation in icount mode.

Signed-off-by: Pavel Dovgalyuk
---
  target/nios2/translate.c |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)


Reviewed-by: Richard Henderson 

r~



[PATCH] target/nios2: fix page-fit instruction count

2021-04-05 Thread Pavel Dovgalyuk
This patch fixes calculation of number of the instructions
that fit the current page. It prevents creation of the translation
blocks that cross the page boundaries. It is required for deterministic
exception generation in icount mode.

Signed-off-by: Pavel Dovgalyuk 
---
 target/nios2/translate.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/nios2/translate.c b/target/nios2/translate.c
index 9824544eb3..399f22d938 100644
--- a/target/nios2/translate.c
+++ b/target/nios2/translate.c
@@ -829,7 +829,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock 
*tb, int max_insns)
 /* Set up instruction counts */
 num_insns = 0;
 if (max_insns > 1) {
-int page_insns = (TARGET_PAGE_SIZE - (tb->pc & TARGET_PAGE_MASK)) / 4;
+int page_insns = (TARGET_PAGE_SIZE - (tb->pc & ~TARGET_PAGE_MASK)) / 4;
 if (max_insns > page_insns) {
 max_insns = page_insns;
 }