Image copyright EPA Image caption There were protests outside congress on Saturday against the law

Legislators in the Philippines have voted overwhelmingly to extend martial law to deal with an Islamist insurgency in the restive island of Mindanao.

Militants linked to so-called Islamic State have been occupying parts of Marawi, a city in the south, since May.

President Rodrigo Duterte said the extension was necessary to crush the insurgency, but his critics say it is part of a wider power grab.

Mindanao is home to a number of Muslim rebel groups seeking more autonomy.

Martial law allows the use of the military to enforce law and the detention of people without charge for long periods.

It is a sensitive issue in the Philippines, where martial law was imposed by the late dictator Ferdinand Marcos for much of his rule.

Image copyright AFP Image caption The streets of Marawi have been left virtually deserted since the insurgency began

A previously imposed 60-day martial rule was due to expire on Saturday. It went into effect on 23 May, just hours after deadly clashes between the army and gunmen linked to so-called Islamic State.

The extension means the law will now remain in force until 31 December.

In May, President Duterte warned that martial law could be extended across the Philippines after insurgents killed police officers in Marawi.

Some opposition lawmakers questioned why it should be applied to the whole of the southern island, instead of just the city.

"I fear that the plan to extend the martial law in Mindanao will pave the way for a Philippines-wide martial law," Senator Risa Hontiveros was quoted by AFP as saying.

Another senator, Franklin Drilon, said the extension was too long, while congressman Edcel Lagman said there was "no factual basis" for it.

A dozen protesters also interrupted proceedings at Saturday's hearing, chanting "never again to martial law", the news agency reports.

Army chief of staff General Eduardo Ano said it was necessary to restrict the movement of the Islamist militants, warning that the ongoing rebellion could spread to other cities on the island, the GMA News website reports.

He described it as a "Mosul-type, hybrid urban warfare", referring to fighting in the Iraqi city that was until recently held by IS.

Media playback is unsupported on your device Media caption One mother recounts her family's ordeal as they hid for 11 days last month

Security officials addressing congress ahead of the vote said the law was required to stabilise the region, where supporters of IS may be inspired to stage similar uprisings in other areas of Mindanao.

They said only about 60 gunmen were left in a 49-hectare area of Marawi, but nearly 1,000 pro-IS militants were active elsewhere in the south, holding 23 hostages.

Marawi was home to 200,000 residents but many have fled the violence. There are fears for those trapped who face a lack of food and water.

More than 420 militants, 100 soldiers and 45 civilians have been killed in the fighting.

Clashes began when the army failed in its attempt to capture Isnilon Hapilon, believed to be the main IS leader in the Philippines and linked to the local Maute group, which has declared allegiance to IS.

In response the Maute group attacked parts of the city, taking hostages.

Who are the Maute group? - BBC Monitoring